Listing 3: Constructing a compile-time property list

struct Point
{
  double x_,y_;
};

enum vertex_coord_t { vertex_coord = 0 };
namespace boost {
  BOOST_INSTALL_PROPERTY(vertex, coord);
}
enum vertex_insidecurve_t { vertex_insidecurve = 1 };
namespace boost {
  BOOST_INSTALL_PROPERTY(vertex, insidecurve);
}

typedef boost::property<vertex_coord_t, Point,
   boost::property<vertex_insidecurve_t,bool> > VertexProp;

— End of Listing —