This concept is based on @sean-parent presentation: Inheritance Is The Base Class of Evil with some modifications and code duplications reductions. Explanation post on C++ Senioreas: Template Base Class Collection. Originally written to an answer to generalize shapes.