I think that we can do some cooler stuff with the generated code and shift some of the initialization time responsibilities to compile time.
Experiment with defining CompositeType using SpecifiedCompositeType, and having ICG generate template specialization code. Maybe we could even make the member maps constexpr, I'm not sure if c++11 can do that though.
Something like this:
// Some class that we want to build a DataType for
class Foo {
public:
int a;
std::string b;
};
I think that we can do some cooler stuff with the generated code and shift some of the initialization time responsibilities to compile time.
Experiment with defining CompositeType using SpecifiedCompositeType, and having ICG generate template specialization code. Maybe we could even make the member maps constexpr, I'm not sure if c++11 can do that though.
Something like this:
This also gives us a clean way to define a macro for private member access -