我有一个模板类型T
,子类Base
(不能直接(。 通过使用
std::type_index(typeid(T))
,
我可以得到一个元数据对象T
.有没有办法为T
的每个超类获取一个std::type_index
,以便我可以向上遍历超类直到达到Base
?
我知道C++本身并不能提供反射,但也许有人知道一些模板魔法。
详细地说:我想将对象的指针放入地图中,按对象类型进行索引。如果能够将对象不仅作为自己的类型插入,而且作为它们的超类型插入,那就太好了。
似乎您正在寻找类似 std::bases 的东西,它在 c++ 标准中不受支持,但在 gcc 中实现(您可以在此处阅读更多内容(。