Do you now about one approach (for two compilers (gcc 3.7, and MSVC (last)) emulate compile time reflection with difference scope? Like struct some { META_STRUCT(some); FLD(int, a); FLD(int, b); METH(int, call_0, (int, a)); METH(int, call_1, (int, b)); }; void in() { typedef hl::reflection_extract<some>::field_accessors acc; some s; s.*hl::at<acc, a_accessor>::get() = 5; } We can see here https://github.com/ol72/hl/tree/ And you can try to compile this attached demo Use __J_ACTIVE define to see as reflection worked in json oriented part of project. For which you should install json. Without this you can see ability take meta information by query. But global goal I think we understanding Our backend can be something else. Like client server , data base oriented structures in which we can use by SQL like C++ syntax We can make (and I made it ) database like structures struct human_tables { TABLE(names) { fields((int) index, (std::string) name, .... ); }; TABLE(country) { fields((names_table::index) name, ... ); }; TABLE(human) { indexes(names_table::index_field); fields((names_table::index_field) name, (country_table::index) country...); }; };