adapting to new range interface

[SVN r38123]
This commit is contained in:
Pavol Droba
2007-07-01 13:29:56 +00:00
parent 869660ed14
commit 614cc2ebab
2 changed files with 21 additions and 13 deletions

View File

@ -74,7 +74,7 @@ namespace boost {
const std::locale& Loc=std::locale()) const std::locale& Loc=std::locale())
{ {
return ::boost::algorithm::detail::transform_range_copy<SequenceT>( return ::boost::algorithm::detail::transform_range_copy<SequenceT>(
as_literal(Input), Input,
::boost::algorithm::detail::to_lowerF< ::boost::algorithm::detail::to_lowerF<
typename range_value<SequenceT>::type >(Loc)); typename range_value<SequenceT>::type >(Loc));
} }
@ -139,7 +139,7 @@ namespace boost {
const std::locale& Loc=std::locale()) const std::locale& Loc=std::locale())
{ {
return ::boost::algorithm::detail::transform_range_copy<SequenceT>( return ::boost::algorithm::detail::transform_range_copy<SequenceT>(
as_literal(Input), Input,
::boost::algorithm::detail::to_upperF< ::boost::algorithm::detail::to_upperF<
typename range_value<SequenceT>::type >(Loc)); typename range_value<SequenceT>::type >(Loc));
} }

View File

@ -16,6 +16,8 @@
#include <boost/range/begin.hpp> #include <boost/range/begin.hpp>
#include <boost/range/end.hpp> #include <boost/range/end.hpp>
#include <boost/range/const_iterator.hpp> #include <boost/range/const_iterator.hpp>
#include <boost/range/as_literal.hpp>
#include <boost/range/iterator_range.hpp>
#include <boost/algorithm/string/detail/trim.hpp> #include <boost/algorithm/string/detail/trim.hpp>
#include <boost/algorithm/string/classification.hpp> #include <boost/algorithm/string/classification.hpp>
@ -61,12 +63,14 @@ namespace boost {
const RangeT& Input, const RangeT& Input,
PredicateT IsSpace) PredicateT IsSpace)
{ {
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_range(as_literal(Input));
std::copy( std::copy(
::boost::algorithm::detail::trim_begin( ::boost::algorithm::detail::trim_begin(
begin(Input), begin(lit_range),
end(Input), end(lit_range),
IsSpace ), IsSpace ),
end(Input), end(lit_range),
Output); Output);
return Output; return Output;
@ -167,11 +171,13 @@ namespace boost {
const RangeT& Input, const RangeT& Input,
PredicateT IsSpace ) PredicateT IsSpace )
{ {
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_range(as_literal(Input));
std::copy( std::copy(
begin(Input), begin(lit_range),
::boost::algorithm::detail::trim_end( ::boost::algorithm::detail::trim_end(
begin(Input), begin(lit_range),
end(Input), end(lit_range),
IsSpace ), IsSpace ),
Output ); Output );
@ -277,16 +283,18 @@ namespace boost {
const RangeT& Input, const RangeT& Input,
PredicateT IsSpace) PredicateT IsSpace)
{ {
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_range(as_literal(Input));
BOOST_STRING_TYPENAME BOOST_STRING_TYPENAME
range_const_iterator<RangeT>::type TrimEnd= range_const_iterator<RangeT>::type TrimEnd=
::boost::algorithm::detail::trim_end( ::boost::algorithm::detail::trim_end(
begin(Input), begin(lit_range),
end(Input), end(lit_range),
IsSpace); IsSpace);
std::copy( std::copy(
detail::trim_begin( detail::trim_begin(
begin(Input), TrimEnd, IsSpace), begin(lit_range), TrimEnd, IsSpace),
TrimEnd, TrimEnd,
Output Output
); );