C++ 判断类是否有某变量

C++ 判断类是否有某变量

话不多说上代码。

#define HAS_MEMBER(member)\
    templatestruct has_member_##member\
{\
    private:\
    template static auto Check(int) -> decltype(std::declval().member(std::declval()...), std::true_type()); \
    template static auto Check(...) -> decltype(std::false_type()); \
    public:\
    static const bool value = std::is_same(0)), std::true_type>::value; \
    } \

测试代码

class Person
{
public:
    Person() {}

public:
    void test() {
        cout << "asasa" << endl;
    }
};

HAS_MEMBER(test);

int main()
{
    cout << has_member_test::value << endl;
    return 0;
}

你可能感兴趣的:(C++)