从typename获取type_info

ad_*_*_ad 2 c++ types typeinfo c++11

有没有办法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));
}
Run Code Online (Sandbox Code Playgroud)

这个功能f是什么?

Chr*_*ckl 8

没有.作为文件std::type_info::name说:

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

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