The curiously recurring template pattern (CRTP) is an idiom in C++ in which a class X derives from a class template instantiation using X itself as template argument. It is a form of F-bounded Quantification. // The Curiously Recurring Template Pattern (CRTP) template <class