$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r80160 - in trunk/boost/geometry: algorithms multi/algorithms
From: bruno.lalande_at_[hidden]
Date: 2012-08-23 15:57:34
Author: bruno.lalande
Date: 2012-08-23 15:57:34 EDT (Thu, 23 Aug 2012)
New Revision: 80160
URL: http://svn.boost.org/trac/boost/changeset/80160
Log:
Moved some template params from class to function level in transform helper metafunctions.
Text files modified: 
   trunk/boost/geometry/algorithms/transform.hpp       |    29 ++++++++++++-----------------           
   trunk/boost/geometry/multi/algorithms/transform.hpp |     6 ++----                                  
   2 files changed, 14 insertions(+), 21 deletions(-)
Modified: trunk/boost/geometry/algorithms/transform.hpp
==============================================================================
--- trunk/boost/geometry/algorithms/transform.hpp	(original)
+++ trunk/boost/geometry/algorithms/transform.hpp	2012-08-23 15:57:34 EDT (Thu, 23 Aug 2012)
@@ -41,9 +41,9 @@
 namespace detail { namespace transform
 {
 
-template <typename Point1, typename Point2, typename Strategy>
 struct transform_point
 {
+    template <typename Point1, typename Point2, typename Strategy>
     static inline bool apply(Point1 const& p1, Point2& p2,
                 Strategy const& strategy)
     {
@@ -52,9 +52,9 @@
 };
 
 
-template <typename Box1, typename Box2, typename Strategy>
 struct transform_box
 {
+    template <typename Box1, typename Box2, typename Strategy>
     static inline bool apply(Box1 const& b1, Box2& b2,
                 Strategy const& strategy)
     {
@@ -91,9 +91,9 @@
     }
 };
 
-template <typename Geometry1, typename Geometry2, typename Strategy>
 struct transform_box_or_segment
 {
+    template <typename Geometry1, typename Geometry2, typename Strategy>
     static inline bool apply(Geometry1 const& source, Geometry2& target,
                 Strategy const& strategy)
     {
@@ -133,12 +133,7 @@
         it != boost::end(range);
         ++it)
     {
-        if (! transform_point
-                <
-                    typename point_type<Range>::type,
-                    PointOut,
-                    Strategy
-                >::apply(*it, point_out, strategy))
+        if (! transform_point::apply(*it, point_out, strategy))
         {
             return false;
         }
@@ -148,9 +143,9 @@
 }
 
 
-template <typename Polygon1, typename Polygon2, typename Strategy>
 struct transform_polygon
 {
+    template <typename Polygon1, typename Polygon2, typename Strategy>
     static inline bool apply(Polygon1 const& poly1, Polygon2& poly2,
                 Strategy const& strategy)
     {
@@ -211,9 +206,9 @@
         >::type type;
 };
 
-template <typename Range1, typename Range2, typename Strategy>
 struct transform_range
 {
+    template <typename Range1, typename Range2, typename Strategy>
     static inline bool apply(Range1 const& range1,
             Range2& range2, Strategy const& strategy)
     {
@@ -244,7 +239,7 @@
 
 template <typename Point1, typename Point2, typename Strategy>
 struct transform<point_tag, point_tag, Point1, Point2, Strategy>
-    : detail::transform::transform_point<Point1, Point2, Strategy>
+    : detail::transform::transform_point
 {
 };
 
@@ -255,31 +250,31 @@
         linestring_tag, linestring_tag,
         Linestring1, Linestring2, Strategy
     >
-    : detail::transform::transform_range<Linestring1, Linestring2, Strategy>
+    : detail::transform::transform_range
 {
 };
 
 template <typename Range1, typename Range2, typename Strategy>
 struct transform<ring_tag, ring_tag, Range1, Range2, Strategy>
-    : detail::transform::transform_range<Range1, Range2, Strategy>
+    : detail::transform::transform_range
 {
 };
 
 template <typename Polygon1, typename Polygon2, typename Strategy>
 struct transform<polygon_tag, polygon_tag, Polygon1, Polygon2, Strategy>
-    : detail::transform::transform_polygon<Polygon1, Polygon2, Strategy>
+    : detail::transform::transform_polygon
 {
 };
 
 template <typename Box1, typename Box2, typename Strategy>
 struct transform<box_tag, box_tag, Box1, Box2, Strategy>
-    : detail::transform::transform_box<Box1, Box2, Strategy>
+    : detail::transform::transform_box
 {
 };
 
 template <typename Segment1, typename Segment2, typename Strategy>
 struct transform<segment_tag, segment_tag, Segment1, Segment2, Strategy>
-    : detail::transform::transform_box_or_segment<Segment1, Segment2, Strategy>
+    : detail::transform::transform_box_or_segment
 {
 };
 
Modified: trunk/boost/geometry/multi/algorithms/transform.hpp
==============================================================================
--- trunk/boost/geometry/multi/algorithms/transform.hpp	(original)
+++ trunk/boost/geometry/multi/algorithms/transform.hpp	2012-08-23 15:57:34 EDT (Thu, 23 Aug 2012)
@@ -31,10 +31,10 @@
 /*!
     \brief Is able to transform any multi-geometry, calling the single-version as policy
 */
-template <typename Multi1, typename Multi2, typename Policy>
+template <typename Policy>
 struct transform_multi
 {
-    template <typename S>
+    template <typename Multi1, typename Multi2, typename S>
     static inline bool apply(Multi1 const& multi1, Multi2& multi2, S const& strategy)
     {
         traits::resize<Multi2>::apply(multi2, boost::size(multi1));
@@ -74,8 +74,6 @@
     >
     : detail::transform::transform_multi
         <
-            Multi1,
-            Multi2,
             transform
                 <
                     typename single_tag_of