Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r80194 - trunk/boost/geometry/algorithms
From: bruno.lalande_at_[hidden]
Date: 2012-08-25 05:07:10


Author: bruno.lalande
Date: 2012-08-25 05:07:09 EDT (Sat, 25 Aug 2012)
New Revision: 80194
URL: http://svn.boost.org/trac/boost/changeset/80194

Log:
Made dispatch::union able to retrieve the tags by itself.
Text files modified:
   trunk/boost/geometry/algorithms/union.hpp | 28 ++++++++++++----------------
   1 files changed, 12 insertions(+), 16 deletions(-)

Modified: trunk/boost/geometry/algorithms/union.hpp
==============================================================================
--- trunk/boost/geometry/algorithms/union.hpp (original)
+++ trunk/boost/geometry/algorithms/union.hpp 2012-08-25 05:07:09 EDT (Sat, 25 Aug 2012)
@@ -30,8 +30,6 @@
 
 template
 <
- // tag dispatching:
- typename TagIn1, typename TagIn2, typename TagOut,
     // metafunction finetuning helpers:
     bool Areal1, bool Areal2, bool ArealOut,
     // real types
@@ -39,7 +37,10 @@
     bool Reverse1, bool Reverse2, bool ReverseOut,
     typename OutputIterator,
     typename GeometryOut,
- typename Strategy
+ typename Strategy,
+ typename TagIn1 = typename tag<Geometry1>::type,
+ typename TagIn2 = typename tag<Geometry2>::type,
+ typename TagOut = typename tag<GeometryOut>::type
>
 struct union_insert
 {
@@ -53,21 +54,21 @@
 
 template
 <
- typename TagIn1, typename TagIn2, typename TagOut,
     typename Geometry1, typename Geometry2,
     bool Reverse1, bool Reverse2, bool ReverseOut,
     typename OutputIterator,
     typename GeometryOut,
- typename Strategy
+ typename Strategy,
+ typename TagIn1, typename TagIn2, typename TagOut
>
 struct union_insert
     <
- TagIn1, TagIn2, TagOut,
         true, true, true,
         Geometry1, Geometry2,
         Reverse1, Reverse2, ReverseOut,
         OutputIterator, GeometryOut,
- Strategy
+ Strategy,
+ TagIn1, TagIn2, TagOut
> : detail::overlay::overlay
         <Geometry1, Geometry2, Reverse1, Reverse2, ReverseOut, OutputIterator, GeometryOut, overlay_union, Strategy>
 {};
@@ -76,12 +77,14 @@
 
 template
 <
- typename GeometryTag1, typename GeometryTag2, typename GeometryTag3,
     bool Areal1, bool Areal2, bool ArealOut,
     typename Geometry1, typename Geometry2,
     bool Reverse1, bool Reverse2, bool ReverseOut,
     typename OutputIterator, typename GeometryOut,
- typename Strategy
+ typename Strategy,
+ typename TagIn1 = typename tag<Geometry1>::type,
+ typename TagIn2 = typename tag<Geometry2>::type,
+ typename TagOut = typename tag<GeometryOut>::type
>
 struct union_insert_reversed
 {
@@ -91,7 +94,6 @@
     {
         return union_insert
             <
- GeometryTag2, GeometryTag1, GeometryTag3,
                 Areal2, Areal1, ArealOut,
                 Geometry2, Geometry1,
                 Reverse2, Reverse1, ReverseOut,
@@ -126,9 +128,6 @@
             geometry::reverse_dispatch<Geometry1, Geometry2>::type::value,
             dispatch::union_insert_reversed
             <
- typename tag<Geometry1>::type,
- typename tag<Geometry2>::type,
- typename tag<GeometryOut>::type,
                 geometry::is_areal<Geometry1>::value,
                 geometry::is_areal<Geometry2>::value,
                 geometry::is_areal<GeometryOut>::value,
@@ -141,9 +140,6 @@
>,
             dispatch::union_insert
             <
- typename tag<Geometry1>::type,
- typename tag<Geometry2>::type,
- typename tag<GeometryOut>::type,
                 geometry::is_areal<Geometry1>::value,
                 geometry::is_areal<Geometry2>::value,
                 geometry::is_areal<GeometryOut>::value,


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