Boost logo

Boost Users :

Subject: Re: [Boost-users] Boost::Polygon issue with including in project
From: Chris Stylianou (Chris.Stylianou_at_[hidden])
Date: 2011-03-25 06:26:50


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_at_[hidden] [mailto:boost-users-bounces_at_[hidden]] On Behalf Of Simonson, Lucanus J
Sent: 24 March 2011 15:51
To: boost-users_at_[hidden]
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_at_[hidden] [mailto:boost-users-bounces_at_[hidden]] On Behalf Of Chris Stylianou
Sent: Thursday, March 24, 2011 3:30 AM
To: boost-users_at_[hidden]
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_at_[hidden]<mailto:chris_at_[hidden]>
w: www.borwell.com

"Making IT work for you"

P Please consider the environment before printing this email
_______________________________________________________________

From: boost-users-bounces_at_[hidden] [mailto:boost-users-bounces_at_[hidden]] On Behalf Of Simonson, Lucanus J
Sent: 23 March 2011 16:03
To: boost-users_at_[hidden]
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




image001.png

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net