Form C# and Java I know Microkernels also known as Dependency Injection Container. The main goal of them is to seperate the interface from the implementation.
In C# it works like this
register<IXYTask>(Type task);
..
Task xyTask = resolve<IXYTask>();
I think as C++ has no Reflection and you can't pass, save or instanciate a type. Is there a possibility in C++ to get a similair result?