C++ 判断类是否有某变量
话不多说上代码。
#define HAS_MEMBER(member)\template<typename T, typename... Args>struct has_member_##member\
{\private:\template<typename U> static auto Check(int) -> decltype(std::declval<U>().member(std::declval<Args>()...), std::true_type()); \template<typename U> static auto Check(...) -> decltype(std::false_type()); \public:\static const bool value = std::is_same<decltype(Check<T>(0)), std::true_type>::value; \} \
测试代码
class Person
{
public:Person() {}public:void test() {cout << "asasa" << endl;}
};HAS_MEMBER(test);int main()
{cout << has_member_test<Person>::value << endl;return 0;
}