所以,我发现了这个关于 C++ 事件的非常好的教程:
但是:创建者对 typeid 返回的 type_info 使用了一个包装器。据我了解,由于 type_info 的 = 运算符不可访问,这是不可能的。因此,我无法编译他提供的代码。不幸的是,这也是他的教程工作方式的核心部分。现在,我将如何解决这个问题,我应该只使用 type_info.hash_code - 这是否可以单独识别一个类?或者我不明白他在这种情况下所说的“包装器”是什么意思?
最佳答案
唯一提到的type_info
在那个页面上是
TypeInfo is a simple wrapper around type_info class that lets us store it as a key in std::map.
C++11 有 std::type_index
在 <typeindex>
这正是这个角色。一般元素a map
不需要可赋值,也不需要从 C++11 开始可复制,但是 type_info
仍然不能直接使用,因为除了 typeid
之外,您根本无法构造一个表达。
std::type_index
的规范注意它可能包含指向 std::type_info
的指针以简化实现。 “包装器”并不意味着继承或直接成员资格。
通过引用包装的类也称为代理。
关于c++ - type_info 的包装类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20108895/