TIL: Dieses Pattern, wo eine Basisklasse sich selbst als Template (oder Typparameter) übergibt, hat einen Namen:
template <class T>
class Base
{
// methods within Base can use template to access members of Derived
};
class Derived : public Base<Derived>
{
// ...
};