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); } };