Boost logo

Geometry :

Subject: Re: [geometry] One more compilation error with Boost Geometry 1.56
From: Adam Wulkiewicz (adam.wulkiewicz_at_[hidden])
Date: 2014-10-24 11:45:01


Hi Suresh,

Jakka30 wrote:
> Hello Adam,
>
> I am getting few more compilation errors with Boost::Geometry. Other Boost
> classes are working fine but the geometry is giving us troubles. Here are
> the errors. Could you please let us know how to fix it? Is Boost::Geometry
> 1.56 is compatible with Visual Studio 2012?

Yes, it should be compatible.

I can't deduce what may be the cause. Could you prepare some minimal
failing example? Without it I can only guess.
Which parts of Boost.Geometry are you using?
Which part fails this way?
Have you specialized the traits on your own?
Have you defined a namespace detail in the namespace
boost::geometry::traits?

Regards,
Adam

>> t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(65): error
> C2039: 'indexed_point_view' : is not a member of
> 'boost::geometry::traits::detail'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(65): error
> C2065: 'indexed_point_view' : undeclared identifier
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(65): error
> C2974: 'boost::geometry::traits::tag' : invalid template argument for
> 'Geometry', type expected
> 1> t:\boost\boost\geometry\core\tag.hpp(42) : see declaration of
> 'boost::geometry::traits::tag'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(65): error
> C2923: 'boost::geometry::traits::tag' : 'Index' is not a valid template type
> argument for parameter 'Enable'
> 1> t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(64)
> : see declaration of 'Index'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(65): error
> C2143: syntax error : missing ';' before '>'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(65): error
> C3855: 'boost::geometry::traits::tag': template parameter 'Enable' is
> incompatible with the declaration
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(65): error
> C2059: syntax error : '>'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(66): error
> C2143: syntax error : missing ';' before '{'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(66): error
> C2447: '{' : missing function header (old-style formal list?)
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(71): error
> C2039: 'indexed_point_view' : is not a member of
> 'boost::geometry::traits::detail'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(71): error
> C2065: 'indexed_point_view' : undeclared identifier
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(71): error
> C2974: 'boost::geometry::traits::coordinate_type' : invalid template
> argument for 'Point', type expected
> 1> t:\boost\boost\geometry\core\coordinate_type.hpp(42) : see
> declaration of 'boost::geometry::traits::coordinate_type'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(71): error
> C2923: 'boost::geometry::traits::coordinate_type' : 'Index' is not a valid
> template type argument for parameter 'Enable'
> 1> t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(70)
> : see declaration of 'Index'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(71): error
> C2143: syntax error : missing ';' before '>'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(71): error
> C3855: 'boost::geometry::traits::coordinate_type': template parameter
> 'Enable' is incompatible with the declaration
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(71): error
> C2059: syntax error : '>'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(72): error
> C2143: syntax error : missing ';' before '{'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(72): error
> C2447: '{' : missing function header (old-style formal list?)
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(77): error
> C2039: 'indexed_point_view' : is not a member of
> 'boost::geometry::traits::detail'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(77): error
> C2065: 'indexed_point_view' : undeclared identifier
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(77): error
> C2974: 'boost::geometry::traits::coordinate_system' : invalid template
> argument for 'Point', type expected
> 1> t:\boost\boost\geometry\core\coordinate_system.hpp(41) : see
> declaration of 'boost::geometry::traits::coordinate_system'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(77): error
> C2923: 'boost::geometry::traits::coordinate_system' : 'Index' is not a valid
> template type argument for parameter 'Enable'
> 1> t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(76)
> : see declaration of 'Index'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(77): error
> C2143: syntax error : missing ';' before '>'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(77): error
> C3855: 'boost::geometry::traits::coordinate_system': template parameter
> 'Enable' is incompatible with the declaration
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(77): error
> C2059: syntax error : '>'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(78): error
> C2143: syntax error : missing ';' before '{'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(78): error
> C2447: '{' : missing function header (old-style formal list?)
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(83): error
> C2039: 'indexed_point_view' : is not a member of
> 'boost::geometry::traits::detail'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(83): error
> C2065: 'indexed_point_view' : undeclared identifier
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(83): error
> C2974: 'boost::geometry::traits::dimension' : invalid template argument for
> 'Point', type expected
> 1> t:\boost\boost\geometry\core\coordinate_dimension.hpp(43) : see
> declaration of 'boost::geometry::traits::dimension'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(83): error
> C2923: 'boost::geometry::traits::dimension' : 'Index' is not a valid
> template type argument for parameter 'Enable'
> 1> t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(82)
> : see declaration of 'Index'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(83): error
> C2143: syntax error : missing ';' before '>'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(83): error
> C3855: 'boost::geometry::traits::dimension': template parameter 'Enable' is
> incompatible with the declaration
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(83): error
> C2059: syntax error : '>'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(84): error
> C2065: 'Geometry' : undeclared identifier
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(84): error
> C2923: 'boost::geometry::dimension' : 'Geometry' is not a valid template
> type argument for parameter 'Geometry'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(85): error
> C2226: syntax error : unexpected type 'boost::geometry::dimension'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(85): error
> C2143: syntax error : missing ';' before '{'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(85): error
> C2447: '{' : missing function header (old-style formal list?)
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(88): error
> C2039: 'indexed_point_view' : is not a member of
> 'boost::geometry::traits::detail'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(88): error
> C2065: 'indexed_point_view' : undeclared identifier
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(88): error
> C2974: 'boost::geometry::traits::access' : invalid template argument for
> 'Geometry', type expected
> 1> t:\boost\boost\geometry\core\access.hpp(55) : see declaration of
> 'boost::geometry::traits::access'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(88): error
> C2143: syntax error : missing ';' before ','
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(88): error
> C3855: 'boost::geometry::traits::access': template parameter 'Enable' is
> incompatible with the declaration
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(88): error
> C2059: syntax error : ','
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(89): error
> C2143: syntax error : missing ';' before '{'
> 1>t:\boost\boost\geometry\views\detail\indexed_point_view.hpp(89): error
> C2447: '{' : missing function header (old-style formal list?)
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(97):
> error C2976: 'boost::geometry::traits::tag' : too few template arguments
> 1> t:\boost\boost\geometry\core\tag.hpp(42) : see declaration of
> 'boost::geometry::traits::tag'
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(101):
> error C3083: 'buffer': the symbol to the left of a '::' must be a type
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(101):
> error C2039: 'buffered_ring' : is not a member of
> 'boost::geometry::traits::detail'
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(101):
> error C2065: 'buffered_ring' : undeclared identifier
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(101):
> error C2974: 'boost::geometry::traits::point_order' : invalid template
> argument for 'Ring', type expected
> 1> t:\boost\boost\geometry\core\point_order.hpp(65) : see
> declaration of 'boost::geometry::traits::point_order'
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(101):
> error C2143: syntax error : missing ';' before '>'
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(101):
> error C2953: 'boost::geometry::traits::point_order' : class template has
> already been defined
> 1> t:\boost\boost\geometry\core\point_order.hpp(65) : see
> declaration of 'boost::geometry::traits::point_order'
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(101):
> error C2059: syntax error : '>'
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(102):
> error C2143: syntax error : missing ';' before '{'
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(102):
> error C2447: '{' : missing function header (old-style formal list?)
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(108):
> error C3083: 'buffer': the symbol to the left of a '::' must be a type
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(108):
> error C2039: 'buffered_ring' : is not a member of
> 'boost::geometry::traits::detail'
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(108):
> error C2065: 'buffered_ring' : undeclared identifier
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(108):
> error C2974: 'boost::geometry::traits::closure' : invalid template argument
> for 'G', type expected
> 1> t:\boost\boost\geometry\core\closure.hpp(71) : see declaration
> of 'boost::geometry::traits::closure'
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(108):
> error C2143: syntax error : missing ';' before '>'
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(108):
> error C2059: syntax error : '>'
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(109):
> error C2143: syntax error : missing ';' before '{'
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(109):
> error C2447: '{' : missing function header (old-style formal list?)
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(115):
> error C3083: 'buffer': the symbol to the left of a '::' must be a type
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(115):
> error C2039: 'buffered_ring_collection' : is not a member of
> 'boost::geometry::traits::detail'
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(115):
> error C2065: 'buffered_ring_collection' : undeclared identifier
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(115):
> error C2974: 'boost::geometry::traits::point_type' : invalid template
> argument for 'Geometry', type expected
> 1> t:\boost\boost\geometry\core\point_type.hpp(44) : see
> declaration of 'boost::geometry::traits::point_type'
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(115):
> error C2143: syntax error : missing ';' before '>'
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(115):
> error C2059: syntax error : '>'
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(116):
> error C2143: syntax error : missing ';' before '{'
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(116):
> error C2447: '{' : missing function header (old-style formal list?)
> 1>t:\boost\boost\geometry\algorithms\detail\buffer\buffered_ring.hpp(124):
> error C2976: 'boost::geometry::traits::tag' : too few template arguments
> 1> t:\boost\boost\geometry\core\tag.hpp(42) : see declaration of
> 'boost::geometry::traits::tag'
> 1>t:\boost\boost\geometry\index\detail\bounded_view.hpp(136): error C2977:
> 'boost::geometry::traits::tag' : too many template arguments
> 1> t:\boost\boost\geometry\core\tag.hpp(42) : see declaration of
> 'boost::geometry::traits::tag'
> 1>t:\boost\boost\geometry\geometries\linestring.hpp(88): error C3855:
> 'boost::geometry::traits::tag': template parameter 'Enable' is incompatible
> with the declaration
> 1>t:\boost\boost\geometry\geometries\linestring.hpp(88): error C2977:
> 'boost::geometry::traits::tag' : too many template arguments
> 1> t:\boost\boost\geometry\core\tag.hpp(42) : see declaration of
> 'boost::geometry::traits::tag'
> 1>t:\boost\boost\geometry\geometries\multi_point.hpp(87): error C3855:
> 'boost::geometry::traits::tag': template parameter 'Enable' is incompatible
> with the declaration
> 1>t:\boost\boost\geometry\geometries\multi_point.hpp(87): error C2977:
> 'boost::geometry::traits::tag' : too many template arguments
> 1> t:\boost\boost\geometry\core\tag.hpp(42) : see declaration of
> 'boost::geometry::traits::tag'
> 1>t:\boost\boost\geometry\geometries\multi_linestring.hpp(72): error C3855:
> 'boost::geometry::traits::tag': template parameter 'Enable' is incompatible
> with the declaration
> 1>t:\boost\boost\geometry\geometries\multi_linestring.hpp(72): error C2977:
> 'boost::geometry::traits::tag' : too many template arguments
> 1> t:\boost\boost\geometry\core\tag.hpp(42) : see declaration of
> 'boost::geometry::traits::tag'
> 1>q:\libraries\geometrylib\point.h(170): error C2976:
> 'boost::geometry::traits::tag' : too few template arguments
> 1> t:\boost\boost\geometry\core\tag.hpp(42) : see declaration of
> 'boost::geometry::traits::tag'
> 1>q:\libraries\geometrylib\point.h(171): error C2976:
> 'boost::geometry::traits::dimension' : too few template arguments
> 1> t:\boost\boost\geometry\core\coordinate_dimension.hpp(43) : see
> declaration of 'boost::geometry::traits::dimension'
> 1>q:\libraries\geometrylib\point.h(172): error C2976:
> 'boost::geometry::traits::coordinate_type' : too few template arguments
> 1> t:\boost\boost\geometry\core\coordinate_type.hpp(42) : see
> declaration of 'boost::geometry::traits::coordinate_type'
> 1>q:\libraries\geometrylib\point.h(173): error C2976:
> 'boost::geometry::traits::coordinate_system' : too few template arguments
> 1> t:\boost\boost\geometry\core\coordinate_system.hpp(41) : see
> declaration of 'boost::geometry::traits::coordinate_system'
> 1>q:\libraries\geometrylib\point.h(181): error C2976:
> 'boost::geometry::traits::access' : too few template arguments
> 1> t:\boost\boost\geometry\core\access.hpp(55) : see declaration of
> 'boost::geometry::traits::access'
> 1>q:\libraries\geometrylib\point.h(189): error C2976:
> 'boost::geometry::traits::access' : too few template arguments
> 1> t:\boost\boost\geometry\core\access.hpp(55) : see declaration of
> 'boost::geometry::traits::access'
> 1>q:\libraries\geometrylib\point.h(201): error C2976:
> 'boost::geometry::traits::tag' : too few template arguments
> 1> t:\boost\boost\geometry\core\tag.hpp(42) : see declaration of
> 'boost::geometry::traits::tag'
> 1>q:\libraries\geometrylib\point.h(202): error C2976:
> 'boost::geometry::traits::dimension' : too few template arguments
> 1> t:\boost\boost\geometry\core\coordinate_dimension.hpp(43) : see
> declaration of 'boost::geometry::traits::dimension'
> 1>q:\libraries\geometrylib\point.h(203): error C2976:
> 'boost::geometry::traits::coordinate_type' : too few template arguments
> 1> t:\boost\boost\geometry\core\coordinate_type.hpp(42) : see
> declaration of 'boost::geometry::traits::coordinate_type'
> 1>q:\libraries\geometrylib\point.h(204): error C2976:
> 'boost::geometry::traits::coordinate_system' : too few template arguments
> 1> t:\boost\boost\geometry\core\coordinate_system.hpp(41) : see
> declaration of 'boost::geometry::traits::coordinate_system'
> 1>q:\libraries\geometrylib\point.h(212): error C2976:
> 'boost::geometry::traits::access' : too few template arguments
> 1> t:\boost\boost\geometry\core\access.hpp(55) : see declaration of
> 'boost::geometry::traits::access'
> 1>q:\libraries\geometrylib\point.h(220): error C2976:
> 'boost::geometry::traits::access' : too few template arguments
> 1> t:\boost\boost\geometry\core\access.hpp(55) : see declaration of
> 'boost::geometry::traits::access'
> 1>q:\libraries\geometrylib\point.h(228): error C2976:
> 'boost::geometry::traits::access' : too few template arguments
> 1> t:\boost\boost\geometry\core\access.hpp(55) : see declaration of
> 'boost::geometry::traits::access'
> 1>q:\libraries\geometrylib\envelope.h(132): error C2976:
> 'boost::geometry::traits::tag' : too few template arguments
> 1> t:\boost\boost\geometry\core\tag.hpp(42) : see declaration of
> 'boost::geometry::traits::tag'
> 1>q:\libraries\geometrylib\linesegment.h(180): error C2976:
> 'boost::geometry::traits::tag' : too few template arguments
> 1> t:\boost\boost\geometry\core\tag.hpp(42) : see declaration of
> 'boost::geometry::traits::tag'
> 1>q:\libraries\geometrylib\linesegment.h(241): error C2976:
> 'boost::geometry::traits::tag' : too few template arguments
> 1> t:\boost\boost\geometry\core\tag.hpp(42) : see declaration of
> 'boost::geometry::traits::tag'
> 1>q:\libraries\geometrylib\linestring.h(274): error C2976:
> 'boost::geometry::traits::tag' : too few template arguments
> 1> t:\boost\boost\geometry\core\tag.hpp(42) : see declaration of
> 'boost::geometry::traits::tag'
> 1>q:\libraries\geometrylib\linestring.h(333): error C2976:
> 'boost::geometry::traits::tag' : too few template arguments
> 1> t:\boost\boost\geometry\core\tag.hpp(42) : see declaration of
> 'boost::geometry::traits::tag'
> 1>q:\libraries\geometrylib\triang.h(221): error C2976:
> 'boost::geometry::traits::tag' : too few template arguments
> 1> t:\boost\boost\geometry\core\tag.hpp(42) : see declaration of
> 'boost::geometry::traits::tag'
> 1>q:\libraries\geometrylib\triang.h(222): error C2976:
> 'boost::geometry::traits::tag' : too few template arguments
> 1> t:\boost\boost\geometry\core\tag.hpp(42) : see declaration of
> 'boost::geometry::traits::tag'
> 1>q:\libraries\geometrylib\triang.h(222): fatal error C1003: error count
> exceeds 100; stopping compilation
>
> Thanks,
> Suresh
>
>
>
>
>
> --
> View this message in context: http://boost-geometry.203548.n3.nabble.com/One-more-compilation-error-with-Boost-Geometry-1-56-tp4026221.html
> Sent from the Boost Geometry mailing list archive at Nabble.com.
> _______________________________________________
> Geometry mailing list
> Geometry_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/geometry
>


Geometry list run by mateusz at loskot.net