c++ CRTP 中判断 Derived 中有没有某个成员函数


// 省略 HasMember

template <Dervied>
class B {
  static_assert(HasMember<Derived>());
}

class A : public B<A> {
public:
  void Member();
}

这样的代码是编译不过的,因为A还没有完全定义时,static_assert就会fail,但是将static_assert放到某个函数里是可以编译过的。

posted @ 2023-04-22 11:37  windtail  阅读(10)  评论(0编辑  收藏  举报