Error 1 error C2614: 'Base::Type<T>::Extend<Extender>' : illegal member initialization: 'Type<Base::Type<Base::Type<Base>::ExtendHelper<Data> >::ExtendHelper<Data> >' is not a base or member c:\users\stefanos\documents\visual studio 2010\projects\stackoverflow\stackoverflowtestbench\main.cpp 30 1 StackOverflowTestBench
That's not my code but I am having a really hard time understanding wth is going on here. Any help is appreciated.
Inside the realization of the template class Extend name ExtendHelper is not declared, so you need to use its full form - it's first.
The second is that inside the constructor of template class Type you call a constructor of its base type T::Type<U>, but if you create an object of the type Base::Type<Base>::Extend<Data>, which is baseWithData of, T is Base and Base::Type< ... >(Base::Type<Base>&) doesn't exist.