From 93eb91e63e72f7548500cf935be467e4a7512c2f Mon Sep 17 00:00:00 2001 From: morinmorin Date: Wed, 12 Jul 2017 22:06:58 +0900 Subject: [PATCH 1/2] Fix breakage in replaced adaptor for C++03 --- include/boost/range/adaptor/replaced.hpp | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/include/boost/range/adaptor/replaced.hpp b/include/boost/range/adaptor/replaced.hpp index 761ba20..42eb52a 100644 --- a/include/boost/range/adaptor/replaced.hpp +++ b/include/boost/range/adaptor/replaced.hpp @@ -101,10 +101,9 @@ namespace boost void operator=(const replace_holder&); }; - template< class SinglePassRange, - class RangeValueType = BOOST_DEDUCED_TYPENAME range_value::type> + template< class SinglePassRange, class Value > inline replaced_range - operator|(SinglePassRange& r, const replace_holder& f) + operator|(SinglePassRange& r, const replace_holder& f) { BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept)); @@ -112,10 +111,9 @@ namespace boost return replaced_range(r, f.val1, f.val2); } - template< class SinglePassRange, - class RangeValueType = BOOST_DEDUCED_TYPENAME range_value::type> + template< class SinglePassRange, class Value > inline replaced_range - operator|(const SinglePassRange& r, const replace_holder& f) + operator|(const SinglePassRange& r, const replace_holder& f) { BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept)); @@ -135,10 +133,9 @@ namespace boost range_detail::forwarder2(); } - template< class SinglePassRange, - class RangeValueType = BOOST_DEDUCED_TYPENAME range_value::type> + template< class SinglePassRange, class Value > inline replaced_range - replace(SinglePassRange& rng, RangeValueType from, RangeValueType to) + replace(SinglePassRange& rng, Value from, Value to) { BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept)); @@ -146,10 +143,9 @@ namespace boost return replaced_range(rng, from, to); } - template< class SinglePassRange, - class RangeValueType = BOOST_DEDUCED_TYPENAME range_value::type> + template< class SinglePassRange, class Value > inline replaced_range - replace(const SinglePassRange& rng, RangeValueType from, RangeValueType to) + replace(const SinglePassRange& rng, Value from, Value to) { BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept)); From 93513a3801c55ed1e15a9da623ba9f1429ac8e80 Mon Sep 17 00:00:00 2001 From: morinmorin Date: Wed, 12 Jul 2017 22:08:22 +0900 Subject: [PATCH 2/2] Make `rng | replaced_if` consistent with `rng | replaced` --- include/boost/range/adaptor/replaced_if.hpp | 28 ++++++--------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/include/boost/range/adaptor/replaced_if.hpp b/include/boost/range/adaptor/replaced_if.hpp index e425e7d..83d3ec8 100644 --- a/include/boost/range/adaptor/replaced_if.hpp +++ b/include/boost/range/adaptor/replaced_if.hpp @@ -103,13 +103,9 @@ namespace boost T m_to; }; - template< class Pred, class SinglePassRange > + template< class Pred, class SinglePassRange, class Value > inline replaced_if_range - operator|( - SinglePassRange& r, - const replace_if_holder< - Pred, - BOOST_DEDUCED_TYPENAME range_value::type>& f) + operator|(SinglePassRange& r, const replace_if_holder& f) { BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept)); @@ -118,13 +114,9 @@ namespace boost r, f.pred(), f.to()); } - template< class Pred, class SinglePassRange > + template< class Pred, class SinglePassRange, class Value > inline replaced_if_range - operator|( - const SinglePassRange& r, - const replace_if_holder< - Pred, - BOOST_DEDUCED_TYPENAME range_value::type>& f) + operator|(const SinglePassRange& r, const replace_if_holder& f) { BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept)); @@ -145,10 +137,9 @@ namespace boost range_detail::forwarder2TU(); } - template + template< class Pred, class SinglePassRange, class Value > inline replaced_if_range - replace_if(SinglePassRange& rng, Pred pred, - BOOST_DEDUCED_TYPENAME range_value::type to) + replace_if(SinglePassRange& rng, Pred pred, Value to) { BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept)); @@ -157,12 +148,9 @@ namespace boost rng, pred, to); } - template + template< class Pred, class SinglePassRange, class Value > inline replaced_if_range - replace_if( - const SinglePassRange& rng, - Pred pred, - BOOST_DEDUCED_TYPENAME range_value::type to) + replace_if(const SinglePassRange& rng, Pred pred, Value to) { BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept));