可以使用模板参数作为字符串吗?

kra*_*mir 1 c++ templates

我想使用传递的模板参数作为字符串.可能吗?

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)

K-b*_*llo 6

最接近你可以得到一个字符串类型是typeid( T )->name().但是,类型名称没有标准化,因此您无法信任从中获取有效名称.符合标准的实现可以很好地返回所有类型名称的空字符串.