mirror of
https://github.com/boostorg/algorithm.git
synced 2025-07-06 09:16:33 +02:00
tabs removed
[SVN r68162]
This commit is contained in:
@ -89,27 +89,27 @@ namespace boost {
|
|||||||
|
|
||||||
// dissect format functor ----------------------------------------------------//
|
// dissect format functor ----------------------------------------------------//
|
||||||
|
|
||||||
// dissect format functor
|
// dissect format functor
|
||||||
template<typename FinderT>
|
template<typename FinderT>
|
||||||
struct dissect_formatF
|
struct dissect_formatF
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Construction
|
// Construction
|
||||||
dissect_formatF(FinderT Finder) :
|
dissect_formatF(FinderT Finder) :
|
||||||
m_Finder(Finder) {}
|
m_Finder(Finder) {}
|
||||||
|
|
||||||
// Operation
|
// Operation
|
||||||
template<typename RangeT>
|
template<typename RangeT>
|
||||||
inline iterator_range<
|
inline iterator_range<
|
||||||
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
|
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
|
||||||
operator()(const RangeT& Replace) const
|
operator()(const RangeT& Replace) const
|
||||||
{
|
{
|
||||||
return m_Finder(::boost::begin(Replace), ::boost::end(Replace));
|
return m_Finder(::boost::begin(Replace), ::boost::end(Replace));
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
FinderT m_Finder;
|
FinderT m_Finder;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
@ -89,21 +89,21 @@ namespace boost {
|
|||||||
BOOST_STRING_TYPENAME range_value<RangeT>::type>();
|
BOOST_STRING_TYPENAME range_value<RangeT>::type>();
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Empty formatter
|
//! Empty formatter
|
||||||
/*!
|
/*!
|
||||||
Constructs a \c dissect_formatter. Dissect formatter uses a specified finder
|
Constructs a \c dissect_formatter. Dissect formatter uses a specified finder
|
||||||
to extract a portion of the formatted sequence. The first finder's match is returned
|
to extract a portion of the formatted sequence. The first finder's match is returned
|
||||||
as a result
|
as a result
|
||||||
|
|
||||||
\param Finder a finder used to select a portion of the formated sequence
|
\param Finder a finder used to select a portion of the formated sequence
|
||||||
\return An instance of the \c dissect_formatter object.
|
\return An instance of the \c dissect_formatter object.
|
||||||
*/
|
*/
|
||||||
template<typename FinderT>
|
template<typename FinderT>
|
||||||
inline detail::dissect_formatF< FinderT >
|
inline detail::dissect_formatF< FinderT >
|
||||||
dissect_formatter(const FinderT& Finder)
|
dissect_formatter(const FinderT& Finder)
|
||||||
{
|
{
|
||||||
return detail::dissect_formatF<FinderT>(Finder);
|
return detail::dissect_formatF<FinderT>(Finder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} // namespace algorithm
|
} // namespace algorithm
|
||||||
@ -112,7 +112,7 @@ namespace boost {
|
|||||||
using algorithm::const_formatter;
|
using algorithm::const_formatter;
|
||||||
using algorithm::identity_formatter;
|
using algorithm::identity_formatter;
|
||||||
using algorithm::empty_formatter;
|
using algorithm::empty_formatter;
|
||||||
using algorithm::dissect_formatter;
|
using algorithm::dissect_formatter;
|
||||||
|
|
||||||
} // namespace boost
|
} // namespace boost
|
||||||
|
|
||||||
|
@ -23,9 +23,9 @@
|
|||||||
/*! \file
|
/*! \file
|
||||||
Defines trim_all algorithms.
|
Defines trim_all algorithms.
|
||||||
|
|
||||||
Just like \c trim, \c trim_all removes all trailing and leading spaces from a
|
Just like \c trim, \c trim_all removes all trailing and leading spaces from a
|
||||||
sequence (string). In addition, spaces in the middle of the sequence are truncated
|
sequence (string). In addition, spaces in the middle of the sequence are truncated
|
||||||
to just one character. Space is recognized using given locales.
|
to just one character. Space is recognized using given locales.
|
||||||
|
|
||||||
Parametric (\c _if) variants use a predicate (functor) to select which characters
|
Parametric (\c _if) variants use a predicate (functor) to select which characters
|
||||||
are to be trimmed..
|
are to be trimmed..
|
||||||
@ -37,90 +37,90 @@
|
|||||||
namespace boost {
|
namespace boost {
|
||||||
namespace algorithm {
|
namespace algorithm {
|
||||||
|
|
||||||
// multi line trim ----------------------------------------------- //
|
// multi line trim ----------------------------------------------- //
|
||||||
|
|
||||||
//! Trim All - parametric
|
//! Trim All - parametric
|
||||||
/*!
|
/*!
|
||||||
Remove all leading and trailing spaces from the input and
|
Remove all leading and trailing spaces from the input and
|
||||||
compress all other spaces to a single space.
|
compress all other spaces to a single space.
|
||||||
The result is a trimmed copy of the input
|
The result is a trimmed copy of the input
|
||||||
|
|
||||||
\param Input An input sequence
|
\param Input An input sequence
|
||||||
\param IsSpace An unary predicate identifying spaces
|
\param IsSpace An unary predicate identifying spaces
|
||||||
\return A trimmed copy of the input
|
\return A trimmed copy of the input
|
||||||
*/
|
*/
|
||||||
template<typename SequenceT, typename PredicateT>
|
template<typename SequenceT, typename PredicateT>
|
||||||
inline SequenceT trim_all_copy_if(const SequenceT& Input, PredicateT IsSpace)
|
inline SequenceT trim_all_copy_if(const SequenceT& Input, PredicateT IsSpace)
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
::boost::find_format_all_copy(
|
::boost::find_format_all_copy(
|
||||||
::boost::trim_copy_if(Input, IsSpace),
|
::boost::trim_copy_if(Input, IsSpace),
|
||||||
::boost::token_finder(IsSpace, ::boost::token_compress_on),
|
::boost::token_finder(IsSpace, ::boost::token_compress_on),
|
||||||
::boost::dissect_formatter(::boost::head_finder(1)));
|
::boost::dissect_formatter(::boost::head_finder(1)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//! Trim All
|
//! Trim All
|
||||||
/*!
|
/*!
|
||||||
Remove all leading and trailing spaces from the input and
|
Remove all leading and trailing spaces from the input and
|
||||||
compress all other spaces to a single space.
|
compress all other spaces to a single space.
|
||||||
The input sequence is modified in-place.
|
The input sequence is modified in-place.
|
||||||
|
|
||||||
\param Input An input sequence
|
\param Input An input sequence
|
||||||
\param IsSpace An unary predicate identifying spaces
|
\param IsSpace An unary predicate identifying spaces
|
||||||
*/
|
*/
|
||||||
template<typename SequenceT, typename PredicateT>
|
template<typename SequenceT, typename PredicateT>
|
||||||
inline void trim_all_if(SequenceT& Input, PredicateT IsSpace)
|
inline void trim_all_if(SequenceT& Input, PredicateT IsSpace)
|
||||||
{
|
{
|
||||||
::boost::trim_if(Input, IsSpace);
|
::boost::trim_if(Input, IsSpace);
|
||||||
::boost::find_format_all(
|
::boost::find_format_all(
|
||||||
Input,
|
Input,
|
||||||
::boost::token_finder(IsSpace, ::boost::token_compress_on),
|
::boost::token_finder(IsSpace, ::boost::token_compress_on),
|
||||||
::boost::dissect_formatter(::boost::head_finder(1)));
|
::boost::dissect_formatter(::boost::head_finder(1)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//! Trim All
|
//! Trim All
|
||||||
/*!
|
/*!
|
||||||
Remove all leading and trailing spaces from the input and
|
Remove all leading and trailing spaces from the input and
|
||||||
compress all other spaces to a single space.
|
compress all other spaces to a single space.
|
||||||
The result is a trimmed copy of the input
|
The result is a trimmed copy of the input
|
||||||
|
|
||||||
\param Input An input sequence
|
\param Input An input sequence
|
||||||
\param Loc A locale used for 'space' classification
|
\param Loc A locale used for 'space' classification
|
||||||
\return A trimmed copy of the input
|
\return A trimmed copy of the input
|
||||||
*/
|
*/
|
||||||
template<typename SequenceT>
|
template<typename SequenceT>
|
||||||
inline SequenceT trim_all_copy(const SequenceT& Input, const std::locale& Loc =std::locale())
|
inline SequenceT trim_all_copy(const SequenceT& Input, const std::locale& Loc =std::locale())
|
||||||
{
|
{
|
||||||
return trim_all_copy_if(Input, ::boost::is_space(Loc));
|
return trim_all_copy_if(Input, ::boost::is_space(Loc));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//! Trim All
|
//! Trim All
|
||||||
/*!
|
/*!
|
||||||
Remove all leading and trailing spaces from the input and
|
Remove all leading and trailing spaces from the input and
|
||||||
compress all other spaces to a single space.
|
compress all other spaces to a single space.
|
||||||
The input sequence is modified in-place.
|
The input sequence is modified in-place.
|
||||||
|
|
||||||
\param Input An input sequence
|
\param Input An input sequence
|
||||||
\param Loc A locale used for 'space' classification
|
\param Loc A locale used for 'space' classification
|
||||||
\return A trimmed copy of the input
|
\return A trimmed copy of the input
|
||||||
*/
|
*/
|
||||||
template<typename SequenceT>
|
template<typename SequenceT>
|
||||||
inline void trim_all(SequenceT& Input, const std::locale& Loc =std::locale())
|
inline void trim_all(SequenceT& Input, const std::locale& Loc =std::locale())
|
||||||
{
|
{
|
||||||
trim_all_if(Input, ::boost::is_space(Loc));
|
trim_all_if(Input, ::boost::is_space(Loc));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} // namespace algorithm
|
} // namespace algorithm
|
||||||
|
|
||||||
// pull names to the boost namespace
|
// pull names to the boost namespace
|
||||||
using algorithm::trim_all;
|
using algorithm::trim_all;
|
||||||
using algorithm::trim_all_if;
|
using algorithm::trim_all_if;
|
||||||
using algorithm::trim_all_copy;
|
using algorithm::trim_all_copy;
|
||||||
using algorithm::trim_all_copy_if;
|
using algorithm::trim_all_copy_if;
|
||||||
|
|
||||||
} // namespace boost
|
} // namespace boost
|
||||||
|
|
||||||
|
@ -290,18 +290,18 @@ void collection_comp_test()
|
|||||||
|
|
||||||
void dissect_format_test()
|
void dissect_format_test()
|
||||||
{
|
{
|
||||||
BOOST_CHECK(
|
BOOST_CHECK(
|
||||||
find_format_all_copy(
|
find_format_all_copy(
|
||||||
string("aBc123Abc"),
|
string("aBc123Abc"),
|
||||||
first_finder("abc", is_iequal()),
|
first_finder("abc", is_iequal()),
|
||||||
dissect_formatter(token_finder(is_upper())))=="B123A");
|
dissect_formatter(token_finder(is_upper())))=="B123A");
|
||||||
|
|
||||||
|
|
||||||
BOOST_CHECK(
|
BOOST_CHECK(
|
||||||
find_format_all_copy(
|
find_format_all_copy(
|
||||||
string("abc 123 abc"),
|
string("abc 123 abc"),
|
||||||
token_finder(is_space(), token_compress_on),
|
token_finder(is_space(), token_compress_on),
|
||||||
dissect_formatter(head_finder(1)))=="abc 123 abc");
|
dissect_formatter(head_finder(1)))=="abc 123 abc");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -317,7 +317,7 @@ int test_main( int, char*[] )
|
|||||||
replace_tail_test();
|
replace_tail_test();
|
||||||
replace_range_test();
|
replace_range_test();
|
||||||
collection_comp_test();
|
collection_comp_test();
|
||||||
dissect_format_test();
|
dissect_format_test();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -112,15 +112,15 @@ void trim_test()
|
|||||||
|
|
||||||
void trim_all_test()
|
void trim_all_test()
|
||||||
{
|
{
|
||||||
string str1(" 1x x x x1 ");
|
string str1(" 1x x x x1 ");
|
||||||
string str2(" 2x x x x2 ");
|
string str2(" 2x x x x2 ");
|
||||||
string str3(" ");
|
string str3(" ");
|
||||||
|
|
||||||
// *** value passing tests *** //
|
// *** value passing tests *** //
|
||||||
|
|
||||||
// general string test
|
// general string test
|
||||||
BOOST_CHECK( trim_all_copy( str1 )=="1x x x x1" ) ;
|
BOOST_CHECK( trim_all_copy( str1 )=="1x x x x1" ) ;
|
||||||
BOOST_CHECK( trim_all_copy( str2 )=="2x x x x2" ) ;
|
BOOST_CHECK( trim_all_copy( str2 )=="2x x x x2" ) ;
|
||||||
|
|
||||||
// spaces-only string test
|
// spaces-only string test
|
||||||
BOOST_CHECK( trim_all_copy( str3 )=="" );
|
BOOST_CHECK( trim_all_copy( str3 )=="" );
|
||||||
@ -129,10 +129,10 @@ void trim_all_test()
|
|||||||
BOOST_CHECK( trim_all_copy( string("") )=="" );
|
BOOST_CHECK( trim_all_copy( string("") )=="" );
|
||||||
|
|
||||||
// general string test
|
// general string test
|
||||||
trim_all( str1 );
|
trim_all( str1 );
|
||||||
BOOST_CHECK( str1=="1x x x x1" ) ;
|
BOOST_CHECK( str1=="1x x x x1" ) ;
|
||||||
trim_all( str2 );
|
trim_all( str2 );
|
||||||
BOOST_CHECK( str2=="2x x x x2" ) ;
|
BOOST_CHECK( str2=="2x x x x2" ) ;
|
||||||
|
|
||||||
// spaces-only string test
|
// spaces-only string test
|
||||||
str3 = " "; trim_all( str3 );
|
str3 = " "; trim_all( str3 );
|
||||||
@ -155,7 +155,7 @@ void trim_all_test()
|
|||||||
int test_main( int, char*[] )
|
int test_main( int, char*[] )
|
||||||
{
|
{
|
||||||
trim_test();
|
trim_test();
|
||||||
trim_all_test();
|
trim_all_test();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user