A reflection library for C++