避免动态继承时,基类返回的是基类对象,在此之后无法调用继承类方法的问题
BTW,在此情况下,基类和继承类接口不同,是否应该用is-a的继承关系值得斟酌
#include <iostream>template <typename T>
struct Base {T &foo() {std::cout << "foo\n";return static_cast<T &>(*this);}
};struct D1 : Base<D1> {D1 &bar() {std::cout << "bar\n";return *this;}
};int main() {D1{}.foo().bar();
}