The curiously recurring template pattern (CRTP) is a C++ idiom in which a class X derives from a class template instantiation using X itself as template argument.
The curiously recurring template pattern (CRTP) is a C++ idiom in which a class X
derives from a class template instantiation using X
itself as template argument.
The name of this idiom was coined by Jim Coplien, who had observed it in some of the earliest C++ template code.
Typical use cases include static polymorphism and polymorphic copy construction (cloning).