diff --git a/include/boost/geometry/algorithms/union.hpp b/include/boost/geometry/algorithms/union.hpp index 69c59a030..fa4401abd 100644 --- a/include/boost/geometry/algorithms/union.hpp +++ b/include/boost/geometry/algorithms/union.hpp @@ -32,7 +32,6 @@ template < // real types typename Geometry1, typename Geometry2, - bool Reverse1, bool Reverse2, bool ReverseOut, typename OutputIterator, typename GeometryOut, typename Strategy, @@ -41,7 +40,10 @@ template typename TagOut = typename tag::type, bool Areal1 = geometry::is_areal::value, bool Areal2 = geometry::is_areal::value, - bool ArealOut = geometry::is_areal::value + bool ArealOut = geometry::is_areal::value, + bool Reverse1 = detail::overlay::do_reverse::value>::value, + bool Reverse2 = detail::overlay::do_reverse::value>::value, + bool ReverseOut = detail::overlay::do_reverse::value>::value > struct union_insert { @@ -56,20 +58,20 @@ struct union_insert template < typename Geometry1, typename Geometry2, - bool Reverse1, bool Reverse2, bool ReverseOut, typename OutputIterator, typename GeometryOut, typename Strategy, - typename TagIn1, typename TagIn2, typename TagOut + typename TagIn1, typename TagIn2, typename TagOut, + bool Reverse1, bool Reverse2, bool ReverseOut > struct union_insert < Geometry1, Geometry2, - Reverse1, Reverse2, ReverseOut, OutputIterator, GeometryOut, Strategy, TagIn1, TagIn2, TagOut, - true, true, true + true, true, true, + Reverse1, Reverse2, ReverseOut > : detail::overlay::overlay {}; @@ -79,7 +81,6 @@ struct union_insert template < typename Geometry1, typename Geometry2, - bool Reverse1, bool Reverse2, bool ReverseOut, typename OutputIterator, typename GeometryOut, typename Strategy, typename TagIn1 = typename tag::type, @@ -87,7 +88,10 @@ template typename TagOut = typename tag::type, bool Areal1 = geometry::is_areal::value, bool Areal2 = geometry::is_areal::value, - bool ArealOut = geometry::is_areal::value + bool ArealOut = geometry::is_areal::value, + bool Reverse1 = detail::overlay::do_reverse::value>::value, + bool Reverse2 = detail::overlay::do_reverse::value>::value, + bool ReverseOut = detail::overlay::do_reverse::value>::value > struct union_insert_reversed { @@ -98,7 +102,6 @@ struct union_insert_reversed return union_insert < Geometry2, Geometry1, - Reverse2, Reverse1, ReverseOut, OutputIterator, GeometryOut, Strategy >::apply(g2, g1, out, strategy); @@ -131,18 +134,12 @@ inline OutputIterator insert(Geometry1 const& geometry1, dispatch::union_insert_reversed < Geometry1, Geometry2, - overlay::do_reverse::value>::value, - overlay::do_reverse::value>::value, - overlay::do_reverse::value>::value, OutputIterator, GeometryOut, Strategy >, dispatch::union_insert < Geometry1, Geometry2, - overlay::do_reverse::value>::value, - overlay::do_reverse::value>::value, - overlay::do_reverse::value>::value, OutputIterator, GeometryOut, Strategy >