Listing 2
// rectangle.h
struct rectangle : reflectable_properties_object<rectangle> {
long left() const { return m_left; }
void left(const long & l) { m_left = l; }
// ... same for top, with, height
private:
// ...
};
// rectangle.cpp
// registering get/set properties: left, top, with, height
register_reflect
r_left_("left", &rectangle::left, &rectangle::left);
register_reflect
r_top_("top", &rectangle::top, &rectangle::top);
register_reflect
r_width_("width", &rectangle::width, &rectangle::width);
register_reflect
r_height_("height", &rectangle::height, &rectangle::height);