Curiously Recurring Template Patterns


By: J.O. Coplien

Summary: A class is derived from a base class instantiated from a template. The derived class is passed as a parameter to the template instantiation. This pattern captures a circular dependency using inheritance in one direction and templates in the other.

Pattern: Curiously Recurring Template

A class is derived from a base class instantiated from a template. The derived class is passed as a parameter to the template instantiation. This pattern captures a circular dependency using inheritance in one direction and templates in the other.

Published in: C++ Report, Feb. 1995
Pages: 24-27
Category: C++ Idioms, Finite State Machines