Listing 6

// trivial.h
struct point : reflectable_properties_object<point> {
   trivial_property<me,long> left;
   trivial_property<me,long> top;
};
// trivial.cpp
register_reflect r_left("left", &point::left);
register_reflect r_top("top", &point::top);

// script_only.h
struct rectangle : ... {
  // as before
};
// script_only.cpp
// adding script-only variable, to rectangle class
register_reflect r_sel("is_selected", script_only<rectangle,bool>());