#ifndef __GEOM2D_HPP #define __GEOM2D_HPP #include struct Curve { Curve() {}; virtual ~Curve() {}; }; struct Line : public Curve { Line(int y = 0): m_y(y) {}; int m_y; }; typedef boost::shared_ptr< Curve > CurvePtr; struct Element { Element(const CurvePtr & curve): m_curve(curve) {} boost::shared_ptr< Curve > m_curve; }; #endif