64,636
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
template <typename T>
string GetType(T=T())
{
return "Unkown Type";
};
#define RegistType(type,typeInfo) template<> string GetType(type){return #typeInfo;}
RegistType(int,int);
RegistType(double,double);
template <typename T>
class CTest
{
public:
CTest()
{
std::cout << GetType<T>() <<endl;
}
};
int main( void )
{
CTest<int> x;
CTest<double> x0;
return 0;
}
#include <iostream>
using namespace std;
template<class T>
struct Name
{
static const char* p;
};
template <typename T>
class CTest
{
public:
CTest() { std::cout << Name<T>::p <<endl; ; }
};
#define NAME(x) template<> const char* Name<x>::p = #x;
NAME(int);
NAME(double);
//... 自己加对应的名字。
int main( void )
{
CTest<int> x;
CTest<double> x0;
return 0;
}
#include <typeinfo>
#include <iostream>
template <typename T>
class CTest
{
public:
CTest() { std::cout << typeid( T ).name( ) << std::endl; }
};
int main()
{
CTest<int> t;
return 0;
}
i
#include <typeinfo>
.......
template <typename T>
class CTest
{
public:
CTest() { std::cout << typeid( T ).name( ); }
};