Luke, I’ve tried moving Polygon.hpp to the top but no difference in the error. Below is a test program created that shows the same issue with no other includes other than Polygon.hpp

 

Main.cc

#include <boost/polygon/polygon.hpp>

 

int main(int argc, char** argv)

{

                exit(0);

}

 

Compile command

g++ -I/path/to/boost/ -c main.cc

 

GCC information

Target: i386-pc-solaris2.10

gcc version 4.2.1

 

Errors:

In file included from /path/to/boost/polygon/polygon.hpp:24,

                 from main.cc:1:

/path/to/boost/polygon/transform.hpp:147: error: expected identifier before numeric constant

/path/to/boost/polygon/transform.hpp:147: error: expected `}' before numeric constant

/path/to/boost/polygon/transform.hpp:147: error: expected unqualified-id before numeric constant

/path/to/boost/polygon/transform.hpp:219: error: expected unqualified-id before ')' token

/path/to/boost/polygon/transform.hpp:220: error: expected `)' before 'atr'

/path/to/boost/polygon/transform.hpp:221: error: expected unqualified-id before 'const'

/path/to/boost/polygon/transform.hpp:221: error: expected `)' before 'const'

/path/to/boost/polygon/transform.hpp:222: error: expected unqualified-id before 'const'

/path/to/boost/polygon/transform.hpp:222: error: expected `)' before 'const'

/path/to/boost/polygon/transform.hpp:223: error: expected unqualified-id before 'const'

/path/to/boost/polygon/transform.hpp:223: error: expected `)' before 'const'

/path/to/boost/polygon/transform.hpp:224: error: expected unqualified-id before 'const'

/path/to/boost/polygon/transform.hpp:224: error: expected `)' before 'const'

/path/to/boost/polygon/transform.hpp:225: error: expected unqualified-id before 'const'

/path/to/boost/polygon/transform.hpp:225: error: expected `)' before 'const'

/path/to/boost/polygon/transform.hpp:228: error: 'boost::polygon::axis_transformation& boost::polygon::operator=(const boost::polygon::axis_transformation&)' must be a nonstatic member function

/path/to/boost/polygon/transform.hpp:231: error: expected ',' or '...' before '&' token

/path/to/boost/polygon/transform.hpp:231: error: ISO C++ forbids declaration of 'ATR' with no type

/path/to/boost/polygon/transform.hpp:231: error: 'boost::polygon::axis_transformation& boost::polygon::operator=(int)' must be a nonstatic member function

/path/to/boost/polygon/transform.hpp:234: error: non-member function 'bool boost::polygon::operator==(const boost::polygon::axis_transformation&)' cannot have cv-qualifier

/path/to/boost/polygon/transform.hpp:234: error: 'bool boost::polygon::operator==(const boost::polygon::axis_transformation&)' must take exactly two arguments

/path/to/boost/polygon/transform.hpp:237: error: non-member function 'bool boost::polygon::operator!=(const boost::polygon::axis_transformation&)' cannot have cv-qualifier

/path/to/boost/polygon/transform.hpp:237: error: 'bool boost::polygon::operator!=(const boost::polygon::axis_transformation&)' must take exactly two arguments

/path/to/boost/polygon/transform.hpp:240: error: non-member function 'bool boost::polygon::operator<(const boost::polygon::axis_transformation&)' cannot have cv-qualifier

/path/to/boost/polygon/transform.hpp:240: error: 'bool boost::polygon::operator<(const boost::polygon::axis_transformation&)' must take exactly two arguments

/path/to/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

/path/to/boost/polygon/transform.hpp:246: error: 'boost::polygon::axis_transformation& boost::polygon::operator+=(const boost::polygon::axis_transformation&)' must take exactly two arguments

/path/to/boost/polygon/transform.hpp:250: error: non-member function 'void boost::polygon::populate_axis_array(boost::polygon::INDIVIDUAL_AXIS*)' cannot have cv-qualifier

/path/to/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

/path/to/boost/polygon/transform.hpp: In function 'void boost::polygon::get_directions(boost::polygon::direction_2d&, boost::polygon::direction_2d&)':

/path/to/boost/polygon/transform.hpp:256: error: 'atr_' was not declared in this scope

/path/to/boost/polygon/transform.hpp: At global scope:

/path/to/boost/polygon/transform.hpp:267: error: non-member function 'void boost::polygon::get_directions(boost::polygon::direction_3d&, boost::polygon::direction_3d&, boost::polygon::direction_3d&)' cannot have cv-qualifier

/path/to/boost/polygon/transform.hpp: In function 'void boost::polygon::get_directions(boost::polygon::direction_3d&, boost::polygon::direction_3d&, boost::polygon::direction_3d&)':

/path/to/boost/polygon/transform.hpp:268: error: 'atr_' was not declared in this scope

/path/to/boost/polygon/transform.hpp: At global scope:

/path/to/boost/polygon/transform.hpp:307: error: non-member function 'void boost::polygon::transform(coordinate_type&, coordinate_type&)' cannot have cv-qualifier

/path/to/boost/polygon/transform.hpp:311: error: non-member function 'void boost::polygon::transform(coordinate_type&, coordinate_type&, coordinate_type&)' cannot have cv-qualifier

/path/to/boost/polygon/transform.hpp:317: error: non-member function 'boost::polygon::axis_transformation boost::polygon::inverse_2d()' cannot have cv-qualifier

/path/to/boost/polygon/transform.hpp:323: error: non-member function 'boost::polygon::axis_transformation boost::polygon::inverse()' cannot have cv-qualifier

/path/to/boost/polygon/transform.hpp:328: error: expected unqualified-id before 'private'

/path/to/boost/polygon/transform.hpp:371: error: 'orientation_3d' has not been declared

/path/to/boost/polygon/transform.hpp:372: error: 'orientation_2d' has not been declared

/path/to/boost/polygon/transform.hpp:375: error: 'orientation_3d' has not been declared

/path/to/boost/polygon/transform.hpp:376: error: 'orientation_2d' has not been declared

/path/to/boost/polygon/transform.hpp:392: error: expected ';' before '(' token

/path/to/boost/polygon/transform.hpp: In member function 'scale_factor_type boost::anisotropic_scale_factor<scale_factor_type>::get(int) const':

/path/to/boost/polygon/transform.hpp:372: error: there are no arguments to 'orientation_3d' that depend on a template parameter, so a declaration of 'orientation_3d' must be available

/path/to/boost/polygon/transform.hpp:372: error: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)

/path/to/boost/polygon/transform.hpp: In member function 'void boost::anisotropic_scale_factor<scale_factor_type>::set(int, scale_factor_type)':

/path/to/boost/polygon/transform.hpp:376: error: there are no arguments to 'orientation_3d' that depend on a template parameter, so a declaration of 'orientation_3d' must be available

/path/to/boost/polygon/transform.hpp: At global scope:

/path/to/boost/polygon/transform.hpp:421: error: expected `)' before 'atr'

/path/to/boost/polygon/transform.hpp:422: error: 'axis_transformation' has not been declared

/path/to/boost/polygon/transform.hpp:422: error: expected `)' before 'atr'

/path/to/boost/polygon/transform.hpp:426: error: expected `)' before 'atr'

/path/to/boost/polygon/transform.hpp:428: error: expected `)' before 'atr'

/path/to/boost/polygon/transform.hpp:447: error: 'axis_transformation' does not name a type

/path/to/boost/polygon/transform.hpp:450: error: expected ',' or '...' before '&' token

/path/to/boost/polygon/transform.hpp:450: error: ISO C++ forbids declaration of 'axis_transformation' with no type

/path/to/boost/polygon/transform.hpp:472: error: 'direction_2d' has not been declared

/path/to/boost/polygon/transform.hpp:473: error: 'direction_2d' has not been declared

/path/to/boost/polygon/transform.hpp:476: error: 'direction_3d' has not been declared

/path/to/boost/polygon/transform.hpp:477: error: 'direction_3d' has not been declared

/path/to/boost/polygon/transform.hpp:478: error: 'direction_3d' has not been declared

/path/to/boost/polygon/transform.hpp:482: error: 'axis_transformation' does not name a type

/path/to/boost/polygon/transform.hpp:483: error: ISO C++ forbids declaration of 'point_3d_data' with no type

/path/to/boost/polygon/transform.hpp:483: error: expected ';' before '<' token

/path/to/boost/polygon/transform.hpp:486: error: 'axis_transformation' was not declared in this scope

/path/to/boost/polygon/transform.hpp:486: error: expected primary-expression before 'p'

/path/to/boost/polygon/transform.hpp:486: error: 'point_concept' was not declared in this scope

/path/to/boost/polygon/transform.hpp:486: error: variable or field 'construct_dispatch' declared void

/path/to/boost/polygon/transform.hpp:488: error: 'axis_transformation' was not declared in this scope

/path/to/boost/polygon/transform.hpp:488: error: expected primary-expression before 'p'

/path/to/boost/polygon/transform.hpp:488: error: 'point_3d_concept' was not declared in this scope

/path/to/boost/polygon/transform.hpp:488: error: variable or field 'construct_dispatch' declared void

/path/to/boost/polygon/transform.hpp:490: error: 'axis_transformation' was not declared in this scope

/path/to/boost/polygon/transform.hpp:490: error: expected primary-expression before 'rp'

/path/to/boost/polygon/transform.hpp:490: error: expected primary-expression before 'dp'

/path/to/boost/polygon/transform.hpp:490: error: 'point_concept' was not declared in this scope

/path/to/boost/polygon/transform.hpp:490: error: variable or field 'construct_dispatch' declared void

/path/to/boost/polygon/transform.hpp:492: error: 'axis_transformation' was not declared in this scope

/path/to/boost/polygon/transform.hpp:492: error: expected primary-expression before 'rp'

/path/to/boost/polygon/transform.hpp:492: error: expected primary-expression before 'dp'

/path/to/boost/polygon/transform.hpp:492: error: 'point_3d_concept' was not declared in this scope

/path/to/boost/polygon/transform.hpp:492: error: variable or field 'construct_dispatch' declared void

/path/to/boost/polygon/transform.hpp: In member function 'void boost::transformation<coordinate_type>::get_directions(int&, int&) const':

/path/to/boost/polygon/transform.hpp:474: error: 'atr_' was not declared in this scope

/path/to/boost/polygon/transform.hpp: In member function 'void boost::transformation<coordinate_type>::get_directions(int&, int&, int&) const':

/path/to/boost/polygon/transform.hpp:479: error: 'atr_' was not declared in this scope

/path/to/boost/polygon/transform.hpp: At global scope:

/path/to/boost/polygon/transform.hpp:498: error: expected declaration before '}' token

 

Thanks

Chris Stylianou

 

From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Simonson, Lucanus J
Sent: 24 March 2011 15:51
To: boost-users@lists.boost.org
Subject: Re: [Boost-users] Boost::Polygon issue with including in project

 

Chris,

 

Line 147 of transform.hpp is as follows:

 

    ESU = 2, EAST_SOUTH_UP = 2, ES = 2, EAST_SOUTH = 2, FLIP_Y       = 2,

 

These are enum value definitions.  I suspect that what is happening is that ESU, or more likely ES is a defined macro in some header file included before Polygon.hpp.  After the expansion of that macro the code no longer makes sense.

 

I suggest including the Polygon.hpp first since it doesn't depend on any other code.  If you include polygon.hpp in a header file be sure that header file gets included before others that might define macros that conflict with names used by the library.

 

Regards,

Luke

 


From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Chris Stylianou
Sent: Thursday, March 24, 2011 3:30 AM
To: boost-users@lists.boost.org
Subject: Re: [Boost-users] Boost::Polygon issue with including in project

Hi Luke, here is the whole list. We are using gcc 4.3.3 with Boost 1.45.0, but it has also been tested with 1.46.1 with the same error output.

 

In file included from ..../include/boost/polygon/polygon.hpp:24,

                 from accessors/shapes/Polygon.h:18,

                 from accessors/shapes/Polygon.cc:8:

..../include/boost/polygon/transform.hpp:147: error: expected identifier before numeric constant

 ...

 

 Thanks

Chris Stylianou

_______________________________________________________________

borwell

Description: Description: Description: Description: finalist_logo - email sig

Malvern Hills Science Park

Geraldine Road

Malvern

England

WR14 3SZ

 

t: +44 (0)1684 585240

e: chris@borwell.com

w: www.borwell.com

 

"Making IT work for you"

 

P Please consider the environment before printing this email

_______________________________________________________________

 

From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Simonson, Lucanus J
Sent: 23 March 2011 16:03
To: boost-users@lists.boost.org
Subject: Re: [Boost-users] Boost::Polygon issue with including in project

 

Is line 147 of transform.hpp your first syntax error?  Can you attach the complete listing of syntax errors generated as well as the compiler you are using?  Also, which version of boost are you using?

 

Thanks,
Luke