From 9a84ecdf0ec2c2dd3ead5fabe5e6fe1e8ad244b7 Mon Sep 17 00:00:00 2001 From: Bruno Lalande Date: Sun, 23 Sep 2012 12:30:51 +0000 Subject: [PATCH] Made dispatch::perimeter able to retrieve the tag by itself. [SVN r80665] --- .../boost/geometry/algorithms/perimeter.hpp | 18 +++++------------- .../geometry/multi/algorithms/perimeter.hpp | 8 ++------ 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/include/boost/geometry/algorithms/perimeter.hpp b/include/boost/geometry/algorithms/perimeter.hpp index f9ee943b1..b70517e3e 100644 --- a/include/boost/geometry/algorithms/perimeter.hpp +++ b/include/boost/geometry/algorithms/perimeter.hpp @@ -33,7 +33,7 @@ namespace dispatch { // Default perimeter is 0.0, specializations implement calculated values -template +template ::type> struct perimeter : detail::calculate_null { typedef typename default_length_result::type return_type; @@ -46,7 +46,7 @@ struct perimeter : detail::calculate_null }; template -struct perimeter +struct perimeter : detail::length::range_length < Geometry, @@ -55,7 +55,7 @@ struct perimeter {}; template -struct perimeter : detail::calculate_polygon_sum +struct perimeter : detail::calculate_polygon_sum { typedef typename default_length_result::type return_type; typedef detail::length::range_length @@ -103,11 +103,7 @@ inline typename default_length_result::type perimeter( // detail::throw_on_empty_input(geometry); - return dispatch::perimeter - < - typename tag::type, - Geometry - >::apply(geometry, strategy_type()); + return dispatch::perimeter::apply(geometry, strategy_type()); } /*! @@ -132,11 +128,7 @@ inline typename default_length_result::type perimeter( // detail::throw_on_empty_input(geometry); - return dispatch::perimeter - < - typename tag::type, - Geometry - >::apply(geometry, strategy); + return dispatch::perimeter::apply(geometry, strategy); } }} // namespace boost::geometry diff --git a/include/boost/geometry/multi/algorithms/perimeter.hpp b/include/boost/geometry/multi/algorithms/perimeter.hpp index f8ccc6c2e..6a13f90e3 100644 --- a/include/boost/geometry/multi/algorithms/perimeter.hpp +++ b/include/boost/geometry/multi/algorithms/perimeter.hpp @@ -31,7 +31,7 @@ namespace boost { namespace geometry namespace dispatch { template -struct perimeter : detail::multi_sum +struct perimeter : detail::multi_sum { template static inline typename default_length_result::type @@ -40,11 +40,7 @@ struct perimeter : detail::multi_sum return multi_sum::apply < typename default_length_result::type, - perimeter - < - polygon_tag, - typename boost::range_value::type - > + perimeter::type> >(multi, strategy); } };