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