c++ approach to the objective-c polymorphic multistep initialization using Curiously Recursive Template Pattern. This example shows how to rely solely on templates and completely avoid the use of Macro