#include <iostream>
using namespace std;
template<typename T>
class IsClass
{
private:
typedef char One;
typedef struct{char x[2];} Two;
template <typename U>
static One is_class(int U::*);
template <typename U>
static Two is_class(...);
public:
enum {Yes = sizeof(is_class<T>(0)) == 1};
enum {No = !Yes};
};
class Test{};
void main()
{
if(IsClass<Test>::Yes)
{
cout<< "is the class" <<endl;
}
else
{
cout<< "not the class" <<endl;
}
cin.get();
}