C++ 从typename获取类型信息

C++ 从typename获取类型信息,c++,c++11,types,typeinfo,C++,C++11,Types,Typeinfo,有没有办法从类型的名称中获取std::type_info?比如说, std::type_info f(std::string name) { std::type_info info; ... return info; } int main() { const std::string name = typeid(double).name(); std::type_info info = f(name); assert(info==typeid(double)); } 函数f是什么?否。如图所

有没有办法从类型的名称中获取
std::type_info
?比如说,

std::type_info f(std::string name) {
std::type_info info; 
...
return info;
}

int main() {
const std::string name = typeid(double).name();
std::type_info info = f(name);
assert(info==typeid(double));
}
函数
f
是什么?

否。如图所示:

没有提供任何保证;特别是,返回的字符串可以是 多个类型相同,并且在相同类型的调用之间发生更改 节目


我不知道您的具体使用情况,但您可以使用C++11来代替。

我怀疑这是不可能的,但我无法给出一个令人信服的理由来解释为什么不可能,除此之外,我不知道有哪个函数可以对这些信息进行反向查找。@Xirema:如果不能保证不同类型的名称不同,则不能进行反向查找。尽管您可能希望在其他地方使用type_info,但使用
std::is_same
是比较类型的更好方法。相关: