我想将传递的模板参数用作字符串。可能吗?
这是类,我需要更改什么才能使代码正常工作?
void registerClass(const std::string &name, Handler *handler);
template<class T>
void registerClass() {
registerClass( "get T as string", new DefaultHandler<T>());
}
最佳答案
最接近字符串形式的类型是使用 typeid( T )->name()
。但是,类型名称没有标准化,因此您不能相信从中获得有效名称。符合标准的实现很可能会为所有类型名称返回空字符串。
关于c++ - 可以将模板参数用作字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7745630/