怎么判断一个对象是不是类对象

如何判断一个对象是不是类对象。
实现一个函数check()判断一个对象是不是类对象。
template <typename T>
bool check(T)
{
  if(是否是类对象)
  {
  return ture;
  }
  else
  {
  return false;
  }
}
测试
class obj;
int ia;
check(obj);
check(ia);



------解决方案--------------------
探讨
C++ Template一书中是这样实现的,我用VS2005没编译通过。
template <typename T>
class IsClassT
{
private:
typedef char One;
typedef struct { char a[2]; } Two;
template <typename C> static One test(int C::*);
template <typename C> static Two test(...);
public:
enum{ Yes = sizeof(IsClassT <T>::test <T>(0)) == 1 };
enum{ No = !Yes };

};

template <typename T>
void check…

------解决方案--------------------
C++ Templates还讲了另外一种实现吧。继续看。
------解决方案--------------------
路过,学习了~~

探讨
C++ Template一书中是这样实现的,我用VS2005没编译通过。
template <typename T>
class IsClassT
{
private:
typedef char One;
typedef struct { char a[2]; } Two;
template <typename C> static One test(int C::*);
template <typename C> static Two test(...);
public:
enum{ Yes = sizeof( test<T>(0) ) == 1 }; //这里把类作用域去掉就编译过了...不知道为什么..??
enum{ No = !Yes };

};

template <typename T>
void check…