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::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...);
};
};