正常使用宏定义时,要获取符号名称,是使用#把名称字符串化,但这种方式在模板中不好使,需要更底层提供的运算符操作typeid。
templateclass CTest { public: CTest() { sName = typeid(T).name(); } std::string GetName() { return sName; } private: std::string sName; }; int main() { CTest test; std::string s = test.GetName(); system("pause"); return 0; }



