C++Curiously Recurring Template Pattern (CRTP)

Introduction

A pattern in which a class inherits from a class template with itself as one of its template parameters. CRTP is usually used to provide static polymorphism in C++.