diff --git a/include/boost/algorithm/string/case_conv.hpp b/include/boost/algorithm/string/case_conv.hpp index fce60b0..6699c80 100644 --- a/include/boost/algorithm/string/case_conv.hpp +++ b/include/boost/algorithm/string/case_conv.hpp @@ -74,7 +74,7 @@ namespace boost { const std::locale& Loc=std::locale()) { return ::boost::algorithm::detail::transform_range_copy( - as_literal(Input), + Input, ::boost::algorithm::detail::to_lowerF< typename range_value::type >(Loc)); } @@ -139,7 +139,7 @@ namespace boost { const std::locale& Loc=std::locale()) { return ::boost::algorithm::detail::transform_range_copy( - as_literal(Input), + Input, ::boost::algorithm::detail::to_upperF< typename range_value::type >(Loc)); } diff --git a/include/boost/algorithm/string/trim.hpp b/include/boost/algorithm/string/trim.hpp index d719649..72b6e1b 100644 --- a/include/boost/algorithm/string/trim.hpp +++ b/include/boost/algorithm/string/trim.hpp @@ -16,6 +16,8 @@ #include #include #include +#include +#include #include #include @@ -61,12 +63,14 @@ namespace boost { const RangeT& Input, PredicateT IsSpace) { + iterator_range::type> lit_range(as_literal(Input)); + std::copy( ::boost::algorithm::detail::trim_begin( - begin(Input), - end(Input), + begin(lit_range), + end(lit_range), IsSpace ), - end(Input), + end(lit_range), Output); return Output; @@ -167,11 +171,13 @@ namespace boost { const RangeT& Input, PredicateT IsSpace ) { - std::copy( - begin(Input), + iterator_range::type> lit_range(as_literal(Input)); + + std::copy( + begin(lit_range), ::boost::algorithm::detail::trim_end( - begin(Input), - end(Input), + begin(lit_range), + end(lit_range), IsSpace ), Output ); @@ -277,16 +283,18 @@ namespace boost { const RangeT& Input, PredicateT IsSpace) { - BOOST_STRING_TYPENAME + iterator_range::type> lit_range(as_literal(Input)); + + BOOST_STRING_TYPENAME range_const_iterator::type TrimEnd= ::boost::algorithm::detail::trim_end( - begin(Input), - end(Input), + begin(lit_range), + end(lit_range), IsSpace); std::copy( detail::trim_begin( - begin(Input), TrimEnd, IsSpace), + begin(lit_range), TrimEnd, IsSpace), TrimEnd, Output );