From d4ee790bb1cfe6ddc0ba64d972ffa6b35169af91 Mon Sep 17 00:00:00 2001 From: Fernando Cacciola Date: Tue, 21 Oct 2008 18:43:20 +0000 Subject: [PATCH] Added work-around for VC8 ICE in crate_offset_polygons_2 --- .../Create_offset_polygons_2.cpp | 2 +- .../include/CGAL/Create_offset_polygons_2.h | 25 +++++++++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/Straight_skeleton_2/examples/Straight_skeleton_2/Create_offset_polygons_2.cpp b/Straight_skeleton_2/examples/Straight_skeleton_2/Create_offset_polygons_2.cpp index 61d4af57960..badbbd0aa83 100644 --- a/Straight_skeleton_2/examples/Straight_skeleton_2/Create_offset_polygons_2.cpp +++ b/Straight_skeleton_2/examples/Straight_skeleton_2/Create_offset_polygons_2.cpp @@ -36,7 +36,7 @@ int main() double lOffset = 1 ; - PolygonPtrVector offset_polygons = CGAL::create_offset_polygons_2(lOffset,*ss); + PolygonPtrVector offset_polygons = CGAL::create_offset_polygons_2(lOffset,*ss); print_polygons(offset_polygons); diff --git a/Straight_skeleton_2/include/CGAL/Create_offset_polygons_2.h b/Straight_skeleton_2/include/CGAL/Create_offset_polygons_2.h index 28c9645bca3..ac9b462fb3b 100644 --- a/Straight_skeleton_2/include/CGAL/Create_offset_polygons_2.h +++ b/Straight_skeleton_2/include/CGAL/Create_offset_polygons_2.h @@ -189,14 +189,18 @@ create_offset_polygons_2 ( FT const& aOffset, Skeleton const& aSs, K const& k ) return CGAL_SS_i::create_offset_polygons_2(aOffset,aSs,k,same_kernel); } -template -std::vector< boost::shared_ptr > + +template +std::vector< boost::shared_ptr< Polygon_2 > > inline -create_offset_polygons_2 ( FT const& aOffset, Skeleton const& aSs ) +create_offset_polygons_2 ( FT const& aOffset, Skeleton const& aSs, K const& k ) { - return create_offset_polygons_2(aOffset, aSs, typename Polygon::Traits() ) ; + typedef Polygon_2 Polygon ; + + return create_offset_polygons_2(aOffset, aSs, k ) ; } +#if !defined(_MSC_VER) || ( _MSC_VER >= 1500 ) template std::vector< boost::shared_ptr< Polygon_2< typename Skeleton::Traits::Kernel > > > inline @@ -204,9 +208,16 @@ create_offset_polygons_2 ( FT const& aOffset, Skeleton const& aSs ) { typedef typename Skeleton::Traits::Kernel K ; - typedef Polygon_2 Polygon ; - - return create_offset_polygons_2(aOffset, aSs, K() ) ; + return create_offset_polygons_2(aOffset, aSs, K() ) ; +} +#endif + +template +std::vector< boost::shared_ptr > +inline +create_offset_polygons_2 ( FT const& aOffset, Skeleton const& aSs ) +{ + return create_offset_polygons_2(aOffset, aSs, typename Polygon::Traits() ) ; } template