In addition to stinky472's request, if you base are type dependent, then you can do a lot worse than
template<typename Child, typename Type> struct base { Type t; }; struct Derived : public Base<Derived, int> { };
It is not so clean though.
source share