An attempt at implementation of reflection in C++