Component system for C++