c++ - 可以将模板参数用作字符串吗?

标签 c++ templates

我想将传递的模板参数用作字符串。可能吗?

这是类,我需要更改什么才能使代码正常工作?

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/

相关文章:

c++ - 模板如何影响 C++ 中的隐式声明规则?

c++ - 如何部署具有所有依赖项的 C++ 项目?

c++ - 在 C++ 中计算欧拉数

C++:这些按位 AND 和以下比较有什么作用?

c++ - 带有 "Known"继承的dynamic_cast模板类

c++ - "Request for member which is of non-class type", 赋值语句不正确?

c++ - 初始化列表中的编译时替换

C++错误没有匹配函数来调用静态模板方法

c++ - 错字为 "cout < myint"。为什么它有效?

c++ - 表达式必须具有类类型