从typename获取type_info

时间:2017-11-17 20:42:06

标签: 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会是什么?

1 个答案:

答案 0 :(得分:7)

没有。正如documentation for std::type_info::name所说:

  

不给予任何保证;特别是,返回的字符串可以是   对于几种类型是相同的,并且在相同的调用之间进行更改   程序

我不知道您的确切用例,但您可能会使用C ++ 11 std::type_index