From 435eb815cf40e465ed57173df7a600082fffef2b Mon Sep 17 00:00:00 2001 From: Bruno Lalande Date: Sat, 25 Aug 2012 12:50:30 +0000 Subject: [PATCH] Made dispatch::union enable to detect areals by itself. [SVN r80199] --- include/boost/geometry/algorithms/union.hpp | 24 +++++++++------------ 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/include/boost/geometry/algorithms/union.hpp b/include/boost/geometry/algorithms/union.hpp index 2181e029e..69c59a030 100644 --- a/include/boost/geometry/algorithms/union.hpp +++ b/include/boost/geometry/algorithms/union.hpp @@ -30,8 +30,6 @@ namespace dispatch template < - // metafunction finetuning helpers: - bool Areal1, bool Areal2, bool ArealOut, // real types typename Geometry1, typename Geometry2, bool Reverse1, bool Reverse2, bool ReverseOut, @@ -40,7 +38,10 @@ template typename Strategy, typename TagIn1 = typename tag::type, typename TagIn2 = typename tag::type, - typename TagOut = typename tag::type + typename TagOut = typename tag::type, + bool Areal1 = geometry::is_areal::value, + bool Areal2 = geometry::is_areal::value, + bool ArealOut = geometry::is_areal::value > struct union_insert { @@ -63,12 +64,12 @@ template > struct union_insert < - true, true, true, Geometry1, Geometry2, Reverse1, Reverse2, ReverseOut, OutputIterator, GeometryOut, Strategy, - TagIn1, TagIn2, TagOut + TagIn1, TagIn2, TagOut, + true, true, true > : detail::overlay::overlay {}; @@ -77,14 +78,16 @@ struct union_insert template < - bool Areal1, bool Areal2, bool ArealOut, typename Geometry1, typename Geometry2, bool Reverse1, bool Reverse2, bool ReverseOut, typename OutputIterator, typename GeometryOut, typename Strategy, typename TagIn1 = typename tag::type, typename TagIn2 = typename tag::type, - typename TagOut = typename tag::type + typename TagOut = typename tag::type, + bool Areal1 = geometry::is_areal::value, + bool Areal2 = geometry::is_areal::value, + bool ArealOut = geometry::is_areal::value > struct union_insert_reversed { @@ -94,7 +97,6 @@ struct union_insert_reversed { return union_insert < - Areal2, Areal1, ArealOut, Geometry2, Geometry1, Reverse2, Reverse1, ReverseOut, OutputIterator, GeometryOut, @@ -128,9 +130,6 @@ inline OutputIterator insert(Geometry1 const& geometry1, geometry::reverse_dispatch::type::value, dispatch::union_insert_reversed < - geometry::is_areal::value, - geometry::is_areal::value, - geometry::is_areal::value, Geometry1, Geometry2, overlay::do_reverse::value>::value, overlay::do_reverse::value>::value, @@ -140,9 +139,6 @@ inline OutputIterator insert(Geometry1 const& geometry1, >, dispatch::union_insert < - geometry::is_areal::value, - geometry::is_areal::value, - geometry::is_areal::value, Geometry1, Geometry2, overlay::do_reverse::value>::value, overlay::do_reverse::value>::value,