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;
}