C++ C+中的typeid是否有反函数+;17?

C++ C+中的typeid是否有反函数+;17?,c++,c++17,C++,C++17,C++17是否提供了从typeid获取类型的方法,或者factory模式仍然是唯一的方法?type\u info是一个运行时值;它的确切内容只能通过运行时执行来确定。C++是一种静态类型语言;在编译时,必须知道所有内容的类型。因此, Type信息>代码>(在一个事物中描述事物并将其转化为事物本身的能力)在C++中不会发生。 C++可能会在将来得到反射和具体化机制,但它们只是静态机制,不是运行时机制。你是指 C++中的实现定义名称()>代码>::类型yIfIng/?请记住C++是静态类型的,因此

C++17是否提供了从typeid获取类型的方法,或者factory模式仍然是唯一的方法?

type\u info
是一个运行时值;它的确切内容只能通过运行时执行来确定。C++是一种静态类型语言;在编译时,必须知道所有内容的类型。因此,<代码> Type信息>代码>(在一个事物中描述事物并将其转化为事物本身的能力)在C++中不会发生。

C++可能会在将来得到反射和具体化机制,但它们只是静态机制,不是运行时机制。

你是指<代码> C++中的实现定义<代码>名称()>代码>::类型yIfIng/<代码>?请记住C++是静态类型的,因此,如果要在表达式中使用类型,则必须在编译时知道该类型。你用这个干什么?如果您提供用例的详细信息,则更可能得到一个适当的答案。我有一个地图,我想在其中存储各种各样的模板对象。我让这些类继承自一个未经参数化的基类,这允许我将它们全部存储在同一个映射中。当我检索一个对象时,如何确定它的类型?@RFS您不需要这样做,因为基类应该是一个虚拟接口,由映射的用户直接使用。如果不是这样,那么您可能不应该对多态性使用继承,而是例如
std::variant
。如果您确实需要按照您描述的方式来做,那么或者应该是重复的。