Compare commits

..

2 Commits

Author SHA1 Message Date
8512c9dd12 Update 'more' links.
[SVN r44996]
2008-05-01 21:34:42 +00:00
d18cfff5fb Create a branch for documentation work.
[SVN r44584]
2008-04-19 14:48:18 +00:00
39 changed files with 652 additions and 872 deletions

View File

@ -21,7 +21,6 @@
#include <boost/algorithm/string/predicate.hpp>
#include <boost/algorithm/string/find.hpp>
#include <boost/algorithm/string/split.hpp>
#include <boost/algorithm/string/join.hpp>
#include <boost/algorithm/string/replace.hpp>
#include <boost/algorithm/string/erase.hpp>
#include <boost/algorithm/string/classification.hpp>

View File

@ -59,7 +59,7 @@ namespace boost {
{
return ::boost::algorithm::detail::transform_range_copy(
Output,
::boost::as_literal(Input),
as_literal(Input),
::boost::algorithm::detail::to_lowerF<
typename range_value<RangeT>::type >(Loc));
}
@ -93,7 +93,7 @@ namespace boost {
const std::locale& Loc=std::locale())
{
::boost::algorithm::detail::transform_range(
::boost::as_literal(Input),
as_literal(Input),
::boost::algorithm::detail::to_lowerF<
typename range_value<WritableRangeT>::type >(Loc));
}
@ -124,7 +124,7 @@ namespace boost {
{
return ::boost::algorithm::detail::transform_range_copy(
Output,
::boost::as_literal(Input),
as_literal(Input),
::boost::algorithm::detail::to_upperF<
typename range_value<RangeT>::type >(Loc));
}
@ -158,7 +158,7 @@ namespace boost {
const std::locale& Loc=std::locale())
{
::boost::algorithm::detail::transform_range(
::boost::as_literal(Input),
as_literal(Input),
::boost::algorithm::detail::to_upperF<
typename range_value<WritableRangeT>::type >(Loc));
}

View File

@ -202,8 +202,8 @@ namespace boost {
BOOST_STRING_TYPENAME range_value<RangeT>::type>
is_any_of( const RangeT& Set )
{
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_set(boost::as_literal(Set));
return detail::is_any_ofF<BOOST_STRING_TYPENAME range_value<RangeT>::type>(lit_set);
return detail::is_any_ofF<
BOOST_STRING_TYPENAME range_value<RangeT>::type>(as_literal(Set));
}
//! is_from_range predicate

View File

@ -65,8 +65,8 @@ namespace boost {
void constraints()
{
// Operation
::boost::begin((*pFo)( (*pF)(i,i) ));
::boost::end((*pFo)( (*pF)(i,i) ));
begin((*pFo)( (*pF)(i,i) ));
end((*pFo)( (*pF)(i,i) ));
}
private:
IteratorT i;

View File

@ -21,11 +21,6 @@ namespace boost {
// case conversion functors -----------------------------------------------//
#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
#pragma warning(push)
#pragma warning(disable:4512) //assignment operator could not be generated
#endif
// a tolower functor
template<typename CharT>
struct to_lowerF : public std::unary_function<CharT, CharT>
@ -66,10 +61,6 @@ namespace boost {
const std::locale& m_Loc;
};
#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
#pragma warning(pop)
#endif
// algorithm implementation -------------------------------------------------------------------------
// Transform a range
@ -80,8 +71,8 @@ namespace boost {
FunctorT Functor)
{
return std::transform(
::boost::begin(Input),
::boost::end(Input),
begin(Input),
end(Input),
Output,
Functor);
}
@ -93,9 +84,9 @@ namespace boost {
FunctorT Functor)
{
std::transform(
::boost::begin(Input),
::boost::end(Input),
::boost::begin(Input),
begin(Input),
end(Input),
begin(Input),
Functor);
}
@ -105,11 +96,11 @@ namespace boost {
FunctorT Functor)
{
return SequenceT(
::boost::make_transform_iterator(
::boost::begin(Input),
make_transform_iterator(
begin(Input),
Functor),
::boost::make_transform_iterator(
::boost::end(Input),
make_transform_iterator(
end(Input),
Functor));
}

View File

@ -15,6 +15,7 @@
#include <algorithm>
#include <functional>
#include <locale>
#include <set>
#include <boost/range/begin.hpp>
#include <boost/range/end.hpp>
@ -28,7 +29,7 @@ namespace boost {
// classification functors -----------------------------------------------//
// is_classified functor
// is_classified functor
struct is_classifiedF :
public predicate_facade<is_classifiedF>
{
@ -38,6 +39,7 @@ namespace boost {
// Constructor from a locale
is_classifiedF(std::ctype_base::mask Type, std::locale const & Loc = std::locale()) :
m_Type(Type), m_Locale(Loc) {}
// Operation
template<typename CharT>
bool operator()( CharT Ch ) const
@ -54,11 +56,10 @@ namespace boost {
#endif
private:
std::ctype_base::mask m_Type;
std::locale m_Locale;
const std::ctype_base::mask m_Type;
const std::locale m_Locale;
};
// is_any_of functor
/*
returns true if the value is from the specified set
@ -67,181 +68,25 @@ namespace boost {
struct is_any_ofF :
public predicate_facade<is_any_ofF<CharT> >
{
private:
// set cannot operate on const value-type
typedef typename ::boost::remove_const<CharT>::type set_value_type;
public:
// Boost.Lambda support
template <class Args> struct sig { typedef bool type; };
// Constructor
template<typename RangeT>
is_any_ofF( const RangeT& Range ) : m_Size(0)
{
// Prepare storage
m_Storage.m_dynSet=0;
std::size_t Size=::boost::distance(Range);
m_Size=Size;
set_value_type* Storage=0;
if(use_fixed_storage(m_Size))
{
// Use fixed storage
Storage=&m_Storage.m_fixSet[0];
}
else
{
// Use dynamic storage
m_Storage.m_dynSet=new set_value_type[m_Size];
Storage=m_Storage.m_dynSet;
}
// Use fixed storage
::std::copy(::boost::begin(Range), ::boost::end(Range), Storage);
::std::sort(Storage, Storage+m_Size);
}
// Copy constructor
is_any_ofF(const is_any_ofF& Other) : m_Size(Other.m_Size)
{
// Prepare storage
m_Storage.m_dynSet=0;
const set_value_type* SrcStorage=0;
set_value_type* DestStorage=0;
if(use_fixed_storage(m_Size))
{
// Use fixed storage
DestStorage=&m_Storage.m_fixSet[0];
SrcStorage=&Other.m_Storage.m_fixSet[0];
}
else
{
// Use dynamic storage
m_Storage.m_dynSet=new set_value_type[m_Size];
DestStorage=m_Storage.m_dynSet;
SrcStorage=Other.m_Storage.m_dynSet;
}
// Use fixed storage
::memcpy(DestStorage, SrcStorage, sizeof(set_value_type)*m_Size);
}
// Destructor
~is_any_ofF()
{
if(!use_fixed_storage(m_Size) && m_Storage.m_dynSet!=0)
{
delete [] m_Storage.m_dynSet;
}
}
// Assignment
is_any_ofF& operator=(const is_any_ofF& Other)
{
// Handle self assignment
if(this==&Other) return *this;
// Prepare storage
const set_value_type* SrcStorage;
set_value_type* DestStorage;
if(use_fixed_storage(Other.m_Size))
{
// Use fixed storage
DestStorage=&m_Storage.m_fixSet[0];
SrcStorage=&Other.m_Storage.m_fixSet[0];
// Delete old storage if was present
if(!use_fixed_storage(m_Size) && m_Storage.m_dynSet!=0)
{
delete [] m_Storage.m_dynSet;
}
// Set new size
m_Size=Other.m_Size;
}
else
{
// Other uses dynamic storage
SrcStorage=Other.m_Storage.m_dynSet;
// Check what kind of storage are we using right now
if(use_fixed_storage(m_Size))
{
// Using fixed storage, allocate new
set_value_type* pTemp=new set_value_type[Other.m_Size];
DestStorage=pTemp;
m_Storage.m_dynSet=pTemp;
m_Size=Other.m_Size;
}
else
{
// Using dynamic storage, check if can reuse
if(m_Storage.m_dynSet!=0 && m_Size>=Other.m_Size && m_Size<Other.m_Size*2)
{
// Reuse the current storage
DestStorage=m_Storage.m_dynSet;
m_Size=Other.m_Size;
}
else
{
// Allocate the new one
set_value_type* pTemp=new set_value_type[Other.m_Size];
DestStorage=pTemp;
// Delete old storage if necessary
if(m_Storage.m_dynSet!=0)
{
delete [] m_Storage.m_dynSet;
}
// Store the new storage
m_Storage.m_dynSet=pTemp;
// Set new size
m_Size=Other.m_Size;
}
}
}
// Copy the data
::memcpy(DestStorage, SrcStorage, sizeof(set_value_type)*m_Size);
return *this;
}
is_any_ofF( const RangeT& Range ) :
m_Set( begin(Range), end(Range) ) {}
// Operation
template<typename Char2T>
bool operator()( Char2T Ch ) const
{
const set_value_type* Storage=
(use_fixed_storage(m_Size))
? &m_Storage.m_fixSet[0]
: m_Storage.m_dynSet;
return ::std::binary_search(Storage, Storage+m_Size, Ch);
}
private:
// check if the size is eligible for fixed storage
static bool use_fixed_storage(std::size_t size)
{
return size<=sizeof(set_value_type*)*2;
return m_Set.find(Ch)!=m_Set.end();
}
private:
// storage
// The actual used storage is selected on the type
union
{
set_value_type* m_dynSet;
set_value_type m_fixSet[sizeof(set_value_type*)*2];
}
m_Storage;
// storage size
::std::size_t m_Size;
// set cannot operate on const value-type
typedef typename remove_const<CharT>::type set_value_type;
std::set<set_value_type> m_Set;
};
// is_from_range functor

View File

@ -24,7 +24,26 @@ namespace boost {
// find_format_copy (iterator variant) implementation -------------------------------//
template<
template<
typename OutputIteratorT,
typename InputT,
typename FormatterT,
typename FindResultT >
inline OutputIteratorT find_format_copy_impl(
OutputIteratorT Output,
const InputT& Input,
FormatterT Formatter,
const FindResultT& FindResult )
{
return find_format_copy_impl2(
Output,
Input,
Formatter,
FindResult,
Formatter(FindResult) );
}
template<
typename OutputIteratorT,
typename InputT,
typename FormatterT,
@ -49,44 +68,40 @@ namespace boost {
if ( !M )
{
// Match not found - return original sequence
std::copy( ::boost::begin(Input), ::boost::end(Input), Output );
std::copy( begin(Input), end(Input), Output );
return Output;
}
// Copy the beginning of the sequence
std::copy( ::boost::begin(Input), ::boost::begin(M), Output );
std::copy( begin(Input), begin(M), Output );
// Format find result
// Copy formated result
std::copy( ::boost::begin(M.format_result()), ::boost::end(M.format_result()), Output );
std::copy( begin(M.format_result()), end(M.format_result()), Output );
// Copy the rest of the sequence
std::copy( M.end(), ::boost::end(Input), Output );
std::copy( M.end(), end(Input), Output );
return Output;
}
// find_format_copy implementation --------------------------------------------------//
template<
typename OutputIteratorT,
typename InputT,
typename InputT,
typename FormatterT,
typename FindResultT >
inline OutputIteratorT find_format_copy_impl(
OutputIteratorT Output,
inline InputT find_format_copy_impl(
const InputT& Input,
FormatterT Formatter,
const FindResultT& FindResult )
{
return ::boost::algorithm::detail::find_format_copy_impl2(
Output,
const FindResultT& FindResult)
{
return find_format_copy_impl2(
Input,
Formatter,
FindResult,
Formatter(FindResult) );
}
// find_format_copy implementation --------------------------------------------------//
template<
template<
typename InputT,
typename FormatterT,
typename FindResultT,
@ -114,33 +129,33 @@ namespace boost {
InputT Output;
// Copy the beginning of the sequence
insert( Output, ::boost::end(Output), ::boost::begin(Input), M.begin() );
insert( Output, end(Output), begin(Input), M.begin() );
// Copy formated result
insert( Output, ::boost::end(Output), M.format_result() );
insert( Output, end(Output), M.format_result() );
// Copy the rest of the sequence
insert( Output, ::boost::end(Output), M.end(), ::boost::end(Input) );
insert( Output, end(Output), M.end(), end(Input) );
return Output;
}
template<
typename InputT,
// replace implementation ----------------------------------------------------//
template<
typename InputT,
typename FormatterT,
typename FindResultT >
inline InputT find_format_copy_impl(
const InputT& Input,
inline void find_format_impl(
InputT& Input,
FormatterT Formatter,
const FindResultT& FindResult)
{
return ::boost::algorithm::detail::find_format_copy_impl2(
find_format_impl2(
Input,
Formatter,
FindResult,
Formatter(FindResult) );
}
// replace implementation ----------------------------------------------------//
template<
typename InputT,
typename FormatterT,
@ -168,23 +183,7 @@ namespace boost {
}
// Replace match
::boost::algorithm::detail::replace( Input, M.begin(), M.end(), M.format_result() );
}
template<
typename InputT,
typename FormatterT,
typename FindResultT >
inline void find_format_impl(
InputT& Input,
FormatterT Formatter,
const FindResultT& FindResult)
{
::boost::algorithm::detail::find_format_impl2(
Input,
Formatter,
FindResult,
Formatter(FindResult) );
replace( Input, M.begin(), M.end(), M.format_result() );
}
} // namespace detail

View File

@ -24,7 +24,29 @@ namespace boost {
// find_format_all_copy (iterator variant) implementation ---------------------------//
template<
template<
typename OutputIteratorT,
typename InputT,
typename FinderT,
typename FormatterT,
typename FindResultT >
inline OutputIteratorT find_format_all_copy_impl(
OutputIteratorT Output,
const InputT& Input,
FinderT Finder,
FormatterT Formatter,
const FindResultT& FindResult )
{
return find_format_all_copy_impl2(
Output,
Input,
Finder,
Formatter,
FindResult,
Formatter(FindResult) );
}
template<
typename OutputIteratorT,
typename InputT,
typename FinderT,
@ -51,7 +73,7 @@ namespace boost {
store_type M( FindResult, FormatResult, Formatter );
// Initialize last match
input_iterator_type LastMatch=::boost::begin(Input);
input_iterator_type LastMatch=begin(Input);
// Iterate through all matches
while( M )
@ -59,34 +81,33 @@ namespace boost {
// Copy the beginning of the sequence
std::copy( LastMatch, M.begin(), Output );
// Copy formated result
std::copy( ::boost::begin(M.format_result()), ::boost::end(M.format_result()), Output );
std::copy( begin(M.format_result()), end(M.format_result()), Output );
// Proceed to the next match
LastMatch=M.end();
M=Finder( LastMatch, ::boost::end(Input) );
M=Finder( LastMatch, end(Input) );
}
// Copy the rest of the sequence
std::copy( LastMatch, ::boost::end(Input), Output );
std::copy( LastMatch, end(Input), Output );
return Output;
}
// find_format_all_copy implementation ----------------------------------------------//
template<
typename OutputIteratorT,
typename InputT,
typename InputT,
typename FinderT,
typename FormatterT,
typename FindResultT >
inline OutputIteratorT find_format_all_copy_impl(
OutputIteratorT Output,
inline InputT find_format_all_copy_impl(
const InputT& Input,
FinderT Finder,
FormatterT Formatter,
const FindResultT& FindResult )
{
return ::boost::algorithm::detail::find_format_all_copy_impl2(
Output,
const FindResultT& FindResult)
{
return find_format_all_copy_impl2(
Input,
Finder,
Formatter,
@ -94,9 +115,7 @@ namespace boost {
Formatter(FindResult) );
}
// find_format_all_copy implementation ----------------------------------------------//
template<
template<
typename InputT,
typename FinderT,
typename FormatterT,
@ -121,7 +140,7 @@ namespace boost {
store_type M( FindResult, FormatResult, Formatter );
// Initialize last match
input_iterator_type LastMatch=::boost::begin(Input);
input_iterator_type LastMatch=begin(Input);
// Output temporary
InputT Output;
@ -130,33 +149,35 @@ namespace boost {
while( M )
{
// Copy the beginning of the sequence
insert( Output, ::boost::end(Output), LastMatch, M.begin() );
insert( Output, end(Output), LastMatch, M.begin() );
// Copy formated result
insert( Output, ::boost::end(Output), M.format_result() );
insert( Output, end(Output), M.format_result() );
// Proceed to the next match
LastMatch=M.end();
M=Finder( LastMatch, ::boost::end(Input) );
M=Finder( LastMatch, end(Input) );
}
// Copy the rest of the sequence
::boost::algorithm::detail::insert( Output, ::boost::end(Output), LastMatch, ::boost::end(Input) );
insert( Output, end(Output), LastMatch, end(Input) );
return Output;
}
template<
typename InputT,
// find_format_all implementation ------------------------------------------------//
template<
typename InputT,
typename FinderT,
typename FormatterT,
typename FindResultT >
inline InputT find_format_all_copy_impl(
const InputT& Input,
inline void find_format_all_impl(
InputT& Input,
FinderT Finder,
FormatterT Formatter,
const FindResultT& FindResult)
FindResultT FindResult)
{
return ::boost::algorithm::detail::find_format_all_copy_impl2(
find_format_all_impl2(
Input,
Finder,
Formatter,
@ -164,8 +185,6 @@ namespace boost {
Formatter(FindResult) );
}
// find_format_all implementation ------------------------------------------------//
template<
typename InputT,
typename FinderT,
@ -194,8 +213,8 @@ namespace boost {
BOOST_STRING_TYPENAME range_value<InputT>::type> Storage;
// Initialize replacement iterators
input_iterator_type InsertIt=::boost::begin(Input);
input_iterator_type SearchIt=::boost::begin(Input);
input_iterator_type InsertIt=begin(Input);
input_iterator_type SearchIt=begin(Input);
while( M )
{
@ -211,51 +230,32 @@ namespace boost {
SearchIt=M.end();
// Copy formated replace to the storage
::boost::algorithm::detail::copy_to_storage( Storage, M.format_result() );
copy_to_storage( Storage, M.format_result() );
// Find range for a next match
M=Finder( SearchIt, ::boost::end(Input) );
M=Finder( SearchIt, end(Input) );
}
// process the last segment
InsertIt=::boost::algorithm::detail::process_segment(
InsertIt=process_segment(
Storage,
Input,
InsertIt,
SearchIt,
::boost::end(Input) );
end(Input) );
if ( Storage.empty() )
{
// Truncate input
::boost::algorithm::detail::erase( Input, InsertIt, ::boost::end(Input) );
erase( Input, InsertIt, end(Input) );
}
else
{
// Copy remaining data to the end of input
::boost::algorithm::detail::insert( Input, ::boost::end(Input), Storage.begin(), Storage.end() );
insert( Input, end(Input), Storage.begin(), Storage.end() );
}
}
template<
typename InputT,
typename FinderT,
typename FormatterT,
typename FindResultT >
inline void find_format_all_impl(
InputT& Input,
FinderT Finder,
FormatterT Formatter,
FindResultT FindResult)
{
::boost::algorithm::detail::find_format_all_impl2(
Input,
Finder,
Formatter,
FindResult,
Formatter(FindResult) );
}
} // namespace detail
} // namespace algorithm
} // namespace boost

View File

@ -20,10 +20,6 @@ namespace boost {
// temporary format and find result storage --------------------------------//
#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
#pragma warning(push)
#pragma warning(disable:4512) //assignment operator could not be generated
#endif
template<
typename ForwardIteratorT,
typename FormatterT,
@ -68,9 +64,6 @@ namespace boost {
const formatter_type& m_Formatter;
};
#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
#pragma warning(pop)
#endif
} // namespace detail
} // namespace algorithm
} // namespace boost

View File

@ -41,7 +41,7 @@ namespace boost {
// Construction
template< typename SearchT >
first_finderF( const SearchT& Search, PredicateT Comp ) :
m_Search(::boost::begin(Search), ::boost::end(Search)), m_Comp(Comp) {}
m_Search(begin(Search), end(Search)), m_Comp(Comp) {}
first_finderF(
search_iterator_type SearchBegin,
search_iterator_type SearchEnd,
@ -108,7 +108,7 @@ namespace boost {
// Construction
template< typename SearchT >
last_finderF( const SearchT& Search, PredicateT Comp ) :
m_Search(::boost::begin(Search), ::boost::end(Search)), m_Comp(Comp) {}
m_Search(begin(Search), end(Search)), m_Comp(Comp) {}
last_finderF(
search_iterator_type SearchBegin,
search_iterator_type SearchEnd,
@ -154,7 +154,7 @@ namespace boost {
while( M )
{
Last=M;
M=first_finder( ::boost::end(M), End );
M=first_finder( end(M), End );
}
return Last;
@ -224,7 +224,7 @@ namespace boost {
const SearchT& Search,
int Nth,
PredicateT Comp) :
m_Search(::boost::begin(Search), ::boost::end(Search)),
m_Search(begin(Search), end(Search)),
m_Nth(Nth),
m_Comp(Comp) {}
nth_finderF(
@ -279,7 +279,7 @@ namespace boost {
for( unsigned int n=0; n<=N; ++n )
{
// find next match
M=first_finder( ::boost::end(M), End );
M=first_finder( end(M), End );
if ( !M )
{
@ -314,7 +314,7 @@ namespace boost {
for( unsigned int n=1; n<=N; ++n )
{
// find next match
M=last_finder( Begin, ::boost::begin(M) );
M=last_finder( Begin, begin(M) );
if ( !M )
{
@ -382,7 +382,7 @@ namespace boost {
typedef BOOST_STRING_TYPENAME boost::detail::
iterator_traits<ForwardIteratorT>::iterator_category category;
return ::boost::algorithm::detail::find_head_impl( Begin, End, N, category() );
return find_head_impl( Begin, End, N, category() );
}
template< typename ForwardIteratorT >
@ -456,7 +456,7 @@ namespace boost {
typedef BOOST_STRING_TYPENAME boost::detail::
iterator_traits<ForwardIteratorT>::iterator_category category;
return ::boost::algorithm::detail::find_tail_impl( Begin, End, N, category() );
return find_tail_impl( Begin, End, N, category() );
}
@ -484,14 +484,14 @@ namespace boost {
{
if(m_N>=0)
{
return ::boost::algorithm::detail::find_head_impl( Begin, End, m_N );
return find_head_impl( Begin, End, m_N );
}
else
{
iterator_range<ForwardIteratorT> Res=
::boost::algorithm::detail::find_tail_impl( Begin, End, -m_N );
find_tail_impl( Begin, End, -m_N );
return ::boost::make_iterator_range(Begin, Res.begin());
return make_iterator_range(Begin, Res.begin());
}
}
@ -522,14 +522,14 @@ namespace boost {
{
if(m_N>=0)
{
return ::boost::algorithm::detail::find_tail_impl( Begin, End, m_N );
return find_tail_impl( Begin, End, m_N );
}
else
{
iterator_range<ForwardIteratorT> Res=
::boost::algorithm::detail::find_head_impl( Begin, End, -m_N );
find_head_impl( Begin, End, -m_N );
return ::boost::make_iterator_range(Res.end(), End);
return make_iterator_range(Res.end(), End);
}
}

View File

@ -98,7 +98,7 @@ namespace boost {
// instantiate match result
match_results<input_iterator_type> result;
// search for a match
if ( ::boost::regex_search( Begin, End, result, m_Rx, m_MatchFlags ) )
if ( regex_search( Begin, End, result, m_Rx, m_MatchFlags ) )
{
// construct a result
return result_type( result );

View File

@ -39,7 +39,7 @@ namespace boost {
public:
// Construction
const_formatF(const RangeT& Format) :
m_Format(::boost::begin(Format), ::boost::end(Format)) {}
m_Format(begin(Format), end(Format)) {}
// Operation
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
@ -70,7 +70,7 @@ namespace boost {
template< typename Range2T >
const RangeT& operator()(const Range2T& Replace) const
{
return RangeT(::boost::begin(Replace), ::boost::end(Replace));
return RangeT(begin(Replace), end(Replace));
}
};

View File

@ -63,7 +63,7 @@ namespace boost {
iterator_range<ForwardIterator1T> Result
=last_finder(
::boost::make_iterator_range(SubBegin, SubEnd),
make_iterator_range(SubBegin, SubEnd),
Comp)(Begin, End);
return !Result.empty() && Result.end()==End;

View File

@ -46,7 +46,7 @@ namespace boost {
StorageT& Storage,
const WhatT& What )
{
Storage.insert( Storage.end(), ::boost::begin(What), ::boost::end(What) );
Storage.insert( Storage.end(), begin(What), end(What) );
}
@ -68,7 +68,7 @@ namespace boost {
ForwardIteratorT SegmentEnd )
{
// Copy data from the storage until the beginning of the segment
ForwardIteratorT It=::boost::algorithm::detail::move_from_storage( Storage, InsertIt, SegmentBegin );
ForwardIteratorT It=move_from_storage( Storage, InsertIt, SegmentBegin );
// 3 cases are possible :
// a) Storage is empty, It==SegmentBegin
@ -125,7 +125,7 @@ namespace boost {
{
// Call replace to do the job
::boost::algorithm::detail::replace( Input, InsertIt, SegmentBegin, Storage );
replace( Input, InsertIt, SegmentBegin, Storage );
// Empty the storage
Storage.clear();
// Iterators were not changed, simply return the end of segment

View File

@ -41,7 +41,7 @@ namespace boost {
BOOST_STRING_TYPENAME InputT::iterator At,
const InsertT& Insert )
{
::boost::algorithm::detail::insert( Input, At, ::boost::begin(Insert), ::boost::end(Insert) );
insert( Input, At, begin(Insert), end(Insert) );
}
// erase helper ---------------------------------------------------//
@ -184,11 +184,11 @@ namespace boost {
{
if(From!=To)
{
::boost::algorithm::detail::replace( Input, From, To, ::boost::begin(Insert), ::boost::end(Insert) );
replace( Input, From, To, begin(Insert), end(Insert) );
}
else
{
::boost::algorithm::detail::insert( Input, From, ::boost::begin(Insert), ::boost::end(Insert) );
insert( Input, From, begin(Insert), end(Insert) );
}
}

View File

@ -20,6 +20,36 @@ namespace boost {
// trim iterator helper -----------------------------------------------//
// Search for first non matching character from the beginning of the sequence
template< typename ForwardIteratorT, typename PredicateT >
inline ForwardIteratorT trim_begin(
ForwardIteratorT InBegin,
ForwardIteratorT InEnd,
PredicateT IsSpace )
{
ForwardIteratorT It=InBegin;
for(; It!=InEnd; ++It )
{
if (!IsSpace(*It))
return It;
}
return It;
}
// Search for first non matching character from the end of the sequence
template< typename ForwardIteratorT, typename PredicateT >
inline ForwardIteratorT trim_end(
ForwardIteratorT InBegin,
ForwardIteratorT InEnd,
PredicateT IsSpace )
{
typedef BOOST_STRING_TYPENAME boost::detail::
iterator_traits<ForwardIteratorT>::iterator_category category;
return trim_end_iter_select( InBegin, InEnd, IsSpace, category() );
}
template< typename ForwardIteratorT, typename PredicateT >
inline ForwardIteratorT trim_end_iter_select(
ForwardIteratorT InBegin,
@ -56,36 +86,6 @@ namespace boost {
return InBegin;
}
// Search for first non matching character from the beginning of the sequence
template< typename ForwardIteratorT, typename PredicateT >
inline ForwardIteratorT trim_begin(
ForwardIteratorT InBegin,
ForwardIteratorT InEnd,
PredicateT IsSpace )
{
ForwardIteratorT It=InBegin;
for(; It!=InEnd; ++It )
{
if (!IsSpace(*It))
return It;
}
return It;
}
// Search for first non matching character from the end of the sequence
template< typename ForwardIteratorT, typename PredicateT >
inline ForwardIteratorT trim_end(
ForwardIteratorT InBegin,
ForwardIteratorT InEnd,
PredicateT IsSpace )
{
typedef BOOST_STRING_TYPENAME boost::detail::
iterator_traits<ForwardIteratorT>::iterator_category category;
return ::boost::algorithm::detail::trim_end_iter_select( InBegin, InEnd, IsSpace, category() );
}
} // namespace detail
} // namespace algorithm

View File

@ -54,11 +54,11 @@ namespace boost {
BOOST_STRING_TYPENAME
range_const_iterator<RangeT>::type>& SearchRange )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::range_finder(SearchRange),
::boost::algorithm::empty_formatter(Input) );
range_finder(SearchRange),
empty_formatter(Input) );
}
//! Erase range algorithm
@ -72,10 +72,10 @@ namespace boost {
BOOST_STRING_TYPENAME
range_const_iterator<SequenceT>::type>& SearchRange )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::range_finder(SearchRange),
::boost::algorithm::empty_formatter(Input) );
range_finder(SearchRange),
empty_formatter(Input) );
}
//! Erase range algorithm
@ -93,10 +93,10 @@ namespace boost {
BOOST_STRING_TYPENAME
range_iterator<SequenceT>::type>& SearchRange )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::range_finder(SearchRange),
::boost::algorithm::empty_formatter(Input) );
range_finder(SearchRange),
empty_formatter(Input) );
}
// erase_first --------------------------------------------------------//
@ -124,11 +124,11 @@ namespace boost {
const Range1T& Input,
const Range2T& Search )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::first_finder(Search),
::boost::algorithm::empty_formatter(Input) );
first_finder(Search),
empty_formatter(Input) );
}
//! Erase first algorithm
@ -140,10 +140,10 @@ namespace boost {
const SequenceT& Input,
const RangeT& Search )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::first_finder(Search),
::boost::algorithm::empty_formatter(Input) );
first_finder(Search),
empty_formatter(Input) );
}
//! Erase first algorithm
@ -159,10 +159,10 @@ namespace boost {
SequenceT& Input,
const RangeT& Search )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::first_finder(Search),
::boost::algorithm::empty_formatter(Input) );
first_finder(Search),
empty_formatter(Input) );
}
// erase_first ( case insensitive ) ------------------------------------//
@ -193,11 +193,11 @@ namespace boost {
const Range2T& Search,
const std::locale& Loc=std::locale() )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::first_finder(Search, is_iequal(Loc)),
::boost::algorithm::empty_formatter(Input) );
first_finder(Search, is_iequal(Loc)),
empty_formatter(Input) );
}
//! Erase first algorithm ( case insensitive )
@ -210,10 +210,10 @@ namespace boost {
const RangeT& Search,
const std::locale& Loc=std::locale() )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::first_finder(Search, is_iequal(Loc)),
::boost::algorithm::empty_formatter(Input) );
first_finder(Search, is_iequal(Loc)),
empty_formatter(Input) );
}
//! Erase first algorithm ( case insensitive )
@ -231,10 +231,10 @@ namespace boost {
const RangeT& Search,
const std::locale& Loc=std::locale() )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::first_finder(Search, is_iequal(Loc)),
::boost::algorithm::empty_formatter(Input) );
first_finder(Search, is_iequal(Loc)),
empty_formatter(Input) );
}
// erase_last --------------------------------------------------------//
@ -262,11 +262,11 @@ namespace boost {
const Range1T& Input,
const Range2T& Search )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::last_finder(Search),
::boost::algorithm::empty_formatter(Input) );
last_finder(Search),
empty_formatter(Input) );
}
//! Erase last algorithm
@ -278,10 +278,10 @@ namespace boost {
const SequenceT& Input,
const RangeT& Search )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::last_finder(Search),
::boost::algorithm::empty_formatter(Input) );
last_finder(Search),
empty_formatter(Input) );
}
//! Erase last algorithm
@ -297,10 +297,10 @@ namespace boost {
SequenceT& Input,
const RangeT& Search )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::last_finder(Search),
::boost::algorithm::empty_formatter(Input) );
last_finder(Search),
empty_formatter(Input) );
}
// erase_last ( case insensitive ) ------------------------------------//
@ -331,11 +331,11 @@ namespace boost {
const Range2T& Search,
const std::locale& Loc=std::locale() )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::last_finder(Search, is_iequal(Loc)),
::boost::algorithm::empty_formatter(Input) );
last_finder(Search, is_iequal(Loc)),
empty_formatter(Input) );
}
//! Erase last algorithm ( case insensitive )
@ -348,10 +348,10 @@ namespace boost {
const RangeT& Search,
const std::locale& Loc=std::locale() )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::last_finder(Search, is_iequal(Loc)),
::boost::algorithm::empty_formatter(Input) );
last_finder(Search, is_iequal(Loc)),
empty_formatter(Input) );
}
//! Erase last algorithm ( case insensitive )
@ -369,10 +369,10 @@ namespace boost {
const RangeT& Search,
const std::locale& Loc=std::locale() )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::last_finder(Search, is_iequal(Loc)),
::boost::algorithm::empty_formatter(Input) );
last_finder(Search, is_iequal(Loc)),
empty_formatter(Input) );
}
// erase_nth --------------------------------------------------------------------//
@ -404,11 +404,11 @@ namespace boost {
const Range2T& Search,
int Nth )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::nth_finder(Search, Nth),
::boost::algorithm::empty_formatter(Input) );
nth_finder(Search, Nth),
empty_formatter(Input) );
}
//! Erase nth algorithm
@ -421,10 +421,10 @@ namespace boost {
const RangeT& Search,
int Nth )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::nth_finder(Search, Nth),
::boost::algorithm::empty_formatter(Input) );
nth_finder(Search, Nth),
empty_formatter(Input) );
}
//! Erase nth algorithm
@ -443,10 +443,10 @@ namespace boost {
const RangeT& Search,
int Nth )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::nth_finder(Search, Nth),
::boost::algorithm::empty_formatter(Input) );
nth_finder(Search, Nth),
empty_formatter(Input) );
}
// erase_nth ( case insensitive ) ---------------------------------------------//
@ -480,11 +480,11 @@ namespace boost {
int Nth,
const std::locale& Loc=std::locale() )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::nth_finder(Search, Nth, is_iequal(Loc)),
::boost::algorithm::empty_formatter(Input) );
nth_finder(Search, Nth, is_iequal(Loc)),
empty_formatter(Input) );
}
//! Erase nth algorithm
@ -498,9 +498,9 @@ namespace boost {
int Nth,
const std::locale& Loc=std::locale() )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::nth_finder(Search, Nth, is_iequal(Loc)),
nth_finder(Search, Nth, is_iequal(Loc)),
empty_formatter(Input) );
}
@ -522,10 +522,10 @@ namespace boost {
int Nth,
const std::locale& Loc=std::locale() )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::nth_finder(Search, Nth, is_iequal(Loc)),
::boost::algorithm::empty_formatter(Input) );
nth_finder(Search, Nth, is_iequal(Loc)),
empty_formatter(Input) );
}
@ -555,11 +555,11 @@ namespace boost {
const Range1T& Input,
const Range2T& Search )
{
return ::boost::algorithm::find_format_all_copy(
return find_format_all_copy(
Output,
Input,
::boost::algorithm::first_finder(Search),
::boost::algorithm::empty_formatter(Input) );
first_finder(Search),
empty_formatter(Input) );
}
//! Erase all algorithm
@ -571,10 +571,10 @@ namespace boost {
const SequenceT& Input,
const RangeT& Search )
{
return ::boost::algorithm::find_format_all_copy(
return find_format_all_copy(
Input,
::boost::algorithm::first_finder(Search),
::boost::algorithm::empty_formatter(Input) );
first_finder(Search),
empty_formatter(Input) );
}
//! Erase all algorithm
@ -590,10 +590,10 @@ namespace boost {
SequenceT& Input,
const RangeT& Search )
{
::boost::algorithm::find_format_all(
find_format_all(
Input,
::boost::algorithm::first_finder(Search),
::boost::algorithm::empty_formatter(Input) );
first_finder(Search),
empty_formatter(Input) );
}
// erase_all ( case insensitive ) ------------------------------------//
@ -624,11 +624,11 @@ namespace boost {
const Range2T& Search,
const std::locale& Loc=std::locale() )
{
return ::boost::algorithm::find_format_all_copy(
return find_format_all_copy(
Output,
Input,
::boost::algorithm::first_finder(Search, is_iequal(Loc)),
::boost::algorithm::empty_formatter(Input) );
first_finder(Search, is_iequal(Loc)),
empty_formatter(Input) );
}
//! Erase all algorithm ( case insensitive )
@ -641,10 +641,10 @@ namespace boost {
const RangeT& Search,
const std::locale& Loc=std::locale() )
{
return ::boost::algorithm::find_format_all_copy(
return find_format_all_copy(
Input,
::boost::algorithm::first_finder(Search, is_iequal(Loc)),
::boost::algorithm::empty_formatter(Input) );
first_finder(Search, is_iequal(Loc)),
empty_formatter(Input) );
}
//! Erase all algorithm ( case insensitive )
@ -662,10 +662,10 @@ namespace boost {
const RangeT& Search,
const std::locale& Loc=std::locale() )
{
::boost::algorithm::find_format_all(
find_format_all(
Input,
::boost::algorithm::first_finder(Search, is_iequal(Loc)),
::boost::algorithm::empty_formatter(Input) );
first_finder(Search, is_iequal(Loc)),
empty_formatter(Input) );
}
// erase_head --------------------------------------------------------------------//
@ -696,11 +696,11 @@ namespace boost {
const RangeT& Input,
int N )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::head_finder(N),
::boost::algorithm::empty_formatter( Input ) );
head_finder(N),
empty_formatter( Input ) );
}
//! Erase head algorithm
@ -712,10 +712,10 @@ namespace boost {
const SequenceT& Input,
int N )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::head_finder(N),
::boost::algorithm::empty_formatter( Input ) );
head_finder(N),
empty_formatter( Input ) );
}
//! Erase head algorithm
@ -734,10 +734,10 @@ namespace boost {
SequenceT& Input,
int N )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::head_finder(N),
::boost::algorithm::empty_formatter( Input ) );
head_finder(N),
empty_formatter( Input ) );
}
// erase_tail --------------------------------------------------------------------//
@ -768,11 +768,11 @@ namespace boost {
const RangeT& Input,
int N )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::tail_finder(N),
::boost::algorithm::empty_formatter( Input ) );
tail_finder(N),
empty_formatter( Input ) );
}
//! Erase tail algorithm
@ -784,10 +784,10 @@ namespace boost {
const SequenceT& Input,
int N )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::tail_finder(N),
::boost::algorithm::empty_formatter( Input ) );
tail_finder(N),
empty_formatter( Input ) );
}
//! Erase tail algorithm
@ -806,10 +806,10 @@ namespace boost {
SequenceT& Input,
int N )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::tail_finder(N),
::boost::algorithm::empty_formatter( Input ) );
tail_finder(N),
empty_formatter( Input ) );
}
} // namespace algorithm

View File

@ -53,9 +53,9 @@ namespace boost {
RangeT& Input,
const FinderT& Finder)
{
iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_input(::boost::as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_input(as_literal(Input));
return Finder(::boost::begin(lit_input),::boost::end(lit_input));
return Finder(begin(lit_input),end(lit_input));
}
// find_first -----------------------------------------------//
@ -81,7 +81,7 @@ namespace boost {
Range1T& Input,
const Range2T& Search)
{
return ::boost::algorithm::find(Input, ::boost::algorithm::first_finder(Search));
return find(Input, first_finder(Search));
}
//! Find first algorithm ( case insensitive )
@ -108,7 +108,7 @@ namespace boost {
const Range2T& Search,
const std::locale& Loc=std::locale())
{
return ::boost::algorithm::find(Input, ::boost::algorithm::first_finder(Search,is_iequal(Loc)));
return find(Input, first_finder(Search,is_iequal(Loc)));
}
// find_last -----------------------------------------------//
@ -134,7 +134,7 @@ namespace boost {
Range1T& Input,
const Range2T& Search)
{
return ::boost::algorithm::find(Input, ::boost::algorithm::last_finder(Search));
return find(Input, last_finder(Search));
}
//! Find last algorithm ( case insensitive )
@ -161,7 +161,7 @@ namespace boost {
const Range2T& Search,
const std::locale& Loc=std::locale())
{
return ::boost::algorithm::find(Input, ::boost::algorithm::last_finder(Search, is_iequal(Loc)));
return find(Input, last_finder(Search, is_iequal(Loc)));
}
// find_nth ----------------------------------------------------------------------//
@ -189,7 +189,7 @@ namespace boost {
const Range2T& Search,
int Nth)
{
return ::boost::algorithm::find(Input, ::boost::algorithm::nth_finder(Search,Nth));
return find(Input, nth_finder(Search,Nth));
}
//! Find n-th algorithm ( case insensitive ).
@ -220,7 +220,7 @@ namespace boost {
int Nth,
const std::locale& Loc=std::locale())
{
return ::boost::algorithm::find(Input, ::boost::algorithm::nth_finder(Search,Nth,is_iequal(Loc)));
return find(Input, nth_finder(Search,Nth,is_iequal(Loc)));
}
// find_head ----------------------------------------------------------------------//
@ -250,7 +250,7 @@ namespace boost {
RangeT& Input,
int N)
{
return ::boost::algorithm::find(Input, ::boost::algorithm::head_finder(N));
return find(Input, head_finder(N));
}
// find_tail ----------------------------------------------------------------------//
@ -281,7 +281,7 @@ namespace boost {
RangeT& Input,
int N)
{
return ::boost::algorithm::find(Input, ::boost::algorithm::tail_finder(N));
return find(Input, tail_finder(N));
}
// find_token --------------------------------------------------------------------//
@ -311,7 +311,7 @@ namespace boost {
PredicateT Pred,
token_compress_mode_type eCompress=token_compress_off)
{
return ::boost::algorithm::find(Input, ::boost::algorithm::token_finder(Pred, eCompress));
return find(Input, token_finder(Pred, eCompress));
}
} // namespace algorithm

View File

@ -62,24 +62,21 @@ namespace boost {
FormatterT Formatter )
{
// Concept check
BOOST_CONCEPT_ASSERT((
FinderConcept<
FinderT,
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
));
BOOST_CONCEPT_ASSERT((
function_requires<
FinderConcept<FinderT,
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >();
function_requires<
FormatterConcept<
FormatterT,
FinderT,BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
));
FinderT,BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >();
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_input(::boost::as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_input(as_literal(Input));
return detail::find_format_copy_impl(
Output,
lit_input,
Formatter,
Finder( ::boost::begin(lit_input), ::boost::end(lit_input) ) );
Finder( begin(lit_input), end(lit_input) ) );
}
//! Generic replace algorithm
@ -96,21 +93,18 @@ namespace boost {
FormatterT Formatter )
{
// Concept check
BOOST_CONCEPT_ASSERT((
FinderConcept<
FinderT,
BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
));
BOOST_CONCEPT_ASSERT((
function_requires<
FinderConcept<FinderT,
BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type> >();
function_requires<
FormatterConcept<
FormatterT,
FinderT,BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
));
FinderT,BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type> >();
return detail::find_format_copy_impl(
Input,
Formatter,
Finder(::boost::begin(Input), ::boost::end(Input)));
Finder(begin(Input), end(Input)));
}
//! Generic replace algorithm
@ -132,21 +126,18 @@ namespace boost {
FormatterT Formatter)
{
// Concept check
BOOST_CONCEPT_ASSERT((
FinderConcept<
FinderT,
BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
));
BOOST_CONCEPT_ASSERT((
function_requires<
FinderConcept<FinderT,
BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type> >();
function_requires<
FormatterConcept<
FormatterT,
FinderT,BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
));
FinderT,BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type> >();
detail::find_format_impl(
Input,
Formatter,
Finder(::boost::begin(Input), ::boost::end(Input)));
Finder(begin(Input), end(Input)));
}
@ -181,25 +172,22 @@ namespace boost {
FormatterT Formatter)
{
// Concept check
BOOST_CONCEPT_ASSERT((
FinderConcept<
FinderT,
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
));
BOOST_CONCEPT_ASSERT((
function_requires<
FinderConcept<FinderT,
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >();
function_requires<
FormatterConcept<
FormatterT,
FinderT,BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
));
FinderT,BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >();
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_input(::boost::as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_input(as_literal(Input));
return detail::find_format_all_copy_impl(
Output,
lit_input,
Finder,
Formatter,
Finder(::boost::begin(lit_input), ::boost::end(lit_input)));
Finder(begin(lit_input), end(lit_input)));
}
//! Generic replace all algorithm
@ -216,22 +204,19 @@ namespace boost {
FormatterT Formatter )
{
// Concept check
BOOST_CONCEPT_ASSERT((
FinderConcept<
FinderT,
BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
));
BOOST_CONCEPT_ASSERT((
function_requires<
FinderConcept<FinderT,
BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type> >();
function_requires<
FormatterConcept<
FormatterT,
FinderT,BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
));
FinderT,BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type> >();
return detail::find_format_all_copy_impl(
Input,
Finder,
Formatter,
Finder( ::boost::begin(Input), ::boost::end(Input) ) );
Finder( begin(Input), end(Input) ) );
}
//! Generic replace all algorithm
@ -254,22 +239,19 @@ namespace boost {
FormatterT Formatter )
{
// Concept check
BOOST_CONCEPT_ASSERT((
FinderConcept<
FinderT,
BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
));
BOOST_CONCEPT_ASSERT((
function_requires<
FinderConcept<FinderT,
BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type> >();
function_requires<
FormatterConcept<
FormatterT,
FinderT,BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
));
FinderT,BOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type> >();
detail::find_format_all_impl(
Input,
Finder,
Formatter,
Finder(::boost::begin(Input), ::boost::end(Input)));
Finder(begin(Input), end(Input)));
}

View File

@ -24,7 +24,7 @@
#include <boost/algorithm/string/detail/find_iterator.hpp>
/*! \file
Defines find iterator classes. Find iterator repeatedly applies a Finder
Defines find iterator classes. Find iterator repeatly applies a Finder
to the specified input string to search for matches. Dereferencing
the iterator yields the current match or a range between the last and the current
match depending on the iterator used.
@ -58,6 +58,12 @@ namespace boost {
// facade support
friend class ::boost::iterator_core_access;
// base type
typedef iterator_facade<
find_iterator<IteratorT>,
const iterator_range<IteratorT>,
forward_traversal_tag> facade_type;
private:
// typedefs
@ -113,9 +119,9 @@ namespace boost {
FinderT Finder ) :
detail::find_iterator_base<IteratorT>(Finder,0)
{
iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_col(::boost::as_literal(Col));
m_Match=::boost::make_iterator_range(::boost::begin(lit_col), ::boost::begin(lit_col));
m_End=::boost::end(lit_col);
iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_col(as_literal(Col));
m_Match=make_iterator_range(begin(lit_col), begin(lit_col));
m_End=end(lit_col);
increment();
}
@ -214,6 +220,12 @@ namespace boost {
// facade support
friend class ::boost::iterator_core_access;
// base type
typedef iterator_facade<
find_iterator<IteratorT>,
iterator_range<IteratorT>,
forward_traversal_tag> facade_type;
private:
// typedefs
@ -273,10 +285,10 @@ namespace boost {
detail::find_iterator_base<IteratorT>(Finder,0),
m_bEof(false)
{
iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_col(::boost::as_literal(Col));
m_Match=make_iterator_range(::boost::begin(lit_col), ::boost::begin(lit_col));
m_Next=::boost::begin(lit_col);
m_End=::boost::end(lit_col);
iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_col(as_literal(Col));
m_Match=make_iterator_range(begin(lit_col), begin(lit_col));
m_Next=begin(lit_col);
m_End=end(lit_col);
increment();
}

View File

@ -56,7 +56,7 @@ namespace boost {
detail::first_finderF<
BOOST_STRING_TYPENAME
range_const_iterator<RangeT>::type,
is_equal>( ::boost::as_literal(Search), is_equal() ) ;
is_equal>( as_literal(Search), is_equal() ) ;
}
//! "First" finder
@ -74,7 +74,7 @@ namespace boost {
detail::first_finderF<
BOOST_STRING_TYPENAME
range_const_iterator<RangeT>::type,
PredicateT>( ::boost::as_literal(Search), Comp );
PredicateT>( as_literal(Search), Comp );
}
//! "Last" finder
@ -97,7 +97,7 @@ namespace boost {
detail::last_finderF<
BOOST_STRING_TYPENAME
range_const_iterator<RangeT>::type,
is_equal>( ::boost::as_literal(Search), is_equal() );
is_equal>( as_literal(Search), is_equal() );
}
//! "Last" finder
/*!
@ -113,7 +113,7 @@ namespace boost {
detail::last_finderF<
BOOST_STRING_TYPENAME
range_const_iterator<RangeT>::type,
PredicateT>( ::boost::as_literal(Search), Comp ) ;
PredicateT>( as_literal(Search), Comp ) ;
}
//! "Nth" finder
@ -139,7 +139,7 @@ namespace boost {
detail::nth_finderF<
BOOST_STRING_TYPENAME
range_const_iterator<RangeT>::type,
is_equal>( ::boost::as_literal(Search), Nth, is_equal() ) ;
is_equal>( as_literal(Search), Nth, is_equal() ) ;
}
//! "Nth" finder
/*!
@ -158,7 +158,7 @@ namespace boost {
detail::nth_finderF<
BOOST_STRING_TYPENAME
range_const_iterator<RangeT>::type,
PredicateT>( ::boost::as_literal(Search), Nth, Comp );
PredicateT>( as_literal(Search), Nth, Comp );
}
//! "Head" finder

View File

@ -50,7 +50,7 @@ namespace boost {
{
return detail::const_formatF<
iterator_range<
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >(::boost::as_literal(Format));
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >(as_literal(Format));
}
//! Identity formatter

View File

@ -74,13 +74,11 @@ namespace boost {
RangeT& Input,
FinderT Finder )
{
BOOST_CONCEPT_ASSERT((
FinderConcept<
FinderT,
BOOST_STRING_TYPENAME range_iterator<RangeT>::type>
));
function_requires<
FinderConcept<FinderT,
BOOST_STRING_TYPENAME range_iterator<RangeT>::type> >();
iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_input(::boost::as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_input(as_literal(Input));
typedef BOOST_STRING_TYPENAME
range_iterator<RangeT>::type input_iterator_type;
@ -90,18 +88,18 @@ namespace boost {
range_value<SequenceSequenceT>::type,
input_iterator_type> copy_range_type;
input_iterator_type InputEnd=::boost::end(lit_input);
input_iterator_type InputEnd=end(lit_input);
typedef transform_iterator<copy_range_type, find_iterator_type>
transform_iter_type;
transform_iter_type itBegin=
::boost::make_transform_iterator(
find_iterator_type( ::boost::begin(lit_input), InputEnd, Finder ),
make_transform_iterator(
find_iterator_type( begin(lit_input), InputEnd, Finder ),
copy_range_type());
transform_iter_type itEnd=
::boost::make_transform_iterator(
make_transform_iterator(
find_iterator_type(),
copy_range_type());
@ -145,12 +143,11 @@ namespace boost {
RangeT& Input,
FinderT Finder )
{
BOOST_CONCEPT_ASSERT((
function_requires<
FinderConcept<FinderT,
BOOST_STRING_TYPENAME range_iterator<RangeT>::type>
));
BOOST_STRING_TYPENAME range_iterator<RangeT>::type> >();
iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_input(::boost::as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_input(as_literal(Input));
typedef BOOST_STRING_TYPENAME
range_iterator<RangeT>::type input_iterator_type;
@ -160,18 +157,18 @@ namespace boost {
range_value<SequenceSequenceT>::type,
input_iterator_type> copy_range_type;
input_iterator_type InputEnd=::boost::end(lit_input);
input_iterator_type InputEnd=end(lit_input);
typedef transform_iterator<copy_range_type, find_iterator_type>
transform_iter_type;
transform_iter_type itBegin=
::boost::make_transform_iterator(
find_iterator_type( ::boost::begin(lit_input), InputEnd, Finder ),
make_transform_iterator(
find_iterator_type( begin(lit_input), InputEnd, Finder ),
copy_range_type() );
transform_iter_type itEnd=
::boost::make_transform_iterator(
make_transform_iterator(
find_iterator_type(),
copy_range_type() );

View File

@ -52,8 +52,8 @@ namespace boost {
typedef typename range_const_iterator<SequenceSequenceT>::type InputIteratorT;
// Parse input
InputIteratorT itBegin=::boost::begin(Input);
InputIteratorT itEnd=::boost::end(Input);
InputIteratorT itBegin=begin(Input);
InputIteratorT itEnd=end(Input);
// Construct container to hold the result
ResultT Result;
@ -61,16 +61,16 @@ namespace boost {
// Append first element
if(itBegin!=itEnd)
{
detail::insert(Result, ::boost::end(Result), *itBegin);
detail::insert(Result, end(Result), *itBegin);
++itBegin;
}
for(;itBegin!=itEnd; ++itBegin)
{
// Add separator
detail::insert(Result, ::boost::end(Result), ::boost::as_literal(Separator));
detail::insert(Result, end(Result), as_literal(Separator));
// Add element
detail::insert(Result, ::boost::end(Result), *itBegin);
detail::insert(Result, end(Result), *itBegin);
}
return Result;
@ -103,8 +103,8 @@ namespace boost {
typedef typename range_const_iterator<SequenceSequenceT>::type InputIteratorT;
// Parse input
InputIteratorT itBegin=::boost::begin(Input);
InputIteratorT itEnd=::boost::end(Input);
InputIteratorT itBegin=begin(Input);
InputIteratorT itEnd=end(Input);
// Construct container to hold the result
ResultT Result;
@ -114,7 +114,7 @@ namespace boost {
// Add this element
if(itBegin!=itEnd)
{
detail::insert(Result, ::boost::end(Result), *itBegin);
detail::insert(Result, end(Result), *itBegin);
++itBegin;
}
@ -123,9 +123,9 @@ namespace boost {
if(Pred(*itBegin))
{
// Add separator
detail::insert(Result, ::boost::end(Result), ::boost::as_literal(Separator));
detail::insert(Result, end(Result), as_literal(Separator));
// Add element
detail::insert(Result, ::boost::end(Result), *itBegin);
detail::insert(Result, end(Result), *itBegin);
}
}

View File

@ -59,19 +59,19 @@ namespace boost {
const Range2T& Test,
PredicateT Comp)
{
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range1T>::type> lit_input(::boost::as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range2T>::type> lit_test(::boost::as_literal(Test));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range1T>::type> lit_input(as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range2T>::type> lit_test(as_literal(Test));
typedef BOOST_STRING_TYPENAME
range_const_iterator<Range1T>::type Iterator1T;
typedef BOOST_STRING_TYPENAME
range_const_iterator<Range2T>::type Iterator2T;
Iterator1T InputEnd=::boost::end(lit_input);
Iterator2T TestEnd=::boost::end(lit_test);
Iterator1T InputEnd=end(lit_input);
Iterator2T TestEnd=end(lit_test);
Iterator1T it=::boost::begin(lit_input);
Iterator2T pit=::boost::begin(lit_test);
Iterator1T it=begin(lit_input);
Iterator2T pit=begin(lit_test);
for(;
it!=InputEnd && pit!=TestEnd;
++it,++pit)
@ -92,7 +92,7 @@ namespace boost {
const Range1T& Input,
const Range2T& Test)
{
return ::boost::algorithm::starts_with(Input, Test, is_equal());
return starts_with(Input, Test, is_equal());
}
//! 'Starts with' predicate ( case insensitive )
@ -114,7 +114,7 @@ namespace boost {
const Range2T& Test,
const std::locale& Loc=std::locale())
{
return ::boost::algorithm::starts_with(Input, Test, is_iequal(Loc));
return starts_with(Input, Test, is_iequal(Loc));
}
@ -141,8 +141,8 @@ namespace boost {
const Range2T& Test,
PredicateT Comp)
{
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range1T>::type> lit_input(::boost::as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range2T>::type> lit_test(::boost::as_literal(Test));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range1T>::type> lit_input(as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range2T>::type> lit_test(as_literal(Test));
typedef BOOST_STRING_TYPENAME
range_const_iterator<Range1T>::type Iterator1T;
@ -151,10 +151,10 @@ namespace boost {
return detail::
ends_with_iter_select(
::boost::begin(lit_input),
::boost::end(lit_input),
::boost::begin(lit_test),
::boost::end(lit_test),
begin(lit_input),
end(lit_input),
begin(lit_test),
end(lit_test),
Comp,
category());
}
@ -169,7 +169,7 @@ namespace boost {
const Range1T& Input,
const Range2T& Test)
{
return ::boost::algorithm::ends_with(Input, Test, is_equal());
return ends_with(Input, Test, is_equal());
}
//! 'Ends with' predicate ( case insensitive )
@ -191,7 +191,7 @@ namespace boost {
const Range2T& Test,
const std::locale& Loc=std::locale())
{
return ::boost::algorithm::ends_with(Input, Test, is_iequal(Loc));
return ends_with(Input, Test, is_iequal(Loc));
}
// contains predicate -----------------------------------------------//
@ -215,17 +215,17 @@ namespace boost {
const Range2T& Test,
PredicateT Comp)
{
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range1T>::type> lit_input(::boost::as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range2T>::type> lit_test(::boost::as_literal(Test));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range1T>::type> lit_input(as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range2T>::type> lit_test(as_literal(Test));
if (::boost::empty(lit_test))
if (empty(lit_test))
{
// Empty range is contained always
return true;
}
// Use the temporary variable to make VACPP happy
bool bResult=(::boost::algorithm::first_finder(lit_test,Comp)(::boost::begin(lit_input), ::boost::end(lit_input)));
bool bResult=(first_finder(lit_test,Comp)(begin(lit_input), end(lit_input)));
return bResult;
}
@ -238,7 +238,7 @@ namespace boost {
const Range1T& Input,
const Range2T& Test)
{
return ::boost::algorithm::contains(Input, Test, is_equal());
return contains(Input, Test, is_equal());
}
//! 'Contains' predicate ( case insensitive )
@ -259,7 +259,7 @@ namespace boost {
const Range2T& Test,
const std::locale& Loc=std::locale())
{
return ::boost::algorithm::contains(Input, Test, is_iequal(Loc));
return contains(Input, Test, is_iequal(Loc));
}
// equals predicate -----------------------------------------------//
@ -286,19 +286,19 @@ namespace boost {
const Range2T& Test,
PredicateT Comp)
{
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range1T>::type> lit_input(::boost::as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range2T>::type> lit_test(::boost::as_literal(Test));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range1T>::type> lit_input(as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range2T>::type> lit_test(as_literal(Test));
typedef BOOST_STRING_TYPENAME
range_const_iterator<Range1T>::type Iterator1T;
typedef BOOST_STRING_TYPENAME
range_const_iterator<Range2T>::type Iterator2T;
Iterator1T InputEnd=::boost::end(lit_input);
Iterator2T TestEnd=::boost::end(lit_test);
Iterator1T InputEnd=end(lit_input);
Iterator2T TestEnd=end(lit_test);
Iterator1T it=::boost::begin(lit_input);
Iterator2T pit=::boost::begin(lit_test);
Iterator1T it=begin(lit_input);
Iterator2T pit=begin(lit_test);
for(;
it!=InputEnd && pit!=TestEnd;
++it,++pit)
@ -319,7 +319,7 @@ namespace boost {
const Range1T& Input,
const Range2T& Test)
{
return ::boost::algorithm::equals(Input, Test, is_equal());
return equals(Input, Test, is_equal());
}
//! 'Equals' predicate ( case insensitive )
@ -343,7 +343,7 @@ namespace boost {
const Range2T& Test,
const std::locale& Loc=std::locale())
{
return ::boost::algorithm::equals(Input, Test, is_iequal(Loc));
return equals(Input, Test, is_iequal(Loc));
}
// lexicographical_compare predicate -----------------------------//
@ -372,14 +372,14 @@ namespace boost {
const Range2T& Arg2,
PredicateT Pred)
{
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range1T>::type> lit_arg1(::boost::as_literal(Arg1));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range2T>::type> lit_arg2(::boost::as_literal(Arg2));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range1T>::type> lit_arg1(as_literal(Arg1));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<Range2T>::type> lit_arg2(as_literal(Arg2));
return std::lexicographical_compare(
::boost::begin(lit_arg1),
::boost::end(lit_arg1),
::boost::begin(lit_arg2),
::boost::end(lit_arg2),
begin(lit_arg1),
end(lit_arg1),
begin(lit_arg2),
end(lit_arg2),
Pred);
}
@ -392,7 +392,7 @@ namespace boost {
const Range1T& Arg1,
const Range2T& Arg2)
{
return ::boost::algorithm::lexicographical_compare(Arg1, Arg2, is_less());
return lexicographical_compare(Arg1, Arg2, is_less());
}
//! Lexicographical compare predicate (case-insensitive)
@ -417,7 +417,7 @@ namespace boost {
const Range2T& Arg2,
const std::locale& Loc=std::locale())
{
return ::boost::algorithm::lexicographical_compare(Arg1, Arg2, is_iless(Loc));
return lexicographical_compare(Arg1, Arg2, is_iless(Loc));
}
@ -439,13 +439,13 @@ namespace boost {
const RangeT& Input,
PredicateT Pred)
{
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_input(::boost::as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_input(as_literal(Input));
typedef BOOST_STRING_TYPENAME
range_const_iterator<RangeT>::type Iterator1T;
Iterator1T InputEnd=::boost::end(lit_input);
for( Iterator1T It=::boost::begin(lit_input); It!=InputEnd; ++It)
Iterator1T InputEnd=end(lit_input);
for( Iterator1T It=begin(lit_input); It!=InputEnd; ++It)
{
if (!Pred(*It))
return false;

View File

@ -60,10 +60,10 @@ namespace boost {
const basic_regex<CharT, RegexTraitsT>& Rx,
match_flag_type Flags=match_default )
{
iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_input(::boost::as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_input(as_literal(Input));
return ::boost::algorithm::regex_finder(Rx,Flags)(
::boost::begin(lit_input), ::boost::end(lit_input) );
return regex_finder(Rx,Flags)(
begin(lit_input), end(lit_input) );
}
// replace_regex --------------------------------------------------------------------//
@ -98,11 +98,11 @@ namespace boost {
const std::basic_string<CharT, FormatStringTraitsT, FormatStringAllocatorT>& Format,
match_flag_type Flags=match_default | format_default )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::regex_finder( Rx, Flags ),
::boost::algorithm::regex_formatter( Format, Flags ) );
regex_finder( Rx, Flags ),
regex_formatter( Format, Flags ) );
}
//! Replace regex algorithm
@ -120,10 +120,10 @@ namespace boost {
const std::basic_string<CharT, FormatStringTraitsT, FormatStringAllocatorT>& Format,
match_flag_type Flags=match_default | format_default )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::regex_finder( Rx, Flags ),
::boost::algorithm::regex_formatter( Format, Flags ) );
regex_finder( Rx, Flags ),
regex_formatter( Format, Flags ) );
}
//! Replace regex algorithm
@ -147,10 +147,10 @@ namespace boost {
const std::basic_string<CharT, FormatStringTraitsT, FormatStringAllocatorT>& Format,
match_flag_type Flags=match_default | format_default )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::regex_finder( Rx, Flags ),
::boost::algorithm::regex_formatter( Format, Flags ) );
regex_finder( Rx, Flags ),
regex_formatter( Format, Flags ) );
}
// replace_all_regex --------------------------------------------------------------------//
@ -184,11 +184,11 @@ namespace boost {
const std::basic_string<CharT, FormatStringTraitsT, FormatStringAllocatorT>& Format,
match_flag_type Flags=match_default | format_default )
{
return ::boost::algorithm::find_format_all_copy(
return find_format_all_copy(
Output,
Input,
::boost::algorithm::regex_finder( Rx, Flags ),
::boost::algorithm::regex_formatter( Format, Flags ) );
regex_finder( Rx, Flags ),
regex_formatter( Format, Flags ) );
}
//! Replace all regex algorithm
@ -206,10 +206,10 @@ namespace boost {
const std::basic_string<CharT, FormatStringTraitsT, FormatStringAllocatorT>& Format,
match_flag_type Flags=match_default | format_default )
{
return ::boost::algorithm::find_format_all_copy(
return find_format_all_copy(
Input,
::boost::algorithm::regex_finder( Rx, Flags ),
::boost::algorithm::regex_formatter( Format, Flags ) );
regex_finder( Rx, Flags ),
regex_formatter( Format, Flags ) );
}
//! Replace all regex algorithm
@ -233,10 +233,10 @@ namespace boost {
const std::basic_string<CharT, FormatStringTraitsT, FormatStringAllocatorT>& Format,
match_flag_type Flags=match_default | format_default )
{
::boost::algorithm::find_format_all(
find_format_all(
Input,
::boost::algorithm::regex_finder( Rx, Flags ),
::boost::algorithm::regex_formatter( Format, Flags ) );
regex_finder( Rx, Flags ),
regex_formatter( Format, Flags ) );
}
// erase_regex --------------------------------------------------------------------//
@ -267,11 +267,11 @@ namespace boost {
const basic_regex<CharT, RegexTraitsT>& Rx,
match_flag_type Flags=match_default )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::regex_finder( Rx, Flags ),
::boost::algorithm::empty_formatter( Input ) );
regex_finder( Rx, Flags ),
empty_formatter( Input ) );
}
//! Erase regex algorithm
@ -287,10 +287,10 @@ namespace boost {
const basic_regex<CharT, RegexTraitsT>& Rx,
match_flag_type Flags=match_default )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::regex_finder( Rx, Flags ),
::boost::algorithm::empty_formatter( Input ) );
regex_finder( Rx, Flags ),
empty_formatter( Input ) );
}
//! Erase regex algorithm
@ -311,10 +311,10 @@ namespace boost {
const basic_regex<CharT, RegexTraitsT>& Rx,
match_flag_type Flags=match_default )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::regex_finder( Rx, Flags ),
::boost::algorithm::empty_formatter( Input ) );
regex_finder( Rx, Flags ),
empty_formatter( Input ) );
}
// erase_all_regex --------------------------------------------------------------------//
@ -346,11 +346,11 @@ namespace boost {
const basic_regex<CharT, RegexTraitsT>& Rx,
match_flag_type Flags=match_default )
{
return ::boost::algorithm::find_format_all_copy(
return find_format_all_copy(
Output,
Input,
::boost::algorithm::regex_finder( Rx, Flags ),
::boost::algorithm::empty_formatter( Input ) );
regex_finder( Rx, Flags ),
empty_formatter( Input ) );
}
//! Erase all regex algorithm
@ -366,10 +366,10 @@ namespace boost {
const basic_regex<CharT, RegexTraitsT>& Rx,
match_flag_type Flags=match_default )
{
return ::boost::algorithm::find_format_all_copy(
return find_format_all_copy(
Input,
::boost::algorithm::regex_finder( Rx, Flags ),
::boost::algorithm::empty_formatter( Input ) );
regex_finder( Rx, Flags ),
empty_formatter( Input ) );
}
//! Erase all regex algorithm
@ -390,10 +390,10 @@ namespace boost {
const basic_regex<CharT, RegexTraitsT>& Rx,
match_flag_type Flags=match_default )
{
::boost::algorithm::find_format_all(
find_format_all(
Input,
::boost::algorithm::regex_finder( Rx, Flags ),
::boost::algorithm::empty_formatter( Input ) );
regex_finder( Rx, Flags ),
empty_formatter( Input ) );
}
// find_all_regex ------------------------------------------------------------------//
@ -431,10 +431,10 @@ namespace boost {
const basic_regex<CharT, RegexTraitsT>& Rx,
match_flag_type Flags=match_default )
{
return ::boost::algorithm::iter_find(
return iter_find(
Result,
Input,
::boost::algorithm::regex_finder(Rx,Flags) );
regex_finder(Rx,Flags) );
}
// split_regex ------------------------------------------------------------------//
@ -472,10 +472,10 @@ namespace boost {
const basic_regex<CharT, RegexTraitsT>& Rx,
match_flag_type Flags=match_default )
{
return ::boost::algorithm::iter_split(
return iter_split(
Result,
Input,
::boost::algorithm::regex_finder(Rx,Flags) );
regex_finder(Rx,Flags) );
}
// join_if ------------------------------------------------------------------//
@ -515,8 +515,8 @@ namespace boost {
typedef typename range_const_iterator<SequenceSequenceT>::type InputIteratorT;
// Parse input
InputIteratorT itBegin=::boost::begin(Input);
InputIteratorT itEnd=::boost::end(Input);
InputIteratorT itBegin=begin(Input);
InputIteratorT itEnd=end(Input);
// Construct container to hold the result
ResultT Result;
@ -525,23 +525,23 @@ namespace boost {
// Roll to the first element that will be added
while(
itBegin!=itEnd &&
!::boost::regex_match(::boost::begin(*itBegin), ::boost::end(*itBegin), Rx, Flags)) ++itBegin;
!regex_match(begin(*itBegin), end(*itBegin), Rx, Flags)) ++itBegin;
// Add this element
if(itBegin!=itEnd)
{
detail::insert(Result, ::boost::end(Result), *itBegin);
detail::insert(Result, end(Result), *itBegin);
++itBegin;
}
for(;itBegin!=itEnd; ++itBegin)
{
if(::boost::regex_match(::boost::begin(*itBegin), ::boost::end(*itBegin), Rx, Flags))
if(regex_match(begin(*itBegin), end(*itBegin), Rx, Flags))
{
// Add separator
detail::insert(Result, ::boost::end(Result), ::boost::as_literal(Separator));
detail::insert(Result, end(Result), as_literal(Separator));
// Add element
detail::insert(Result, ::boost::end(Result), *itBegin);
detail::insert(Result, end(Result), *itBegin);
}
}
@ -583,8 +583,8 @@ namespace boost {
typedef typename range_const_iterator<SequenceSequenceT>::type InputIteratorT;
// Parse input
InputIteratorT itBegin=::boost::begin(Input);
InputIteratorT itEnd=::boost::end(Input);
InputIteratorT itBegin=begin(Input);
InputIteratorT itEnd=end(Input);
// Construct container to hold the result
ResultT Result;
@ -593,23 +593,23 @@ namespace boost {
// Roll to the first element that will be added
while(
itBegin!=itEnd &&
!::boost::regex_match(::boost::begin(*itBegin), ::boost::end(*itBegin), Rx, Flags)) ++itBegin;
!regex_match(begin(*itBegin), end(*itBegin), Rx, Flags)) ++itBegin;
// Add this element
if(itBegin!=itEnd)
{
detail::insert(Result, ::boost::end(Result), *itBegin);
detail::insert(Result, end(Result), *itBegin);
++itBegin;
}
for(;itBegin!=itEnd; ++itBegin)
{
if(::boost::regex_match(::boost::begin(*itBegin), ::boost::end(*itBegin), Rx, Flags))
if(regex_match(begin(*itBegin), end(*itBegin), Rx, Flags))
{
// Add separator
detail::insert(Result, ::boost::end(Result), ::boost::as_literal(Separator));
detail::insert(Result, end(Result), as_literal(Separator));
// Add element
detail::insert(Result, ::boost::end(Result), *itBegin);
detail::insert(Result, end(Result), *itBegin);
}
}

View File

@ -61,11 +61,11 @@ namespace boost {
range_const_iterator<Range1T>::type>& SearchRange,
const Range2T& Format)
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::range_finder(SearchRange),
::boost::algorithm::const_formatter(Format));
range_finder(SearchRange),
const_formatter(Format));
}
//! Replace range algorithm
@ -80,10 +80,10 @@ namespace boost {
range_const_iterator<SequenceT>::type>& SearchRange,
const RangeT& Format)
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::range_finder(SearchRange),
::boost::algorithm::const_formatter(Format));
range_finder(SearchRange),
const_formatter(Format));
}
//! Replace range algorithm
@ -103,10 +103,10 @@ namespace boost {
range_iterator<SequenceT>::type>& SearchRange,
const RangeT& Format)
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::range_finder(SearchRange),
::boost::algorithm::const_formatter(Format));
range_finder(SearchRange),
const_formatter(Format));
}
// replace_first --------------------------------------------------------------------//
@ -138,11 +138,11 @@ namespace boost {
const Range2T& Search,
const Range3T& Format)
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::first_finder(Search),
::boost::algorithm::const_formatter(Format) );
first_finder(Search),
const_formatter(Format) );
}
//! Replace first algorithm
@ -155,10 +155,10 @@ namespace boost {
const Range1T& Search,
const Range2T& Format )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::first_finder(Search),
::boost::algorithm::const_formatter(Format) );
first_finder(Search),
const_formatter(Format) );
}
//! Replace first algorithm
@ -176,10 +176,10 @@ namespace boost {
const Range1T& Search,
const Range2T& Format )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::first_finder(Search),
::boost::algorithm::const_formatter(Format) );
first_finder(Search),
const_formatter(Format) );
}
// replace_first ( case insensitive ) ---------------------------------------------//
@ -214,11 +214,11 @@ namespace boost {
const Range3T& Format,
const std::locale& Loc=std::locale() )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::first_finder(Search, is_iequal(Loc)),
::boost::algorithm::const_formatter(Format) );
first_finder(Search, is_iequal(Loc)),
const_formatter(Format) );
}
//! Replace first algorithm ( case insensitive )
@ -232,10 +232,10 @@ namespace boost {
const Range1T& Format,
const std::locale& Loc=std::locale() )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::first_finder(Search, is_iequal(Loc)),
::boost::algorithm::const_formatter(Format) );
first_finder(Search, is_iequal(Loc)),
const_formatter(Format) );
}
//! Replace first algorithm ( case insensitive )
@ -256,10 +256,10 @@ namespace boost {
const Range2T& Format,
const std::locale& Loc=std::locale() )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::first_finder(Search, is_iequal(Loc)),
::boost::algorithm::const_formatter(Format) );
first_finder(Search, is_iequal(Loc)),
const_formatter(Format) );
}
// replace_last --------------------------------------------------------------------//
@ -291,11 +291,11 @@ namespace boost {
const Range2T& Search,
const Range3T& Format )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::last_finder(Search),
::boost::algorithm::const_formatter(Format) );
last_finder(Search),
const_formatter(Format) );
}
//! Replace last algorithm
@ -308,10 +308,10 @@ namespace boost {
const Range1T& Search,
const Range2T& Format )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::last_finder(Search),
::boost::algorithm::const_formatter(Format) );
last_finder(Search),
const_formatter(Format) );
}
//! Replace last algorithm
@ -329,10 +329,10 @@ namespace boost {
const Range1T& Search,
const Range2T& Format )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::last_finder(Search),
::boost::algorithm::const_formatter(Format) );
last_finder(Search),
const_formatter(Format) );
}
// replace_last ( case insensitive ) -----------------------------------------------//
@ -367,11 +367,11 @@ namespace boost {
const Range3T& Format,
const std::locale& Loc=std::locale() )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::last_finder(Search, is_iequal(Loc)),
::boost::algorithm::const_formatter(Format) );
last_finder(Search, is_iequal(Loc)),
const_formatter(Format) );
}
//! Replace last algorithm ( case insensitive )
@ -385,10 +385,10 @@ namespace boost {
const Range2T& Format,
const std::locale& Loc=std::locale() )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::last_finder(Search, is_iequal(Loc)),
::boost::algorithm::const_formatter(Format) );
last_finder(Search, is_iequal(Loc)),
const_formatter(Format) );
}
//! Replace last algorithm ( case insensitive )
@ -410,10 +410,10 @@ namespace boost {
const Range2T& Format,
const std::locale& Loc=std::locale() )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::last_finder(Search, is_iequal(Loc)),
::boost::algorithm::const_formatter(Format) );
last_finder(Search, is_iequal(Loc)),
const_formatter(Format) );
}
// replace_nth --------------------------------------------------------------------//
@ -448,11 +448,11 @@ namespace boost {
int Nth,
const Range3T& Format )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::nth_finder(Search, Nth),
::boost::algorithm::const_formatter(Format) );
nth_finder(Search, Nth),
const_formatter(Format) );
}
//! Replace nth algorithm
@ -466,10 +466,10 @@ namespace boost {
int Nth,
const Range2T& Format )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::nth_finder(Search, Nth),
::boost::algorithm::const_formatter(Format) );
nth_finder(Search, Nth),
const_formatter(Format) );
}
//! Replace nth algorithm
@ -490,10 +490,10 @@ namespace boost {
int Nth,
const Range2T& Format )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::nth_finder(Search, Nth),
::boost::algorithm::const_formatter(Format) );
nth_finder(Search, Nth),
const_formatter(Format) );
}
// replace_nth ( case insensitive ) -----------------------------------------------//
@ -531,11 +531,11 @@ namespace boost {
const Range3T& Format,
const std::locale& Loc=std::locale() )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::nth_finder(Search, Nth, is_iequal(Loc) ),
::boost::algorithm::const_formatter(Format) );
nth_finder(Search, Nth, is_iequal(Loc) ),
const_formatter(Format) );
}
//! Replace nth algorithm ( case insensitive )
@ -550,10 +550,10 @@ namespace boost {
const Range2T& Format,
const std::locale& Loc=std::locale() )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::nth_finder(Search, Nth, is_iequal(Loc)),
::boost::algorithm::const_formatter(Format) );
nth_finder(Search, Nth, is_iequal(Loc)),
const_formatter(Format) );
}
//! Replace nth algorithm ( case insensitive )
@ -577,10 +577,10 @@ namespace boost {
const Range2T& Format,
const std::locale& Loc=std::locale() )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::nth_finder(Search, Nth, is_iequal(Loc)),
::boost::algorithm::const_formatter(Format) );
nth_finder(Search, Nth, is_iequal(Loc)),
const_formatter(Format) );
}
// replace_all --------------------------------------------------------------------//
@ -612,11 +612,11 @@ namespace boost {
const Range2T& Search,
const Range3T& Format )
{
return ::boost::algorithm::find_format_all_copy(
return find_format_all_copy(
Output,
Input,
::boost::algorithm::first_finder(Search),
::boost::algorithm::const_formatter(Format) );
first_finder(Search),
const_formatter(Format) );
}
//! Replace all algorithm
@ -629,10 +629,10 @@ namespace boost {
const Range1T& Search,
const Range2T& Format )
{
return ::boost::algorithm::find_format_all_copy(
return find_format_all_copy(
Input,
::boost::algorithm::first_finder(Search),
::boost::algorithm::const_formatter(Format) );
first_finder(Search),
const_formatter(Format) );
}
//! Replace all algorithm
@ -651,10 +651,10 @@ namespace boost {
const Range1T& Search,
const Range2T& Format )
{
::boost::algorithm::find_format_all(
find_format_all(
Input,
::boost::algorithm::first_finder(Search),
::boost::algorithm::const_formatter(Format) );
first_finder(Search),
const_formatter(Format) );
}
// replace_all ( case insensitive ) -----------------------------------------------//
@ -689,11 +689,11 @@ namespace boost {
const Range3T& Format,
const std::locale& Loc=std::locale() )
{
return ::boost::algorithm::find_format_all_copy(
return find_format_all_copy(
Output,
Input,
::boost::algorithm::first_finder(Search, is_iequal(Loc)),
::boost::algorithm::const_formatter(Format) );
first_finder(Search, is_iequal(Loc)),
const_formatter(Format) );
}
//! Replace all algorithm ( case insensitive )
@ -707,10 +707,10 @@ namespace boost {
const Range2T& Format,
const std::locale& Loc=std::locale() )
{
return ::boost::algorithm::find_format_all_copy(
return find_format_all_copy(
Input,
::boost::algorithm::first_finder(Search, is_iequal(Loc)),
::boost::algorithm::const_formatter(Format) );
first_finder(Search, is_iequal(Loc)),
const_formatter(Format) );
}
//! Replace all algorithm ( case insensitive )
@ -731,10 +731,10 @@ namespace boost {
const Range2T& Format,
const std::locale& Loc=std::locale() )
{
::boost::algorithm::find_format_all(
find_format_all(
Input,
::boost::algorithm::first_finder(Search, is_iequal(Loc)),
::boost::algorithm::const_formatter(Format) );
first_finder(Search, is_iequal(Loc)),
const_formatter(Format) );
}
// replace_head --------------------------------------------------------------------//
@ -769,11 +769,11 @@ namespace boost {
int N,
const Range2T& Format )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::head_finder(N),
::boost::algorithm::const_formatter(Format) );
head_finder(N),
const_formatter(Format) );
}
//! Replace head algorithm
@ -786,10 +786,10 @@ namespace boost {
int N,
const RangeT& Format )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::head_finder(N),
::boost::algorithm::const_formatter(Format) );
head_finder(N),
const_formatter(Format) );
}
//! Replace head algorithm
@ -811,10 +811,10 @@ namespace boost {
int N,
const RangeT& Format )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::head_finder(N),
::boost::algorithm::const_formatter(Format) );
head_finder(N),
const_formatter(Format) );
}
// replace_tail --------------------------------------------------------------------//
@ -849,11 +849,11 @@ namespace boost {
int N,
const Range2T& Format )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Output,
Input,
::boost::algorithm::tail_finder(N),
::boost::algorithm::const_formatter(Format) );
tail_finder(N),
const_formatter(Format) );
}
//! Replace tail algorithm
@ -866,10 +866,10 @@ namespace boost {
int N,
const RangeT& Format )
{
return ::boost::algorithm::find_format_copy(
return find_format_copy(
Input,
::boost::algorithm::tail_finder(N),
::boost::algorithm::const_formatter(Format) );
tail_finder(N),
const_formatter(Format) );
}
//! Replace tail algorithm
@ -891,10 +891,10 @@ namespace boost {
int N,
const RangeT& Format )
{
::boost::algorithm::find_format(
find_format(
Input,
::boost::algorithm::tail_finder(N),
::boost::algorithm::const_formatter(Format) );
tail_finder(N),
const_formatter(Format) );
}
} // namespace algorithm

View File

@ -64,10 +64,10 @@ namespace boost {
Range1T& Input,
const Range2T& Search)
{
return ::boost::algorithm::iter_find(
return iter_find(
Result,
Input,
::boost::algorithm::first_finder(Search) );
first_finder(Search) );
}
//! Find all algorithm ( case insensitive )
@ -100,10 +100,10 @@ namespace boost {
const Range2T& Search,
const std::locale& Loc=std::locale() )
{
return ::boost::algorithm::iter_find(
return iter_find(
Result,
Input,
::boost::algorithm::first_finder(Search, is_iequal(Loc) ) );
first_finder(Search, is_iequal(Loc) ) );
}
@ -143,10 +143,10 @@ namespace boost {
PredicateT Pred,
token_compress_mode_type eCompress=token_compress_off )
{
return ::boost::algorithm::iter_split(
return iter_split(
Result,
Input,
::boost::algorithm::token_finder( Pred, eCompress ) );
token_finder( Pred, eCompress ) );
}
} // namespace algorithm

View File

@ -63,14 +63,14 @@ namespace boost {
const RangeT& Input,
PredicateT IsSpace)
{
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_range(::boost::as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_range(as_literal(Input));
std::copy(
::boost::algorithm::detail::trim_begin(
::boost::begin(lit_range),
::boost::end(lit_range),
begin(lit_range),
end(lit_range),
IsSpace ),
::boost::end(lit_range),
end(lit_range),
Output);
return Output;
@ -85,10 +85,10 @@ namespace boost {
{
return SequenceT(
::boost::algorithm::detail::trim_begin(
::boost::begin(Input),
::boost::end(Input),
begin(Input),
end(Input),
IsSpace ),
::boost::end(Input));
end(Input));
}
//! Left trim - parametric
@ -106,7 +106,7 @@ namespace boost {
inline SequenceT trim_left_copy(const SequenceT& Input, const std::locale& Loc=std::locale())
{
return
::boost::algorithm::trim_left_copy_if(
trim_left_copy_if(
Input,
is_space(Loc));
}
@ -124,10 +124,10 @@ namespace boost {
inline void trim_left_if(SequenceT& Input, PredicateT IsSpace)
{
Input.erase(
::boost::begin(Input),
begin(Input),
::boost::algorithm::detail::trim_begin(
::boost::begin(Input),
::boost::end(Input),
begin(Input),
end(Input),
IsSpace));
}
@ -142,7 +142,7 @@ namespace boost {
template<typename SequenceT>
inline void trim_left(SequenceT& Input, const std::locale& Loc=std::locale())
{
::boost::algorithm::trim_left_if(
trim_left_if(
Input,
is_space(Loc));
}
@ -171,13 +171,13 @@ namespace boost {
const RangeT& Input,
PredicateT IsSpace )
{
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_range(::boost::as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_range(as_literal(Input));
std::copy(
::boost::begin(lit_range),
begin(lit_range),
::boost::algorithm::detail::trim_end(
::boost::begin(lit_range),
::boost::end(lit_range),
begin(lit_range),
end(lit_range),
IsSpace ),
Output );
@ -192,10 +192,10 @@ namespace boost {
inline SequenceT trim_right_copy_if(const SequenceT& Input, PredicateT IsSpace)
{
return SequenceT(
::boost::begin(Input),
begin(Input),
::boost::algorithm::detail::trim_end(
::boost::begin(Input),
::boost::end(Input),
begin(Input),
end(Input),
IsSpace)
);
}
@ -215,7 +215,7 @@ namespace boost {
inline SequenceT trim_right_copy(const SequenceT& Input, const std::locale& Loc=std::locale())
{
return
::boost::algorithm::trim_right_copy_if(
trim_right_copy_if(
Input,
is_space(Loc));
}
@ -235,10 +235,10 @@ namespace boost {
{
Input.erase(
::boost::algorithm::detail::trim_end(
::boost::begin(Input),
::boost::end(Input),
begin(Input),
end(Input),
IsSpace ),
::boost::end(Input)
end(Input)
);
}
@ -254,7 +254,7 @@ namespace boost {
template<typename SequenceT>
inline void trim_right(SequenceT& Input, const std::locale& Loc=std::locale())
{
::boost::algorithm::trim_right_if(
trim_right_if(
Input,
is_space(Loc) );
}
@ -283,18 +283,18 @@ namespace boost {
const RangeT& Input,
PredicateT IsSpace)
{
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_range(::boost::as_literal(Input));
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_range(as_literal(Input));
BOOST_STRING_TYPENAME
range_const_iterator<RangeT>::type TrimEnd=
::boost::algorithm::detail::trim_end(
::boost::begin(lit_range),
::boost::end(lit_range),
begin(lit_range),
end(lit_range),
IsSpace);
std::copy(
detail::trim_begin(
::boost::begin(lit_range), TrimEnd, IsSpace),
begin(lit_range), TrimEnd, IsSpace),
TrimEnd,
Output
);
@ -312,13 +312,13 @@ namespace boost {
BOOST_STRING_TYPENAME
range_const_iterator<SequenceT>::type TrimEnd=
::boost::algorithm::detail::trim_end(
::boost::begin(Input),
::boost::end(Input),
begin(Input),
end(Input),
IsSpace);
return SequenceT(
detail::trim_begin(
::boost::begin(Input),
begin(Input),
TrimEnd,
IsSpace),
TrimEnd
@ -340,7 +340,7 @@ namespace boost {
inline SequenceT trim_copy( const SequenceT& Input, const std::locale& Loc=std::locale() )
{
return
::boost::algorithm::trim_copy_if(
trim_copy_if(
Input,
is_space(Loc) );
}
@ -357,8 +357,8 @@ namespace boost {
template<typename SequenceT, typename PredicateT>
inline void trim_if(SequenceT& Input, PredicateT IsSpace)
{
::boost::algorithm::trim_right_if( Input, IsSpace );
::boost::algorithm::trim_left_if( Input, IsSpace );
trim_right_if( Input, IsSpace );
trim_left_if( Input, IsSpace );
}
//! Trim
@ -372,7 +372,7 @@ namespace boost {
template<typename SequenceT>
inline void trim(SequenceT& Input, const std::locale& Loc=std::locale())
{
::boost::algorithm::trim_if(
trim_if(
Input,
is_space( Loc ) );
}

View File

@ -56,7 +56,7 @@ be enough. The present library solves both problems.</p>
<tt>minmax</tt>
as straightforward extensions of the C++
standard. As it returns a pair of <tt>const&amp;</tt>, we must use the <a
href="../../tuple/index.html">Boost.tuple</a> library to construct such
href=:../../../../tuple/index.html>Boost.tuple</a> library to construct such
pairs. (Please note: the intent is not to fix the known defaults of
<tt>std::min</tt>
and <tt>std::max</tt>, but to add one more algorithms that combines both; see the
@ -158,9 +158,9 @@ identical to
that they return the last instance of the largest element (and not the
first, as <tt>first_min_element</tt> and <tt>last_max_element</tt> would).
<p>The family of algorithms comprising <tt>first_min_first_max_element</tt>,
<tt>first_min_last_max_element</tt>,
<tt>last_min_first_max_element</tt>,
and <tt>last_min_last_max_element</tt> can be described generically as
<tt>first_min_first_max_element</tt>,
<tt>first_min_first_max_element</tt>,
and <tt>first_min_first_max_element</tt> can be described generically as
follows (using <i><tt>which</tt></i> and
<i><tt>what</tt></i> for <tt>first</tt>
or <tt>last</tt>): <tt><i>which</i>_min_<i>what</i>_max_element</tt> finds
@ -243,7 +243,7 @@ range
<a name="complexity">
<h3>
Complexity</h3>
<a NAME="Complexity"></a>Complexity</h3>
Minmax performs a single comparison and is otherwise of constant complexity.
The use of <tt>boost::tuple&lt;T const&amp;></tt> prevents copy
constructors in case the arguments are passed by reference.
@ -438,7 +438,7 @@ comparisons).</p>
slower than
<tt>first_min_element</tt> alone, still much less than <tt>first_min_element</tt>
and
<tt>last_max_element</tt> called separately. <a href="#Note2">[2]</a>
<tt>last_max_element</tt> called separately. <a href="#Performance">[2]</a>
<h4><b>Why algorithms and not accumulators?</b></h4>
<p>The minmax algorithms are useful in computing the extent of a range.

View File

@ -54,23 +54,23 @@ void test(BOOST_EXPLICIT_TEMPLATE_TYPE(Value))
less_count<Value> lc(counter);
// Test functionality
tuple<Value const&, Value const&> result1 = boost::minmax(zero, one);
tuple<Value const&, Value const&> result1 = minmax(zero, one);
BOOST_CHECK_EQUAL( get<0>(result1), zero );
BOOST_CHECK_EQUAL( get<1>(result1), one );
tuple<Value const&, Value const&> result2 = boost::minmax(one, zero);
tuple<Value const&, Value const&> result2 = minmax(one, zero);
BOOST_CHECK_EQUAL( get<0>(result2), zero );
BOOST_CHECK_EQUAL( get<1>(result2), one );
// Test functionality and number of comparisons
lc.reset();
tuple<Value const&, Value const&> result3 = boost::minmax(zero, one, lc );
tuple<Value const&, Value const&> result3 = minmax(zero, one, lc );
BOOST_CHECK_EQUAL( get<0>(result3), zero );
BOOST_CHECK_EQUAL( get<1>(result3), one );
BOOST_CHECK_EQUAL( counter, 1 );
lc.reset();
tuple<Value const&, Value const&> result4 = boost::minmax(one, zero, lc );
tuple<Value const&, Value const&> result4 = minmax(one, zero, lc );
BOOST_CHECK_EQUAL( get<0>(result4), zero );
BOOST_CHECK_EQUAL( get<1>(result4), one );
BOOST_CHECK_EQUAL( counter, 1);

View File

@ -10,10 +10,7 @@
import toolset ;
toolset.using doxygen ;
boostbook string_algo : string_algo.xml autodoc
:
<format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/doc/html
;
boostbook string_algo : string_algo.xml autodoc ;
doxygen autodoc
:

View File

@ -102,7 +102,7 @@
struct simple_finder
{
template&lt;typename ForwardIteratorT&gt;
boost::iterator_range&lt;ForwardIteratorT&gt; operator()(
boost::iterator_range&lt;ForwardIterator&gt; operator()(
ForwardIteratorT Begin,
ForwardIteratorT End )
{

View File

@ -25,7 +25,7 @@
</para>
<para>
<emphasis role="bold">Definition:</emphasis> A string is a
<ulink url="../../libs/range/index.html">range</ulink> of characters accessible in sequential
<ulink url="../../libs/range/doc/range.html">range</ulink> of characters accessible in sequential
ordered fashion. Character is any value type with "cheap" copying and assignment.
</para>
<para>
@ -217,7 +217,7 @@
</para>
<para>
For more information about the exception safety topics, follow this
<ulink url="http://www.boost.org/more/generic_exception_safety.html">link</ulink>
<ulink url="http://www.boost.org/community/exception_safety.html">link</ulink>
</para>
</section>
</section>

View File

@ -31,7 +31,7 @@
typedef <i>implementation defined </i> foo_type;</code><p >The corresponding external concept is the ExternalFooConcept.</p><p >A type <code>T</code> fullfills the ExternalFooConcept if these
free-standing functions and type-generators exists:</p><code>void foo( const T&, int ); <br>
int bar( T& ); <br>
foo_type_of< T >::type;</code> <br> <br><hr size="1" ><h3 >Literature</h3><ul ><li > <a href="http://www.boost.org/more/generic_programming.html#type_generator" target="_self" >Type Generators</a> </li><li > <a href="http://www.boost.org/more/generic_programming.html#concept" target="_self" >Concepts</a> </li><li > <a href="http://www.sgi.com/tech/stl/stl_introduction.html" target="_self" >Concepts and SGI STL</a> </li></ul><hr size="1" ><p >&copy; Thorsten Ottosen 2003-2004 (nesotto_AT_cs.auc.dk).
foo_type_of< T >::type;</code> <br> <br><hr size="1" ><h3 >Literature</h3><ul ><li > <a href="http://www.boost.org/community/generic_programming.html#type_generator" target="_self" >Type Generators</a> </li><li > <a href="http://www.boost.org/community/generic_programming.html#concept" target="_self" >Concepts</a> </li><li > <a href="http://www.sgi.com/tech/stl/stl_introduction.html" target="_self" >Concepts and SGI STL</a> </li></ul><hr size="1" ><p >&copy; Thorsten Ottosen 2003-2004 (nesotto_AT_cs.auc.dk).
Permission to copy, use, modify, sell and distribute this software is granted provided this copyright notice appears
in all copies. This software is provided "as is" without express or implied warranty, and with no
claim as to its suitability for any purpose.</p><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></body></html>

View File

@ -57,7 +57,7 @@
The magic of <ulink url="../../libs/range/index.html">Boost.Range</ulink>
provides a uniform way of handling different string types.
If there is a need to pass a pair of iterators,
<ulink url="../../libs/range/doc/html/range/utilities/iterator_range.html"><code>boost::iterator_range</code></ulink>
<ulink url="../../libs/range/doc/utility_class.html"><code>boost::iterator_range</code></ulink>
can be used to package iterators into a structure with a compatible interface.
</para>
</listitem>
@ -130,7 +130,7 @@
string str1("command.com");
cout
&lt;&lt; str1
&lt;&lt; (is_executable("command.com")? "is": "is not")
&lt;&lt; is_executable("command.com")? "is": "is not"
&lt;&lt; "an executable"
&lt;&lt; endl; // prints "command.com is an executable"
@ -138,7 +138,7 @@
char text1[]="hello world!";
cout
&lt;&lt; text1
&lt;&lt; (all( text1, is_lower() )? "is": "is not")
&lt;&lt; all( text1, is_lower() )? "is": "is not"
&lt;&lt; " written in the lower case"
&lt;&lt; endl; // prints "hello world! is written in the lower case"
</programlisting>
@ -208,7 +208,7 @@
</programlisting>
<para>
We have used <functionname>find_last()</functionname> to search the <code>text</code> for "ll".
The result is given in the <ulink url="../../libs/range/doc/html/range/utilities/iterator_range.html"><code>boost::iterator_range</code></ulink>.
The result is given in the <ulink url="../../libs/range/doc/utility_class.html"><code>boost::iterator_range</code></ulink>.
This range delimits the
part of the input which satisfies the find criteria. In our example it is the last occurrence of "ll".
@ -217,7 +217,7 @@
<ulink url="../../libs/range/index.html">Boost.Range</ulink>.
The following lines transform the result. Notice that
<ulink url="../../libs/range/doc/html/range/utilities/iterator_range.html"><code>boost::iterator_range</code></ulink> has familiar
<ulink url="../../libs/range/doc/utility_class.html"><code>boost::iterator_range</code></ulink> has familiar
<code>begin()</code> and <code>end()</code> methods, so it can be used like any other STL container.
Also it is convertible to bool therefore it is easy to use find algorithms for a simple containment checking.
</para>
@ -264,7 +264,7 @@
the find iterator allows us to iterate over the substrings matching the specified criteria.
This facility is using the <link linkend="string_algo.finder_concept">Finder</link> to incrementally
search the string.
Dereferencing a find iterator yields an <ulink url="../../libs/range/doc/html/range/utilities/iterator_range.html"><code>boost::iterator_range</code></ulink>
Dereferencing a find iterator yields an <ulink url="../../libs/range/doc/utility_class.html"><code>boost::iterator_range</code></ulink>
object, that delimits the current match.
</para>
<para>

View File

@ -114,13 +114,10 @@ public:
result_type operator()( const ReplaceT& Replace ) const
{
SeqT r;
if(!Replace.empty())
{
r.push_back( repeat_mark<value_type>() );
r.push_back( *(Replace.begin()) );
r.push_back( value_type( Replace.size() ) );
}
r.push_back( repeat_mark<value_type>() );
r.push_back( *(Replace.begin()) );
r.push_back( value_type( Replace.size() ) );
return r;
}
};
@ -186,18 +183,14 @@ public:
template< typename ReplaceT >
result_type operator()( const ReplaceT& Replace ) const
{
// extract info
typename ReplaceT::const_iterator It=Replace.begin();
value_type Value=*(++It);
value_type Repeat=*(++It);
SeqT r;
if(!Replace.empty())
{
// extract info
typename ReplaceT::const_iterator It=Replace.begin();
value_type Value=*(++It);
value_type Repeat=*(++It);
for( value_type Index=0; Index<Repeat; Index++ ) r.push_back( Value );
}
for( value_type Index=0; Index<Repeat; Index++ ) r.push_back( Value );
return r;
}

View File

@ -96,29 +96,10 @@ void predicate_test()
}
template<typename Pred, typename Input>
void test_pred(const Pred& pred, const Input& input, bool bYes)
{
// test assignment operator
Pred pred1=pred;
pred1=pred;
pred1=pred1;
if(bYes)
{
BOOST_CHECK( all( input, pred ) );
BOOST_CHECK( all( input, pred1 ) );
}
else
{
BOOST_CHECK( !all( input, pred ) );
BOOST_CHECK( !all( input, pred1 ) );
}
}
#define TEST_CLASS( Pred, YesInput, NoInput )\
{\
test_pred(Pred, YesInput, true); \
test_pred(Pred, NoInput, false); \
BOOST_CHECK( all( string(YesInput), Pred ) );\
BOOST_CHECK( !all( string(NoInput), Pred ) );\
}
void classification_test()
@ -140,14 +121,6 @@ void classification_test()
TEST_CLASS( !is_classified(std::ctype_base::space), "...", "..\n\r\t " );
TEST_CLASS( ( !is_any_of("abc") && is_from_range('a','e') ) || is_space(), "d e", "abcde" );
// is_any_of test
// TEST_CLASS( !is_any_of(""), "", "aaa" )
TEST_CLASS( is_any_of("a"), "a", "ab" )
TEST_CLASS( is_any_of("ba"), "ab", "abc" )
TEST_CLASS( is_any_of("cba"), "abc", "abcd" )
TEST_CLASS( is_any_of("hgfedcba"), "abcdefgh", "abcdefghi" )
TEST_CLASS( is_any_of("qponmlkjihgfedcba"), "abcdefghijklmnopq", "zzz" )
}
#undef TEST_CLASS

View File

@ -120,7 +120,6 @@ void replace_all_test()
{
// replace all
TEST_ALGO( replace_all, "1abc3abc2", string("abc") C_ string("YYY"), string("1YYY3YYY2") );
TEST_ALGO( replace_all, string("1abc3abc2"), "/" C_ "\\", string("1abc3abc2") );
TEST_ALGO( ireplace_all, "1aBc3AbC2", "abC" C_ "YYY", string("1YYY3YYY2") );
TEST_ALGO( replace_all, "1abc3abc2", string("abc") C_ string("Z"), string("1Z3Z2") );
TEST_ALGO( replace_all, "1abc3abc2", string("abc") C_ string("XXXX"), string("1XXXX3XXXX2") );