Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r80948 - in trunk/boost/geometry: algorithms algorithms/detail/overlay multi/algorithms
From: bruno.lalande_at_[hidden]
Date: 2012-10-10 18:46:47


Author: bruno.lalande
Date: 2012-10-10 18:46:46 EDT (Wed, 10 Oct 2012)
New Revision: 80948
URL: http://svn.boost.org/trac/boost/changeset/80948

Log:
Moved more template params to function level in dispatch::intersection_insert.
Text files modified:
   trunk/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp | 118 ++++++++++++++++-------------------
   trunk/boost/geometry/algorithms/difference.hpp | 2
   trunk/boost/geometry/algorithms/intersection.hpp | 37 ++++------
   trunk/boost/geometry/algorithms/sym_difference.hpp | 4
   trunk/boost/geometry/multi/algorithms/intersection.hpp | 134 +++++++++++++++++----------------------
   5 files changed, 133 insertions(+), 162 deletions(-)

Modified: trunk/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp
==============================================================================
--- trunk/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp (original)
+++ trunk/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp 2012-10-10 18:46:46 EDT (Wed, 10 Oct 2012)
@@ -41,14 +41,14 @@
 namespace detail { namespace intersection
 {
 
-template
-<
- typename Segment1, typename Segment2,
- typename OutputIterator, typename PointOut
->
+template <typename PointOut>
 struct intersection_segment_segment_point
 {
- template <typename Strategy>
+ template
+ <
+ typename Segment1, typename Segment2,
+ typename OutputIterator, typename Strategy
+ >
     static inline OutputIterator apply(Segment1 const& segment1,
             Segment2 const& segment2, OutputIterator out,
             Strategy const& )
@@ -77,14 +77,14 @@
     }
 };
 
-template
-<
- typename Linestring1, typename Linestring2,
- typename OutputIterator, typename PointOut
->
+template <typename PointOut>
 struct intersection_linestring_linestring_point
 {
- template <typename Strategy>
+ template
+ <
+ typename Linestring1, typename Linestring2,
+ typename OutputIterator, typename Strategy
+ >
     static inline OutputIterator apply(Linestring1 const& linestring1,
             Linestring2 const& linestring2, OutputIterator out,
             Strategy const& )
@@ -112,21 +112,12 @@
 */
 template
 <
- typename LineString, typename Areal,
     bool ReverseAreal,
- typename OutputIterator, typename LineStringOut,
+ typename LineStringOut,
     overlay_type OverlayType
>
 struct intersection_of_linestring_with_areal
 {
- typedef detail::overlay::follow
- <
- LineStringOut,
- LineString,
- Areal,
- OverlayType
- > follower;
-
 #if defined(BOOST_GEOMETRY_DEBUG_FOLLOW)
         template <typename Turn, typename Operation>
         static inline void debug_follow(Turn const& turn, Operation op,
@@ -144,7 +135,11 @@
         }
 #endif
 
- template <typename Strategy>
+ template
+ <
+ typename LineString, typename Areal,
+ typename OutputIterator, typename Strategy
+ >
     static inline OutputIterator apply(LineString const& linestring, Areal const& areal,
             OutputIterator out,
             Strategy const& )
@@ -154,6 +149,14 @@
             return out;
         }
 
+ typedef detail::overlay::follow
+ <
+ LineStringOut,
+ LineString,
+ Areal,
+ OverlayType
+ > follower;
+
         typedef typename point_type<LineStringOut>::type point_type;
 
         typedef detail::overlay::traversal_turn_info<point_type> turn_info;
@@ -228,7 +231,6 @@
     // real types
     typename Geometry1, typename Geometry2,
     bool Reverse1, bool Reverse2, bool ReverseOut,
- typename OutputIterator,
     typename GeometryOut,
     overlay_type OverlayType
>
@@ -247,7 +249,6 @@
     typename TagIn1, typename TagIn2, typename TagOut,
     typename Geometry1, typename Geometry2,
     bool Reverse1, bool Reverse2, bool ReverseOut,
- typename OutputIterator,
     typename GeometryOut,
     overlay_type OverlayType
>
@@ -257,7 +258,7 @@
         true, true, true,
         Geometry1, Geometry2,
         Reverse1, Reverse2, ReverseOut,
- OutputIterator, GeometryOut,
+ GeometryOut,
         OverlayType
> : detail::overlay::overlay
         <Geometry1, Geometry2, Reverse1, Reverse2, ReverseOut, GeometryOut, OverlayType>
@@ -270,7 +271,6 @@
     typename TagIn, typename TagOut,
     typename Geometry, typename Box,
     bool Reverse1, bool Reverse2, bool ReverseOut,
- typename OutputIterator,
     typename GeometryOut,
     overlay_type OverlayType
>
@@ -280,7 +280,7 @@
         true, true, true,
         Geometry, Box,
         Reverse1, Reverse2, ReverseOut,
- OutputIterator, GeometryOut,
+ GeometryOut,
         OverlayType
> : detail::overlay::overlay
         <Geometry, Box, Reverse1, Reverse2, ReverseOut, GeometryOut, OverlayType>
@@ -291,7 +291,7 @@
 <
     typename Segment1, typename Segment2,
     bool Reverse1, bool Reverse2, bool ReverseOut,
- typename OutputIterator, typename GeometryOut,
+ typename GeometryOut,
     overlay_type OverlayType
>
 struct intersection_insert
@@ -300,13 +300,9 @@
         false, false, false,
         Segment1, Segment2,
         Reverse1, Reverse2, ReverseOut,
- OutputIterator, GeometryOut,
+ GeometryOut,
         OverlayType
- > : detail::intersection::intersection_segment_segment_point
- <
- Segment1, Segment2,
- OutputIterator, GeometryOut
- >
+ > : detail::intersection::intersection_segment_segment_point<GeometryOut>
 {};
 
 
@@ -314,7 +310,7 @@
 <
     typename Linestring1, typename Linestring2,
     bool Reverse1, bool Reverse2, bool ReverseOut,
- typename OutputIterator, typename GeometryOut,
+ typename GeometryOut,
     overlay_type OverlayType
>
 struct intersection_insert
@@ -323,13 +319,9 @@
         false, false, false,
         Linestring1, Linestring2,
         Reverse1, Reverse2, ReverseOut,
- OutputIterator, GeometryOut,
+ GeometryOut,
         OverlayType
- > : detail::intersection::intersection_linestring_linestring_point
- <
- Linestring1, Linestring2,
- OutputIterator, GeometryOut
- >
+ > : detail::intersection::intersection_linestring_linestring_point<GeometryOut>
 {};
 
 
@@ -337,7 +329,7 @@
 <
     typename Linestring, typename Box,
     bool Reverse1, bool Reverse2, bool ReverseOut,
- typename OutputIterator, typename GeometryOut,
+ typename GeometryOut,
     overlay_type OverlayType
>
 struct intersection_insert
@@ -346,11 +338,11 @@
         false, true, false,
         Linestring, Box,
         Reverse1, Reverse2, ReverseOut,
- OutputIterator, GeometryOut,
+ GeometryOut,
         OverlayType
>
 {
- template <typename Strategy>
+ template <typename OutputIterator, typename Strategy>
     static inline OutputIterator apply(Linestring const& linestring,
             Box const& box, OutputIterator out, Strategy const& )
     {
@@ -366,7 +358,7 @@
 <
     typename Linestring, typename Polygon,
     bool ReverseLinestring, bool ReversePolygon, bool ReverseOut,
- typename OutputIterator, typename GeometryOut,
+ typename GeometryOut,
     overlay_type OverlayType
>
 struct intersection_insert
@@ -375,13 +367,12 @@
         false, true, false,
         Linestring, Polygon,
         ReverseLinestring, ReversePolygon, ReverseOut,
- OutputIterator, GeometryOut,
+ GeometryOut,
         OverlayType
> : detail::intersection::intersection_of_linestring_with_areal
             <
- Linestring, Polygon,
                 ReversePolygon,
- OutputIterator, GeometryOut,
+ GeometryOut,
                 OverlayType
>
 {};
@@ -391,7 +382,7 @@
 <
     typename Linestring, typename Ring,
     bool ReverseLinestring, bool ReverseRing, bool ReverseOut,
- typename OutputIterator, typename GeometryOut,
+ typename GeometryOut,
     overlay_type OverlayType
>
 struct intersection_insert
@@ -400,13 +391,12 @@
         false, true, false,
         Linestring, Ring,
         ReverseLinestring, ReverseRing, ReverseOut,
- OutputIterator, GeometryOut,
+ GeometryOut,
         OverlayType
> : detail::intersection::intersection_of_linestring_with_areal
             <
- Linestring, Ring,
                 ReverseRing,
- OutputIterator, GeometryOut,
+ GeometryOut,
                 OverlayType
>
 {};
@@ -415,7 +405,7 @@
 <
     typename Segment, typename Box,
     bool Reverse1, bool Reverse2, bool ReverseOut,
- typename OutputIterator, typename GeometryOut,
+ typename GeometryOut,
     overlay_type OverlayType
>
 struct intersection_insert
@@ -424,11 +414,11 @@
         false, true, false,
         Segment, Box,
         Reverse1, Reverse2, ReverseOut,
- OutputIterator, GeometryOut,
+ GeometryOut,
         OverlayType
>
 {
- template <typename Strategy>
+ template <typename OutputIterator, typename Strategy>
     static inline OutputIterator apply(Segment const& segment,
             Box const& box, OutputIterator out, Strategy const& )
     {
@@ -447,7 +437,7 @@
     bool Areal1, bool Areal2,
     typename Geometry1, typename Geometry2,
     bool Reverse1, bool Reverse2, bool ReverseOut,
- typename OutputIterator, typename PointOut,
+ typename PointOut,
     overlay_type OverlayType
>
 struct intersection_insert
@@ -456,11 +446,11 @@
         Areal1, Areal2, false,
         Geometry1, Geometry2,
         Reverse1, Reverse2, ReverseOut,
- OutputIterator, PointOut,
+ PointOut,
         OverlayType
>
 {
- template <typename Strategy>
+ template <typename OutputIterator, typename Strategy>
     static inline OutputIterator apply(Geometry1 const& geometry1,
             Geometry2 const& geometry2, OutputIterator out, Strategy const& )
     {
@@ -490,12 +480,12 @@
     bool Areal1, bool Areal2, bool ArealOut,
     typename Geometry1, typename Geometry2,
     bool Reverse1, bool Reverse2, bool ReverseOut,
- typename OutputIterator, typename GeometryOut,
+ typename GeometryOut,
     overlay_type OverlayType
>
 struct intersection_insert_reversed
 {
- template <typename Strategy>
+ template <typename OutputIterator, typename Strategy>
     static inline OutputIterator apply(Geometry1 const& g1,
                 Geometry2 const& g2, OutputIterator out,
                 Strategy const& strategy)
@@ -506,7 +496,7 @@
                 Areal2, Areal1, ArealOut,
                 Geometry2, Geometry1,
                 Reverse2, Reverse1, ReverseOut,
- OutputIterator, GeometryOut,
+ GeometryOut,
                 OverlayType
>::apply(g2, g1, out, strategy);
     }
@@ -552,7 +542,7 @@
                 overlay::do_reverse<geometry::point_order<Geometry1>::value>::value,
                 overlay::do_reverse<geometry::point_order<Geometry2>::value, ReverseSecond>::value,
                 overlay::do_reverse<geometry::point_order<GeometryOut>::value>::value,
- OutputIterator, GeometryOut,
+ GeometryOut,
                 OverlayType
>,
             geometry::dispatch::intersection_insert
@@ -567,7 +557,7 @@
                 geometry::detail::overlay::do_reverse<geometry::point_order<Geometry1>::value>::value,
                 geometry::detail::overlay::do_reverse<geometry::point_order<Geometry2>::value, ReverseSecond>::value,
                 geometry::detail::overlay::do_reverse<geometry::point_order<GeometryOut>::value>::value,
- OutputIterator, GeometryOut,
+ GeometryOut,
                 OverlayType
>
>::type::apply(geometry1, geometry2, out, strategy);

Modified: trunk/boost/geometry/algorithms/difference.hpp
==============================================================================
--- trunk/boost/geometry/algorithms/difference.hpp (original)
+++ trunk/boost/geometry/algorithms/difference.hpp 2012-10-10 18:46:46 EDT (Wed, 10 Oct 2012)
@@ -66,7 +66,7 @@
             geometry::detail::overlay::do_reverse<geometry::point_order<Geometry1>::value>::value,
             geometry::detail::overlay::do_reverse<geometry::point_order<Geometry2>::value, true>::value,
             geometry::detail::overlay::do_reverse<geometry::point_order<GeometryOut>::value>::value,
- OutputIterator, GeometryOut,
+ GeometryOut,
             overlay_difference
>::apply(geometry1, geometry2, out, strategy);
 }

Modified: trunk/boost/geometry/algorithms/intersection.hpp
==============================================================================
--- trunk/boost/geometry/algorithms/intersection.hpp (original)
+++ trunk/boost/geometry/algorithms/intersection.hpp 2012-10-10 18:46:46 EDT (Wed, 10 Oct 2012)
@@ -22,14 +22,14 @@
 namespace detail { namespace intersection
 {
 
-template
-<
- typename Box1, typename Box2,
- std::size_t Dimension, std::size_t DimensionCount
->
+template <std::size_t Dimension, std::size_t DimensionCount>
 struct intersection_box_box
 {
- template <typename BoxOut, typename Strategy>
+ template
+ <
+ typename Box1, typename Box2, typename BoxOut,
+ typename Strategy
+ >
     static inline bool apply(Box1 const& box1,
             Box2 const& box2, BoxOut& box_out,
             Strategy const& strategy)
@@ -49,22 +49,19 @@
         set<min_corner, Dimension>(box_out, min1 < min2 ? min2 : min1);
         set<max_corner, Dimension>(box_out, max1 > max2 ? max2 : max1);
 
- return intersection_box_box
- <
- Box1, Box2,
- Dimension + 1, DimensionCount
- >::apply(box1, box2, box_out, strategy);
+ return intersection_box_box<Dimension + 1, DimensionCount>
+ ::apply(box1, box2, box_out, strategy);
     }
 };
 
-template
-<
- typename Box1, typename Box2,
- std::size_t DimensionCount
->
-struct intersection_box_box<Box1, Box2, DimensionCount, DimensionCount>
+template <std::size_t DimensionCount>
+struct intersection_box_box<DimensionCount, DimensionCount>
 {
- template <typename BoxOut, typename Strategy>
+ template
+ <
+ typename Box1, typename Box2, typename BoxOut,
+ typename Strategy
+ >
     static inline bool apply(Box1 const&, Box2 const&, BoxOut&, Strategy const&)
     {
         return true;
@@ -97,7 +94,6 @@
             GeometryOut& geometry_out,
             Strategy const& strategy)
     {
- typedef std::back_insert_iterator<GeometryOut> output_iterator;
         typedef typename boost::range_value<GeometryOut>::type OneOut;
 
         intersection_insert
@@ -110,7 +106,7 @@
             detail::overlay::do_reverse<geometry::point_order<Geometry1>::value, false>::value,
             detail::overlay::do_reverse<geometry::point_order<Geometry2>::value, false>::value,
             detail::overlay::do_reverse<geometry::point_order<OneOut>::value>::value,
- output_iterator, OneOut,
+ OneOut,
             overlay_intersection
>::apply(geometry1, geometry2, std::back_inserter(geometry_out), strategy);
 
@@ -161,7 +157,6 @@
         Reverse
> : public detail::intersection::intersection_box_box
             <
- Box1, Box2,
                 0, geometry::dimension<Box1>::value
>
 {};

Modified: trunk/boost/geometry/algorithms/sym_difference.hpp
==============================================================================
--- trunk/boost/geometry/algorithms/sym_difference.hpp (original)
+++ trunk/boost/geometry/algorithms/sym_difference.hpp 2012-10-10 18:46:46 EDT (Wed, 10 Oct 2012)
@@ -69,7 +69,7 @@
             geometry::detail::overlay::do_reverse<geometry::point_order<Geometry1>::value>::value,
             geometry::detail::overlay::do_reverse<geometry::point_order<Geometry2>::value, true>::value,
             geometry::detail::overlay::do_reverse<geometry::point_order<GeometryOut>::value>::value,
- OutputIterator, GeometryOut,
+ GeometryOut,
             overlay_difference
>::apply(geometry1, geometry2, out, strategy);
     out = geometry::dispatch::intersection_insert
@@ -84,7 +84,7 @@
             geometry::detail::overlay::do_reverse<geometry::point_order<Geometry2>::value>::value,
             geometry::detail::overlay::do_reverse<geometry::point_order<Geometry1>::value, true>::value,
             geometry::detail::overlay::do_reverse<geometry::point_order<GeometryOut>::value>::value,
- OutputIterator, GeometryOut,
+ GeometryOut,
             overlay_difference
>::apply(geometry2, geometry1, out, strategy);
     return out;

Modified: trunk/boost/geometry/multi/algorithms/intersection.hpp
==============================================================================
--- trunk/boost/geometry/multi/algorithms/intersection.hpp (original)
+++ trunk/boost/geometry/multi/algorithms/intersection.hpp 2012-10-10 18:46:46 EDT (Wed, 10 Oct 2012)
@@ -36,14 +36,14 @@
 {
 
 
-template
-<
- typename MultiLinestring1, typename MultiLinestring2,
- typename OutputIterator, typename PointOut
->
+template <typename PointOut>
 struct intersection_multi_linestring_multi_linestring_point
 {
- template <typename Strategy>
+ template
+ <
+ typename MultiLinestring1, typename MultiLinestring2,
+ typename OutputIterator, typename Strategy
+ >
     static inline OutputIterator apply(MultiLinestring1 const& ml1,
             MultiLinestring2 const& ml2, OutputIterator out,
             Strategy const& strategy)
@@ -64,12 +64,8 @@
                 it2 != boost::end(ml2);
                 ++it2)
             {
- out = intersection_linestring_linestring_point
- <
- typename boost::range_value<MultiLinestring1>::type,
- typename boost::range_value<MultiLinestring2>::type,
- OutputIterator, PointOut
- >::apply(*it1, *it2, out, strategy);
+ out = intersection_linestring_linestring_point<PointOut>
+ ::apply(*it1, *it2, out, strategy);
             }
         }
 
@@ -78,14 +74,14 @@
 };
 
 
-template
-<
- typename Linestring, typename MultiLinestring,
- typename OutputIterator, typename PointOut
->
+template <typename PointOut>
 struct intersection_linestring_multi_linestring_point
 {
- template <typename Strategy>
+ template
+ <
+ typename Linestring, typename MultiLinestring,
+ typename OutputIterator, typename Strategy
+ >
     static inline OutputIterator apply(Linestring const& linestring,
             MultiLinestring const& ml, OutputIterator out,
             Strategy const& strategy)
@@ -97,12 +93,8 @@
             it != boost::end(ml);
             ++it)
         {
- out = intersection_linestring_linestring_point
- <
- Linestring,
- typename boost::range_value<MultiLinestring>::type,
- OutputIterator, PointOut
- >::apply(linestring, *it, out, strategy);
+ out = intersection_linestring_linestring_point<PointOut>
+ ::apply(linestring, *it, out, strategy);
         }
 
         return out;
@@ -114,14 +106,17 @@
 // is second (above) or first (below) argument, it is not trivial to merge them.
 template
 <
- typename MultiLinestring, typename Areal,
     bool ReverseAreal,
- typename OutputIterator, typename LineStringOut,
+ typename LineStringOut,
     overlay_type OverlayType
>
 struct intersection_of_multi_linestring_with_areal
 {
- template <typename Strategy>
+ template
+ <
+ typename MultiLinestring, typename Areal,
+ typename OutputIterator, typename Strategy
+ >
     static inline OutputIterator apply(MultiLinestring const& ml, Areal const& areal,
             OutputIterator out,
             Strategy const& strategy)
@@ -135,9 +130,7 @@
         {
             out = intersection_of_linestring_with_areal
                 <
- typename boost::range_value<MultiLinestring>::type,
- Areal, ReverseAreal,
- OutputIterator, LineStringOut, OverlayType
+ ReverseAreal, LineStringOut, OverlayType
>::apply(*it, areal, out, strategy);
         }
 
@@ -149,37 +142,38 @@
 // This one calls the one above with reversed arguments
 template
 <
- typename Areal, typename MultiLinestring,
     bool ReverseAreal,
- typename OutputIterator, typename LineStringOut,
+ typename LineStringOut,
     overlay_type OverlayType
>
 struct intersection_of_areal_with_multi_linestring
 {
- template <typename Strategy>
+ template
+ <
+ typename Areal, typename MultiLinestring,
+ typename OutputIterator, typename Strategy
+ >
     static inline OutputIterator apply(Areal const& areal, MultiLinestring const& ml,
             OutputIterator out,
             Strategy const& strategy)
     {
         return intersection_of_multi_linestring_with_areal
             <
- MultiLinestring, Areal, ReverseAreal,
- OutputIterator, LineStringOut,
- OverlayType
+ ReverseAreal, LineStringOut, OverlayType
>::apply(ml, areal, out, strategy);
     }
 };
 
 
 
-template
-<
- typename MultiLinestring, typename Box,
- typename OutputIterator, typename LinestringOut
->
+template <typename LinestringOut>
 struct clip_multi_linestring
 {
- template <typename Strategy>
+ template
+ <
+ typename MultiLinestring, typename Box,
+ typename OutputIterator, typename Strategy
+ >
     static inline OutputIterator apply(MultiLinestring const& multi_linestring,
             Box const& box, OutputIterator out, Strategy const& )
     {
@@ -211,7 +205,7 @@
 <
     typename MultiLinestring1, typename MultiLinestring2,
     bool Reverse1, bool Reverse2, bool ReverseOut,
- typename OutputIterator, typename GeometryOut,
+ typename GeometryOut,
     overlay_type OverlayType
>
 struct intersection_insert
@@ -220,12 +214,11 @@
         false, false, false,
         MultiLinestring1, MultiLinestring2,
         Reverse1, Reverse2, ReverseOut,
- OutputIterator, GeometryOut,
+ GeometryOut,
         OverlayType
> : detail::intersection::intersection_multi_linestring_multi_linestring_point
             <
- MultiLinestring1, MultiLinestring2,
- OutputIterator, GeometryOut
+ GeometryOut
>
 {};
 
@@ -233,7 +226,7 @@
 template
 <
     typename Linestring, typename MultiLinestring,
- typename OutputIterator, typename GeometryOut,
+ typename GeometryOut,
     bool Reverse1, bool Reverse2, bool ReverseOut,
     overlay_type OverlayType
>
@@ -243,12 +236,11 @@
         false, false, false,
         Linestring, MultiLinestring,
         Reverse1, Reverse2, ReverseOut,
- OutputIterator, GeometryOut,
+ GeometryOut,
         OverlayType
> : detail::intersection::intersection_linestring_multi_linestring_point
             <
- Linestring, MultiLinestring,
- OutputIterator, GeometryOut
+ GeometryOut
>
 {};
 
@@ -257,7 +249,7 @@
 <
     typename MultiLinestring, typename Box,
     bool Reverse1, bool Reverse2, bool ReverseOut,
- typename OutputIterator, typename GeometryOut,
+ typename GeometryOut,
     overlay_type OverlayType
>
 struct intersection_insert
@@ -266,12 +258,11 @@
         false, true, false,
         MultiLinestring, Box,
         Reverse1, Reverse2, ReverseOut,
- OutputIterator, GeometryOut,
+ GeometryOut,
         OverlayType
> : detail::intersection::clip_multi_linestring
             <
- MultiLinestring, Box,
- OutputIterator, GeometryOut
+ GeometryOut
>
 {};
 
@@ -280,7 +271,7 @@
 <
     typename Linestring, typename MultiPolygon,
     bool ReverseLinestring, bool ReverseMultiPolygon, bool ReverseOut,
- typename OutputIterator, typename GeometryOut,
+ typename GeometryOut,
     overlay_type OverlayType
>
 struct intersection_insert
@@ -289,13 +280,12 @@
         false, true, false,
         Linestring, MultiPolygon,
         ReverseLinestring, ReverseMultiPolygon, ReverseOut,
- OutputIterator, GeometryOut,
+ GeometryOut,
         OverlayType
> : detail::intersection::intersection_of_linestring_with_areal
             <
- Linestring, MultiPolygon,
                 ReverseMultiPolygon,
- OutputIterator, GeometryOut,
+ GeometryOut,
                 OverlayType
>
 {};
@@ -307,7 +297,7 @@
 <
     typename Polygon, typename MultiLinestring,
     bool ReversePolygon, bool ReverseMultiLinestring, bool ReverseOut,
- typename OutputIterator, typename GeometryOut,
+ typename GeometryOut,
     overlay_type OverlayType
>
 struct intersection_insert
@@ -316,13 +306,12 @@
         true, false, false,
         Polygon, MultiLinestring,
         ReversePolygon, ReverseMultiLinestring, ReverseOut,
- OutputIterator, GeometryOut,
+ GeometryOut,
         OverlayType
> : detail::intersection::intersection_of_areal_with_multi_linestring
             <
- Polygon, MultiLinestring,
                 ReversePolygon,
- OutputIterator, GeometryOut,
+ GeometryOut,
                 OverlayType
>
 {};
@@ -332,7 +321,7 @@
 <
     typename MultiLinestring, typename Ring,
     bool ReverseMultiLinestring, bool ReverseRing, bool ReverseOut,
- typename OutputIterator, typename GeometryOut,
+ typename GeometryOut,
     overlay_type OverlayType
>
 struct intersection_insert
@@ -341,13 +330,12 @@
         false, true, false,
         MultiLinestring, Ring,
         ReverseMultiLinestring, ReverseRing, ReverseOut,
- OutputIterator, GeometryOut,
+ GeometryOut,
         OverlayType
> : detail::intersection::intersection_of_multi_linestring_with_areal
             <
- MultiLinestring, Ring,
                 ReverseRing,
- OutputIterator, GeometryOut,
+ GeometryOut,
                 OverlayType
>
 {};
@@ -356,7 +344,7 @@
 <
     typename MultiLinestring, typename Polygon,
     bool ReverseMultiLinestring, bool ReverseRing, bool ReverseOut,
- typename OutputIterator, typename GeometryOut,
+ typename GeometryOut,
     overlay_type OverlayType
>
 struct intersection_insert
@@ -365,13 +353,12 @@
         false, true, false,
         MultiLinestring, Polygon,
         ReverseMultiLinestring, ReverseRing, ReverseOut,
- OutputIterator, GeometryOut,
+ GeometryOut,
         OverlayType
> : detail::intersection::intersection_of_multi_linestring_with_areal
             <
- MultiLinestring, Polygon,
                 ReverseRing,
- OutputIterator, GeometryOut,
+ GeometryOut,
                 OverlayType
>
 {};
@@ -382,7 +369,7 @@
 <
     typename MultiLinestring, typename MultiPolygon,
     bool ReverseMultiLinestring, bool ReverseMultiPolygon, bool ReverseOut,
- typename OutputIterator, typename GeometryOut,
+ typename GeometryOut,
     overlay_type OverlayType
>
 struct intersection_insert
@@ -391,13 +378,12 @@
         false, true, false,
         MultiLinestring, MultiPolygon,
         ReverseMultiLinestring, ReverseMultiPolygon, ReverseOut,
- OutputIterator, GeometryOut,
+ GeometryOut,
         OverlayType
> : detail::intersection::intersection_of_multi_linestring_with_areal
             <
- MultiLinestring, MultiPolygon,
                 ReverseMultiPolygon,
- OutputIterator, GeometryOut,
+ GeometryOut,
                 OverlayType
>
 {};


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk