(Almost) reflection in C++ for (almost) free