a c++ reflection