美文网首页
c++判断类具有某个成员函数

c++判断类具有某个成员函数

作者: swifterlc | 来源:发表于2019-01-03 09:39 被阅读0次
    #define HAS_MEMBER(XXX) \
    template<typename T, typename... Args>\
    struct has_member_##XXX \
    { \
    private:  \
      template<typename U> static auto Check(int) -> decltype(std::declval<U>().XXX(std::declval<Args>()...), std::true_type());  \
      template<typename U> static std::false_type Check(...); \
    public: \
      static constexpr auto value = decltype(Check<T>(0))::value; \
    }
    

    使用:判断类A具有成员函数foo,并且函数具有一个int一个double参数.

    HAS_MEMBER(foo);
    class A {};
    //class A
    //{
    //public:
    //  void foo(int, double) {}
    //}
    bool ret = has_member_foo<A, int, double>::value;
    

    相关文章

      网友评论

          本文标题:c++判断类具有某个成员函数

          本文链接:https://www.haomeiwen.com/subject/shnxrqtx.html