我想使用传递的模板参数作为字符串.可能吗?
T是类,我需要更改以使代码工作?
void registerClass(const std::string &name, Handler *handler);
template<class T>
void registerClass() {
registerClass( "get T as string", new DefaultHandler<T>());
}
Run Code Online (Sandbox Code Playgroud)
最接近你可以得到一个字符串类型是typeid( T )->name().但是,类型名称没有标准化,因此您无法信任从中获取有效名称.符合标准的实现可以很好地返回所有类型名称的空字符串.