美文网首页
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++判断类具有某个成员函数

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

  • C++ 友元(9)

    友元函数是一种特权函数,c++允许这个特权函数访问某个类的私有成员 可以把一个全局函数、某个类中的成员函数、甚至整...

  • C++11标准中的 deleted 函数

    Deleted 函数 背景问题 对于 C++ 的类,如果程序员没有为其定义特殊成员函数,那么在需要用到某个特殊成员...

  • [初学C++]构造和析构函数

    什么是构造函数定义C++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数叫做构造函数.C++对类提...

  • java的main方法

     java中的所有函数都是某个类的方法,在java中,称函数为方法,在c++中,类中的函数被称为成员函数。由第一句...

  • C++ 类封装及底层实现

    类:逻辑上封装,编译上独立在 C++ 中, 结构体和类都具有构造函数、析构函数和成员函数,两者 只有 一个 区别:...

  • 类&对象(一)

    C++成员函数 类的成员函数是指那些把定义和原型写在类定义内部的函数,就像类定义中的其他变量一样。类成员函数是类的...

  • c++面向对象

    c++定义类 成员和成员函数 成员函数可以在内部定义,也可在内部声明,外部定义。 类的构造函数(有默认): 在类...

  • [初学C++]静态成员

    静态成员变量和成员函数 在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所...

  • C++ const用法

    一 修饰类 C++中const修饰类主要包括3个部分:数据成员,成员函数,对象。 数据成员const 修饰类的成员...

网友评论

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

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