C++ IoC