Listing 2
// shapes.cpp #include <shapes.h> DEFINE_SIMPLE_SERIALIZABLE_BEGIN (Point) SERIALIZABLE_FIELD (Point, m_pt) DEFINE_SIMPLE_SERIALIZABLE_END (Point) DEFINE_SERIALIZABLE_BEGIN (Shape) SERIALIZABLE_FIELD (Shape, m_shapeId) DEFINE_SERIALIZABLE_END (Shape) DEFINE_SERIALIZABLE_BEGIN (Circle) SERIALIZABLE_FIELD (Circle, m_center) SERIALIZABLE_FIELD (Circle, m_radius) DEFINE_SERIALIZABLE_END (Circle) DEFINE_SIMPLE_SERIALIZABLE_BEGIN (BunchOfShapes) SERIALIZABLE_FIELD (BunchOfShapes, m_shapes) DEFINE_SIMPLE_SERIALIZABLE_END (BunchOfShapes) // ...