Listing 7

struct base : reflectable_properties_object<base> {
  trivial_property<me,long> a;
  trivial_property<me,bool> b;
};
// good
struct derived : base, reflectable_properties_object<derived> {
  trivial_property<me,int> c;
  trivial_property<me,short> d;
};
// BAD - reflection won't work properly!
struct derived : reflectable_properties_object<derived>, base {
  trivial_property<me,int> c;
  trivial_property<me,short> d;
};
// BAD - reflection won't work properly!
struct derived : base {
  trivial_property<me,int> c;
  trivial_property<me,short> d;
};