// 省略 HasMember
template <Dervied>
class B {
static_assert(HasMember<Derived>());
}
class A : public B<A> {
public:
void Member();
}
这样的代码是编译不过的,因为A还没有完全定义时,static_assert就会fail,但是将static_assert放到某个函数里是可以编译过的。
标签:HasMember,Derived,c++,assert,static,CRTP,public From: https://www.cnblogs.com/windtail/p/17342695.html