Upside Down Inheritance

Upside-down inheritance is a technique for specifying the base class of base classes by using template arguments. MultipleInheritance is used heavily. Delegation is implemented via MixIn classes. http://www.apostate.com/programming/atlupsidedown.html (https://web.archive.org/web/20060315072824/http://www.apostate.com/programming/atlupsidedown.html)

BrokenLink 20080522 with the following curious error message:

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument? to handle the request.

This mechanism is used to implement the ActiveTemplateLibrary and the WindowsTemplateLibrary on top of it.

The advantages over the MicrosoftFoundationClasses are:


See also CuriouslyRecurringTemplate


CategoryCpp CategoryCppTemplates


EditText of this page (last edited December 5, 2014) or FindPage with title or text search