diff --git a/include/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp b/include/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp index 9a7125dee..2fbbf1390 100644 --- a/include/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp +++ b/include/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp @@ -263,7 +263,7 @@ struct intersection_insert OverlayType, Strategy > : detail::overlay::overlay - + {}; @@ -288,7 +288,7 @@ struct intersection_insert OverlayType, Strategy > : detail::overlay::overlay - + {}; diff --git a/include/boost/geometry/algorithms/detail/overlay/overlay.hpp b/include/boost/geometry/algorithms/detail/overlay/overlay.hpp index f7e7424ef..8b89d39c5 100644 --- a/include/boost/geometry/algorithms/detail/overlay/overlay.hpp +++ b/include/boost/geometry/algorithms/detail/overlay/overlay.hpp @@ -134,12 +134,12 @@ template < typename Geometry1, typename Geometry2, bool Reverse1, bool Reverse2, bool ReverseOut, - typename OutputIterator, typename GeometryOut, + typename GeometryOut, overlay_type Direction > struct overlay { - template + template static inline OutputIterator apply( Geometry1 const& geometry1, Geometry2 const& geometry2, OutputIterator out, diff --git a/include/boost/geometry/algorithms/union.hpp b/include/boost/geometry/algorithms/union.hpp index adff84b88..625446b36 100644 --- a/include/boost/geometry/algorithms/union.hpp +++ b/include/boost/geometry/algorithms/union.hpp @@ -28,9 +28,7 @@ namespace dispatch template < - typename Geometry1, typename Geometry2, - typename OutputIterator, - typename GeometryOut, + typename Geometry1, typename Geometry2, typename GeometryOut, typename TagIn1 = typename tag::type, typename TagIn2 = typename tag::type, typename TagOut = typename tag::type, @@ -56,31 +54,27 @@ struct union_insert template < - typename Geometry1, typename Geometry2, - typename OutputIterator, - typename GeometryOut, + typename Geometry1, typename Geometry2, typename GeometryOut, typename TagIn1, typename TagIn2, typename TagOut, bool Reverse1, bool Reverse2, bool ReverseOut > struct union_insert < - Geometry1, Geometry2, - OutputIterator, GeometryOut, + Geometry1, Geometry2, GeometryOut, TagIn1, TagIn2, TagOut, true, true, true, Reverse1, Reverse2, ReverseOut, true - >: union_insert + >: union_insert { - template + template static inline OutputIterator apply(Geometry1 const& g1, Geometry2 const& g2, OutputIterator out, Strategy const& strategy) { return union_insert < - Geometry2, Geometry1, - OutputIterator, GeometryOut + Geometry2, Geometry1, GeometryOut >::apply(g2, g1, out, strategy); } }; @@ -88,22 +82,19 @@ struct union_insert template < - typename Geometry1, typename Geometry2, - typename OutputIterator, - typename GeometryOut, + typename Geometry1, typename Geometry2, typename GeometryOut, typename TagIn1, typename TagIn2, typename TagOut, bool Reverse1, bool Reverse2, bool ReverseOut > struct union_insert < - Geometry1, Geometry2, - OutputIterator, GeometryOut, + Geometry1, Geometry2, GeometryOut, TagIn1, TagIn2, TagOut, true, true, true, Reverse1, Reverse2, ReverseOut, false > : detail::overlay::overlay - + {}; @@ -128,8 +119,7 @@ inline OutputIterator insert(Geometry1 const& geometry1, { return dispatch::union_insert < - Geometry1, Geometry2, - OutputIterator, GeometryOut + Geometry1, Geometry2, GeometryOut >::apply(geometry1, geometry2, out, strategy); }