CRTP
Приём C++, когда класс наследуется от шаблона, инстанцированного им самим: class D : public Base<D>. Полиморфизм без vtable.
Джеймс Коплиен назвал паттерн в 1995 году, заметив, что он снова и снова встречается в реальном коде. Суть в том, что базовый класс на этапе компиляции знает свой производный тип и потому может вызывать его методы через static_cast<D*>(this). Вызов прямой, подставляется инлайном, а объекту не нужен указатель на таблицу виртуальных функций, который иначе стоил бы и памяти, и косвенного перехода. Типичное применение — миксины с общими операторами, счётчики экземпляров и enable_shared_from_this из стандартной библиотеки. Синтаксис славится плохой читаемостью, а новый C++ с концептами и deducing this сделал большую часть этого ненужной.