【发布时间】:2010-10-10 10:02:31
【问题描述】:
我想获取模板类型的字符串名称(const char*)。很遗憾,我无法访问 RTTI。
template< typename T >
struct SomeClass
{
const char* GetClassName() const { return /* magic goes here */; }
}
所以
SomeClass<int> sc;
sc.GetClassName(); // returns "int"
这可能吗?我找不到方法,准备放弃。感谢您的帮助。
【问题讨论】:
-
这就是 typeid 的用途。为什么不能用?
-
你能告诉我们你为什么需要它吗?也许有更好的用途?我强烈建议你重构程序,这样你就不再需要字符串了。
-
这些类表示磁盘上的数据。我希望能够通过实用程序检查数据并获得类的名称。我还想使用字符串名称来创建一个哈希来识别类型(在磁盘上)。它在技术上不是必需的,但很高兴拥有。
-
这里
typeid的使用不需要RTTI。
标签: c++ string templates typeid