I'm having an issue trying to use Boost::Polygon, I've added boost/polygon/polygon.hpp but when I try to compile I get: boost/polygon/transform.hpp:147: error: expected identifier before numeric constant boost/polygon/transform.hpp:147: error: expected `}' before numeric constant boost/polygon/transform.hpp:147: error: expected unqualified-id before numeric constant boost/polygon/transform.hpp:219: error: expected unqualified-id before ')' token boost/polygon/transform.hpp:220: error: expected `)' before 'atr' boost/polygon/transform.hpp:221: error: expected unqualified-id before 'const' boost/polygon/transform.hpp:221: error: expected `)' before 'const' boost/polygon/transform.hpp:222: error: expected unqualified-id before 'const' boost/polygon/transform.hpp:222: error: expected `)' before 'const' boost/polygon/transform.hpp:223: error: expected unqualified-id before 'const' boost/polygon/transform.hpp:223: error: expected `)' before 'const' boost/polygon/transform.hpp:224: error: expected unqualified-id before 'const' boost/polygon/transform.hpp:224: error: expected `)' before 'const' boost/polygon/transform.hpp:225: error: expected unqualified-id before 'const' boost/polygon/transform.hpp:225: error: expected `)' before 'const' boost/polygon/transform.hpp:228: error: 'boost::polygon::axis_transformation& boost::polygon::operator=(const boost::polygon::axis_transformation&)' must be a nonstatic member function boost/polygon/transform.hpp:231: error: expected ',' or '...' before '&' token boost/polygon/transform.hpp:231: error: 'boost::polygon::axis_transformation& boost::polygon::operator=(int)' must be a nonstatic member function boost/polygon/transform.hpp:234: error: non-member function 'bool boost::polygon::operator==(const boost::polygon::axis_transformation&)' cannot have cv-qualifier boost/polygon/transform.hpp:234: error: 'bool boost::polygon::operator==(const boost::polygon::axis_transformation&)' must take exactly two arguments boost/polygon/transform.hpp:237: error: non-member function 'bool boost::polygon::operator!=(const boost::polygon::axis_transformation&)' cannot have cv-qualifier boost/polygon/transform.hpp:237: error: 'bool boost::polygon::operator!=(const boost::polygon::axis_transformation&)' must take exactly two arguments boost/polygon/transform.hpp:240: error: non-member function 'bool boost::polygon::operator<(const boost::polygon::axis_transformation&)' cannot have cv-qualifier boost/polygon/transform.hpp:240: error: 'bool boost::polygon::operator<(const boost::polygon::axis_transformation&)' must take exactly two arguments boost/polygon/transform.hpp:243: error: non-member function 'boost::polygon::axis_transformation boost::polygon::operator+(const boost::polygon::axis_transformation&)' cannot have cv-qualifier boost/polygon/transform.hpp:246: error: 'boost::polygon::axis_transformation& boost::polygon::operator+=(const boost::polygon::axis_transformation&)' must take exactly two arguments boost/polygon/transform.hpp:250: error: non-member function 'void boost::polygon::populate_axis_array(boost::polygon::INDIVIDUAL_AXIS*)' cannot have cv-qualifier boost/polygon/transform.hpp:255: error: non-member function 'void boost::polygon::get_directions(boost::polygon::direction_2d&, boost::polygon::direction_2d&)' cannot have cv-qualifier boost/polygon/transform.hpp: In function 'void boost::polygon::get_directions(boost::polygon::direction_2d&, boost::polygon::direction_2d&)': ........etc ....... Thanks Chris