Templates: CRTP

In this lesson, we will learn about curiously recurring template patterns in modern C++.

We'll cover the following

CRTP

The acronym CRTP stands for the C++ idiom Curiously Recurring Template Pattern. CRTP is a technique in Modern C++ in which a Derived class derives from a class template Base. The key is that Base has Derived as a template argument.

Let’s have a look at an example:

template<class T> 
class Base{
   ...
};

class Derived: public Base<Derived>{ 
   ...
};

CRTP enables static polymorphism.

Get hands-on with 1200+ tech skills courses.