mirror of
https://github.com/boostorg/algorithm.git
synced 2025-06-25 20:11:50 +02:00
Compare commits
19 Commits
boost-1.75
...
boost-1.35
Author | SHA1 | Date | |
---|---|---|---|
eab9ca68e6 | |||
822636418b | |||
352e16aade | |||
89c76ea1bb | |||
50b5726a6f | |||
d4b95734dd | |||
05af96f84c | |||
5bdbb2b308 | |||
1a02969303 | |||
6309379618 | |||
37581bac55 | |||
a71a4ed5b1 | |||
c509c3fbad | |||
d8683f2498 | |||
7c0101aa51 | |||
6f3e85528f | |||
8af639b7cf | |||
d9bc7e800b | |||
b4ed9beb90 |
@ -1,7 +1,7 @@
|
|||||||
// (C) Copyright Herve Bronnimann 2004.
|
// (C) Copyright Herve Bronnimann 2004.
|
||||||
// Use, modification and distribution are subject to the
|
//
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Revision history:
|
Revision history:
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// (C) Copyright Herve Bronnimann 2004.
|
// (C) Copyright Herve Bronnimann 2004.
|
||||||
// Use, modification and distribution are subject to the
|
//
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Revision history:
|
Revision history:
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library string_algo.hpp header file ---------------------------//
|
// Boost string_algo library string_algo.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2004. Use, modification and
|
// Copyright Pavol Droba 2002-2004.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_ALGO_HPP
|
#ifndef BOOST_STRING_ALGO_HPP
|
||||||
#define BOOST_STRING_ALGO_HPP
|
#define BOOST_STRING_ALGO_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library case_conv.hpp header file ---------------------------//
|
// Boost string_algo library case_conv.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_CASE_CONV_HPP
|
#ifndef BOOST_STRING_CASE_CONV_HPP
|
||||||
#define BOOST_STRING_CASE_CONV_HPP
|
#define BOOST_STRING_CASE_CONV_HPP
|
||||||
@ -15,6 +16,7 @@
|
|||||||
#include <locale>
|
#include <locale>
|
||||||
#include <boost/iterator/transform_iterator.hpp>
|
#include <boost/iterator/transform_iterator.hpp>
|
||||||
|
|
||||||
|
#include <boost/range/as_literal.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/range/value_type.hpp>
|
#include <boost/range/value_type.hpp>
|
||||||
@ -55,11 +57,10 @@ namespace boost {
|
|||||||
const RangeT& Input,
|
const RangeT& Input,
|
||||||
const std::locale& Loc=std::locale())
|
const std::locale& Loc=std::locale())
|
||||||
{
|
{
|
||||||
return std::transform(
|
return ::boost::algorithm::detail::transform_range_copy(
|
||||||
begin(Input),
|
Output,
|
||||||
end(Input),
|
as_literal(Input),
|
||||||
Output,
|
::boost::algorithm::detail::to_lowerF<
|
||||||
::boost::algorithm::detail::to_lowerF<
|
|
||||||
typename range_value<RangeT>::type >(Loc));
|
typename range_value<RangeT>::type >(Loc));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,15 +73,10 @@ namespace boost {
|
|||||||
const SequenceT& Input,
|
const SequenceT& Input,
|
||||||
const std::locale& Loc=std::locale())
|
const std::locale& Loc=std::locale())
|
||||||
{
|
{
|
||||||
return SequenceT(
|
return ::boost::algorithm::detail::transform_range_copy<SequenceT>(
|
||||||
make_transform_iterator(
|
Input,
|
||||||
begin(Input),
|
::boost::algorithm::detail::to_lowerF<
|
||||||
::boost::algorithm::detail::to_lowerF<
|
typename range_value<SequenceT>::type >(Loc));
|
||||||
typename range_value<SequenceT>::type >(Loc)),
|
|
||||||
make_transform_iterator(
|
|
||||||
end(Input),
|
|
||||||
::boost::algorithm::detail::to_lowerF<
|
|
||||||
typename range_value<SequenceT>::type >(Loc)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Convert to lower case
|
//! Convert to lower case
|
||||||
@ -96,10 +92,8 @@ namespace boost {
|
|||||||
WritableRangeT& Input,
|
WritableRangeT& Input,
|
||||||
const std::locale& Loc=std::locale())
|
const std::locale& Loc=std::locale())
|
||||||
{
|
{
|
||||||
std::transform(
|
::boost::algorithm::detail::transform_range(
|
||||||
begin(Input),
|
as_literal(Input),
|
||||||
end(Input),
|
|
||||||
begin(Input),
|
|
||||||
::boost::algorithm::detail::to_lowerF<
|
::boost::algorithm::detail::to_lowerF<
|
||||||
typename range_value<WritableRangeT>::type >(Loc));
|
typename range_value<WritableRangeT>::type >(Loc));
|
||||||
}
|
}
|
||||||
@ -128,11 +122,10 @@ namespace boost {
|
|||||||
const RangeT& Input,
|
const RangeT& Input,
|
||||||
const std::locale& Loc=std::locale())
|
const std::locale& Loc=std::locale())
|
||||||
{
|
{
|
||||||
return std::transform(
|
return ::boost::algorithm::detail::transform_range_copy(
|
||||||
begin(Input),
|
Output,
|
||||||
end(Input),
|
as_literal(Input),
|
||||||
Output,
|
::boost::algorithm::detail::to_upperF<
|
||||||
::boost::algorithm::detail::to_upperF<
|
|
||||||
typename range_value<RangeT>::type >(Loc));
|
typename range_value<RangeT>::type >(Loc));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,16 +138,10 @@ namespace boost {
|
|||||||
const SequenceT& Input,
|
const SequenceT& Input,
|
||||||
const std::locale& Loc=std::locale())
|
const std::locale& Loc=std::locale())
|
||||||
{
|
{
|
||||||
return SequenceT(
|
return ::boost::algorithm::detail::transform_range_copy<SequenceT>(
|
||||||
make_transform_iterator(
|
Input,
|
||||||
begin(Input),
|
::boost::algorithm::detail::to_upperF<
|
||||||
::boost::algorithm::detail::to_upperF<
|
typename range_value<SequenceT>::type >(Loc));
|
||||||
typename range_value<SequenceT>::type >(Loc)),
|
|
||||||
make_transform_iterator(
|
|
||||||
end(Input),
|
|
||||||
::boost::algorithm::detail::to_upperF<
|
|
||||||
typename range_value<SequenceT>::type >(Loc)));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Convert to upper case
|
//! Convert to upper case
|
||||||
@ -170,10 +157,8 @@ namespace boost {
|
|||||||
WritableRangeT& Input,
|
WritableRangeT& Input,
|
||||||
const std::locale& Loc=std::locale())
|
const std::locale& Loc=std::locale())
|
||||||
{
|
{
|
||||||
std::transform(
|
::boost::algorithm::detail::transform_range(
|
||||||
begin(Input),
|
as_literal(Input),
|
||||||
end(Input),
|
|
||||||
begin(Input),
|
|
||||||
::boost::algorithm::detail::to_upperF<
|
::boost::algorithm::detail::to_upperF<
|
||||||
typename range_value<WritableRangeT>::type >(Loc));
|
typename range_value<WritableRangeT>::type >(Loc));
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library classification.hpp header file ---------------------------//
|
// Boost string_algo library classification.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_CLASSIFICATION_HPP
|
#ifndef BOOST_STRING_CLASSIFICATION_HPP
|
||||||
#define BOOST_STRING_CLASSIFICATION_HPP
|
#define BOOST_STRING_CLASSIFICATION_HPP
|
||||||
@ -13,9 +14,11 @@
|
|||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <locale>
|
#include <locale>
|
||||||
#include <boost/range/value_type.hpp>
|
#include <boost/range/value_type.hpp>
|
||||||
|
#include <boost/range/as_literal.hpp>
|
||||||
#include <boost/algorithm/string/detail/classification.hpp>
|
#include <boost/algorithm/string/detail/classification.hpp>
|
||||||
#include <boost/algorithm/string/predicate_facade.hpp>
|
#include <boost/algorithm/string/predicate_facade.hpp>
|
||||||
|
|
||||||
|
|
||||||
/*! \file
|
/*! \file
|
||||||
Classification predicates are included in the library to give
|
Classification predicates are included in the library to give
|
||||||
some more convenience when using algorithms like \c trim() and \c all().
|
some more convenience when using algorithms like \c trim() and \c all().
|
||||||
@ -200,7 +203,7 @@ namespace boost {
|
|||||||
is_any_of( const RangeT& Set )
|
is_any_of( const RangeT& Set )
|
||||||
{
|
{
|
||||||
return detail::is_any_ofF<
|
return detail::is_any_ofF<
|
||||||
BOOST_STRING_TYPENAME range_value<RangeT>::type>(Set);
|
BOOST_STRING_TYPENAME range_value<RangeT>::type>(as_literal(Set));
|
||||||
}
|
}
|
||||||
|
|
||||||
//! is_from_range predicate
|
//! is_from_range predicate
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library compare.hpp header file -------------------------//
|
// Boost string_algo library compare.hpp header file -------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2006. Use, modification and
|
// Copyright Pavol Droba 2002-2006.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_COMPARE_HPP
|
#ifndef BOOST_STRING_COMPARE_HPP
|
||||||
#define BOOST_STRING_COMPARE_HPP
|
#define BOOST_STRING_COMPARE_HPP
|
||||||
@ -67,7 +68,7 @@ namespace boost {
|
|||||||
#if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
|
#if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
|
||||||
return std::toupper(Arg1)==std::toupper(Arg2);
|
return std::toupper(Arg1)==std::toupper(Arg2);
|
||||||
#else
|
#else
|
||||||
return std::toupper(Arg1,m_Loc)==std::toupper(Arg2,m_Loc);
|
return std::toupper<T1>(Arg1,m_Loc)==std::toupper<T2>(Arg2,m_Loc);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,7 +121,7 @@ namespace boost {
|
|||||||
#if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
|
#if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
|
||||||
return std::toupper(Arg1)<std::toupper(Arg2);
|
return std::toupper(Arg1)<std::toupper(Arg2);
|
||||||
#else
|
#else
|
||||||
return std::toupper(Arg1,m_Loc)<std::toupper(Arg2,m_Loc);
|
return std::toupper<T1>(Arg1,m_Loc)<std::toupper<T2>(Arg2,m_Loc);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -173,7 +174,7 @@ namespace boost {
|
|||||||
#if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
|
#if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
|
||||||
return std::toupper(Arg1)<=std::toupper(Arg2);
|
return std::toupper(Arg1)<=std::toupper(Arg2);
|
||||||
#else
|
#else
|
||||||
return std::toupper(Arg1,m_Loc)<=std::toupper(Arg2,m_Loc);
|
return std::toupper<T1>(Arg1,m_Loc)<=std::toupper<T2>(Arg2,m_Loc);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library concept.hpp header file ---------------------------//
|
// Boost string_algo library concept.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_CONCEPT_HPP
|
#ifndef BOOST_STRING_CONCEPT_HPP
|
||||||
#define BOOST_STRING_CONCEPT_HPP
|
#define BOOST_STRING_CONCEPT_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library config.hpp header file ---------------------------//
|
// Boost string_algo library config.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_CONFIG_HPP
|
#ifndef BOOST_STRING_CONFIG_HPP
|
||||||
#define BOOST_STRING_CONFIG_HPP
|
#define BOOST_STRING_CONFIG_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library constants.hpp header file ---------------------------//
|
// Boost string_algo library constants.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_CONSTANTS_HPP
|
#ifndef BOOST_STRING_CONSTANTS_HPP
|
||||||
#define BOOST_STRING_CONSTANTS_HPP
|
#define BOOST_STRING_CONSTANTS_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library string_funct.hpp header file ---------------------------//
|
// Boost string_algo library string_funct.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_CASE_CONV_DETAIL_HPP
|
#ifndef BOOST_STRING_CASE_CONV_DETAIL_HPP
|
||||||
#define BOOST_STRING_CASE_CONV_DETAIL_HPP
|
#define BOOST_STRING_CASE_CONV_DETAIL_HPP
|
||||||
@ -33,7 +34,7 @@ namespace boost {
|
|||||||
#if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
|
#if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
|
||||||
return std::tolower( Ch);
|
return std::tolower( Ch);
|
||||||
#else
|
#else
|
||||||
return std::tolower( Ch, m_Loc );
|
return std::tolower<CharT>( Ch, m_Loc );
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
@ -53,13 +54,56 @@ namespace boost {
|
|||||||
#if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
|
#if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
|
||||||
return std::toupper( Ch);
|
return std::toupper( Ch);
|
||||||
#else
|
#else
|
||||||
return std::toupper( Ch, m_Loc );
|
return std::toupper<CharT>( Ch, m_Loc );
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
const std::locale& m_Loc;
|
const std::locale& m_Loc;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// algorithm implementation -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Transform a range
|
||||||
|
template<typename OutputIteratorT, typename RangeT, typename FunctorT>
|
||||||
|
OutputIteratorT transform_range_copy(
|
||||||
|
OutputIteratorT Output,
|
||||||
|
const RangeT& Input,
|
||||||
|
FunctorT Functor)
|
||||||
|
{
|
||||||
|
return std::transform(
|
||||||
|
begin(Input),
|
||||||
|
end(Input),
|
||||||
|
Output,
|
||||||
|
Functor);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Transform a range (in-place)
|
||||||
|
template<typename RangeT, typename FunctorT>
|
||||||
|
void transform_range(
|
||||||
|
const RangeT& Input,
|
||||||
|
FunctorT Functor)
|
||||||
|
{
|
||||||
|
std::transform(
|
||||||
|
begin(Input),
|
||||||
|
end(Input),
|
||||||
|
begin(Input),
|
||||||
|
Functor);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename SequenceT, typename RangeT, typename FunctorT>
|
||||||
|
inline SequenceT transform_range_copy(
|
||||||
|
const RangeT& Input,
|
||||||
|
FunctorT Functor)
|
||||||
|
{
|
||||||
|
return SequenceT(
|
||||||
|
make_transform_iterator(
|
||||||
|
begin(Input),
|
||||||
|
Functor),
|
||||||
|
make_transform_iterator(
|
||||||
|
end(Input),
|
||||||
|
Functor));
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
} // namespace algorithm
|
} // namespace algorithm
|
||||||
} // namespace boost
|
} // namespace boost
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library classification.hpp header file ---------------------------//
|
// Boost string_algo library classification.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_CLASSIFICATION_DETAIL_HPP
|
#ifndef BOOST_STRING_CLASSIFICATION_DETAIL_HPP
|
||||||
#define BOOST_STRING_CLASSIFICATION_DETAIL_HPP
|
#define BOOST_STRING_CLASSIFICATION_DETAIL_HPP
|
||||||
@ -46,7 +47,7 @@ namespace boost {
|
|||||||
return std::use_facet< std::ctype<CharT> >(m_Locale).is( m_Type, Ch );
|
return std::use_facet< std::ctype<CharT> >(m_Locale).is( m_Type, Ch );
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
|
#if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x582) && !defined(_USE_OLD_RW_STL)
|
||||||
template<>
|
template<>
|
||||||
bool operator()( char const Ch ) const
|
bool operator()( char const Ch ) const
|
||||||
{
|
{
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library find_format.hpp header file ---------------------------//
|
// Boost string_algo library find_format.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_FIND_FORMAT_DETAIL_HPP
|
#ifndef BOOST_STRING_FIND_FORMAT_DETAIL_HPP
|
||||||
#define BOOST_STRING_FIND_FORMAT_DETAIL_HPP
|
#define BOOST_STRING_FIND_FORMAT_DETAIL_HPP
|
||||||
@ -26,20 +27,17 @@ namespace boost {
|
|||||||
template<
|
template<
|
||||||
typename OutputIteratorT,
|
typename OutputIteratorT,
|
||||||
typename InputT,
|
typename InputT,
|
||||||
typename FinderT,
|
|
||||||
typename FormatterT,
|
typename FormatterT,
|
||||||
typename FindResultT >
|
typename FindResultT >
|
||||||
inline OutputIteratorT find_format_copy_impl(
|
inline OutputIteratorT find_format_copy_impl(
|
||||||
OutputIteratorT Output,
|
OutputIteratorT Output,
|
||||||
const InputT& Input,
|
const InputT& Input,
|
||||||
FinderT Finder,
|
|
||||||
FormatterT Formatter,
|
FormatterT Formatter,
|
||||||
const FindResultT& FindResult )
|
const FindResultT& FindResult )
|
||||||
{
|
{
|
||||||
return find_format_copy_impl2(
|
return find_format_copy_impl2(
|
||||||
Output,
|
Output,
|
||||||
Input,
|
Input,
|
||||||
Finder,
|
|
||||||
Formatter,
|
Formatter,
|
||||||
FindResult,
|
FindResult,
|
||||||
Formatter(FindResult) );
|
Formatter(FindResult) );
|
||||||
@ -48,14 +46,12 @@ namespace boost {
|
|||||||
template<
|
template<
|
||||||
typename OutputIteratorT,
|
typename OutputIteratorT,
|
||||||
typename InputT,
|
typename InputT,
|
||||||
typename FinderT,
|
|
||||||
typename FormatterT,
|
typename FormatterT,
|
||||||
typename FindResultT,
|
typename FindResultT,
|
||||||
typename FormatResultT >
|
typename FormatResultT >
|
||||||
inline OutputIteratorT find_format_copy_impl2(
|
inline OutputIteratorT find_format_copy_impl2(
|
||||||
OutputIteratorT Output,
|
OutputIteratorT Output,
|
||||||
const InputT& Input,
|
const InputT& Input,
|
||||||
FinderT Finder,
|
|
||||||
FormatterT Formatter,
|
FormatterT Formatter,
|
||||||
const FindResultT& FindResult,
|
const FindResultT& FindResult,
|
||||||
const FormatResultT& FormatResult )
|
const FormatResultT& FormatResult )
|
||||||
@ -91,18 +87,15 @@ namespace boost {
|
|||||||
|
|
||||||
template<
|
template<
|
||||||
typename InputT,
|
typename InputT,
|
||||||
typename FinderT,
|
|
||||||
typename FormatterT,
|
typename FormatterT,
|
||||||
typename FindResultT >
|
typename FindResultT >
|
||||||
inline InputT find_format_copy_impl(
|
inline InputT find_format_copy_impl(
|
||||||
const InputT& Input,
|
const InputT& Input,
|
||||||
FinderT Finder,
|
|
||||||
FormatterT Formatter,
|
FormatterT Formatter,
|
||||||
const FindResultT& FindResult)
|
const FindResultT& FindResult)
|
||||||
{
|
{
|
||||||
return find_format_copy_impl2(
|
return find_format_copy_impl2(
|
||||||
Input,
|
Input,
|
||||||
Finder,
|
|
||||||
Formatter,
|
Formatter,
|
||||||
FindResult,
|
FindResult,
|
||||||
Formatter(FindResult) );
|
Formatter(FindResult) );
|
||||||
@ -110,13 +103,11 @@ namespace boost {
|
|||||||
|
|
||||||
template<
|
template<
|
||||||
typename InputT,
|
typename InputT,
|
||||||
typename FinderT,
|
|
||||||
typename FormatterT,
|
typename FormatterT,
|
||||||
typename FindResultT,
|
typename FindResultT,
|
||||||
typename FormatResultT >
|
typename FormatResultT >
|
||||||
inline InputT find_format_copy_impl2(
|
inline InputT find_format_copy_impl2(
|
||||||
const InputT& Input,
|
const InputT& Input,
|
||||||
FinderT Finder,
|
|
||||||
FormatterT Formatter,
|
FormatterT Formatter,
|
||||||
const FindResultT& FindResult,
|
const FindResultT& FindResult,
|
||||||
const FormatResultT& FormatResult)
|
const FormatResultT& FormatResult)
|
||||||
@ -151,18 +142,15 @@ namespace boost {
|
|||||||
|
|
||||||
template<
|
template<
|
||||||
typename InputT,
|
typename InputT,
|
||||||
typename FinderT,
|
|
||||||
typename FormatterT,
|
typename FormatterT,
|
||||||
typename FindResultT >
|
typename FindResultT >
|
||||||
inline void find_format_impl(
|
inline void find_format_impl(
|
||||||
InputT& Input,
|
InputT& Input,
|
||||||
FinderT Finder,
|
|
||||||
FormatterT Formatter,
|
FormatterT Formatter,
|
||||||
const FindResultT& FindResult)
|
const FindResultT& FindResult)
|
||||||
{
|
{
|
||||||
find_format_impl2(
|
find_format_impl2(
|
||||||
Input,
|
Input,
|
||||||
Finder,
|
|
||||||
Formatter,
|
Formatter,
|
||||||
FindResult,
|
FindResult,
|
||||||
Formatter(FindResult) );
|
Formatter(FindResult) );
|
||||||
@ -170,13 +158,11 @@ namespace boost {
|
|||||||
|
|
||||||
template<
|
template<
|
||||||
typename InputT,
|
typename InputT,
|
||||||
typename FinderT,
|
|
||||||
typename FormatterT,
|
typename FormatterT,
|
||||||
typename FindResultT,
|
typename FindResultT,
|
||||||
typename FormatResultT >
|
typename FormatResultT >
|
||||||
inline void find_format_impl2(
|
inline void find_format_impl2(
|
||||||
InputT& Input,
|
InputT& Input,
|
||||||
FinderT,
|
|
||||||
FormatterT Formatter,
|
FormatterT Formatter,
|
||||||
const FindResultT& FindResult,
|
const FindResultT& FindResult,
|
||||||
const FormatResultT& FormatResult)
|
const FormatResultT& FormatResult)
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library find_format_all.hpp header file ---------------------------//
|
// Boost string_algo library find_format_all.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP
|
#ifndef BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP
|
||||||
#define BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP
|
#define BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library find_format_store.hpp header file ---------------------------//
|
// Boost string_algo library find_format_store.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP
|
#ifndef BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP
|
||||||
#define BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP
|
#define BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library find_iterator.hpp header file ---------------------------//
|
// Boost string_algo library find_iterator.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_FIND_ITERATOR_DETAIL_HPP
|
#ifndef BOOST_STRING_FIND_ITERATOR_DETAIL_HPP
|
||||||
#define BOOST_STRING_FIND_ITERATOR_DETAIL_HPP
|
#define BOOST_STRING_FIND_ITERATOR_DETAIL_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library finder.hpp header file ---------------------------//
|
// Boost string_algo library finder.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2006. Use, modification and
|
// Copyright Pavol Droba 2002-2006.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_FINDER_DETAIL_HPP
|
#ifndef BOOST_STRING_FINDER_DETAIL_HPP
|
||||||
#define BOOST_STRING_FINDER_DETAIL_HPP
|
#define BOOST_STRING_FINDER_DETAIL_HPP
|
||||||
@ -18,6 +19,7 @@
|
|||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/range/empty.hpp>
|
#include <boost/range/empty.hpp>
|
||||||
|
#include <boost/range/as_literal.hpp>
|
||||||
|
|
||||||
namespace boost {
|
namespace boost {
|
||||||
namespace algorithm {
|
namespace algorithm {
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library find_regex.hpp header file ---------------------------//
|
// Boost string_algo library find_regex.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_FINDER_REGEX_DETAIL_HPP
|
#ifndef BOOST_STRING_FINDER_REGEX_DETAIL_HPP
|
||||||
#define BOOST_STRING_FINDER_REGEX_DETAIL_HPP
|
#define BOOST_STRING_FINDER_REGEX_DETAIL_HPP
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
// Boost string_algo library formatter.hpp header file ---------------------------//
|
// Boost string_algo library formatter.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org for updates, documentation, and revision history.
|
||||||
|
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library formatter_regex.hpp header file ---------------------------//
|
// Boost string_algo library formatter_regex.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_FORMATTER_REGEX_DETAIL_HPP
|
#ifndef BOOST_STRING_FORMATTER_REGEX_DETAIL_HPP
|
||||||
#define BOOST_STRING_FORMATTER_REGEX_DETAIL_HPP
|
#define BOOST_STRING_FORMATTER_REGEX_DETAIL_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library predicate.hpp header file ---------------------------//
|
// Boost string_algo library predicate.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_PREDICATE_DETAIL_HPP
|
#ifndef BOOST_STRING_PREDICATE_DETAIL_HPP
|
||||||
#define BOOST_STRING_PREDICATE_DETAIL_HPP
|
#define BOOST_STRING_PREDICATE_DETAIL_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library replace_storage.hpp header file ---------------------------//
|
// Boost string_algo library replace_storage.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP
|
#ifndef BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP
|
||||||
#define BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP
|
#define BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library sequence.hpp header file ---------------------------//
|
// Boost string_algo library sequence.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_DETAIL_SEQUENCE_HPP
|
#ifndef BOOST_STRING_DETAIL_SEQUENCE_HPP
|
||||||
#define BOOST_STRING_DETAIL_SEQUENCE_HPP
|
#define BOOST_STRING_DETAIL_SEQUENCE_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library trim.hpp header file ---------------------------//
|
// Boost string_algo library trim.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_TRIM_DETAIL_HPP
|
#ifndef BOOST_STRING_TRIM_DETAIL_HPP
|
||||||
#define BOOST_STRING_TRIM_DETAIL_HPP
|
#define BOOST_STRING_TRIM_DETAIL_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library util.hpp header file ---------------------------//
|
// Boost string_algo library util.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_UTIL_DETAIL_HPP
|
#ifndef BOOST_STRING_UTIL_DETAIL_HPP
|
||||||
#define BOOST_STRING_UTIL_DETAIL_HPP
|
#define BOOST_STRING_UTIL_DETAIL_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library erase.hpp header file ---------------------------//
|
// Boost string_algo library erase.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2006. Use, modification and
|
// Copyright Pavol Droba 2002-2006.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_ERASE_HPP
|
#ifndef BOOST_STRING_ERASE_HPP
|
||||||
#define BOOST_STRING_ERASE_HPP
|
#define BOOST_STRING_ERASE_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library find.hpp header file ---------------------------//
|
// Boost string_algo library find.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_FIND_HPP
|
#ifndef BOOST_STRING_FIND_HPP
|
||||||
#define BOOST_STRING_FIND_HPP
|
#define BOOST_STRING_FIND_HPP
|
||||||
@ -16,8 +17,7 @@
|
|||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/range/iterator.hpp>
|
#include <boost/range/iterator.hpp>
|
||||||
#include <boost/range/const_iterator.hpp>
|
#include <boost/range/as_literal.hpp>
|
||||||
#include <boost/range/result_iterator.hpp>
|
|
||||||
|
|
||||||
#include <boost/algorithm/string/finder.hpp>
|
#include <boost/algorithm/string/finder.hpp>
|
||||||
#include <boost/algorithm/string/compare.hpp>
|
#include <boost/algorithm/string/compare.hpp>
|
||||||
@ -48,19 +48,21 @@ namespace boost {
|
|||||||
*/
|
*/
|
||||||
template<typename RangeT, typename FinderT>
|
template<typename RangeT, typename FinderT>
|
||||||
inline iterator_range<
|
inline iterator_range<
|
||||||
BOOST_STRING_TYPENAME range_result_iterator<RangeT>::type>
|
BOOST_STRING_TYPENAME range_iterator<RangeT>::type>
|
||||||
find(
|
find(
|
||||||
RangeT& Input,
|
RangeT& Input,
|
||||||
FinderT Finder)
|
const FinderT& Finder)
|
||||||
{
|
{
|
||||||
return Finder(begin(Input),end(Input));
|
iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_input(as_literal(Input));
|
||||||
|
|
||||||
|
return Finder(begin(lit_input),end(lit_input));
|
||||||
}
|
}
|
||||||
|
|
||||||
// find_first -----------------------------------------------//
|
// find_first -----------------------------------------------//
|
||||||
|
|
||||||
//! Find first algorithm
|
//! Find first algorithm
|
||||||
/*!
|
/*!
|
||||||
Search for the first occurence of the substring in the input.
|
Search for the first occurrence of the substring in the input.
|
||||||
|
|
||||||
\param Input A string which will be searched.
|
\param Input A string which will be searched.
|
||||||
\param Search A substring to be searched for.
|
\param Search A substring to be searched for.
|
||||||
@ -74,13 +76,12 @@ namespace boost {
|
|||||||
*/
|
*/
|
||||||
template<typename Range1T, typename Range2T>
|
template<typename Range1T, typename Range2T>
|
||||||
inline iterator_range<
|
inline iterator_range<
|
||||||
BOOST_STRING_TYPENAME range_result_iterator<Range1T>::type>
|
BOOST_STRING_TYPENAME range_iterator<Range1T>::type>
|
||||||
find_first(
|
find_first(
|
||||||
Range1T& Input,
|
Range1T& Input,
|
||||||
const Range2T& Search)
|
const Range2T& Search)
|
||||||
{
|
{
|
||||||
return first_finder(Search)(
|
return find(Input, first_finder(Search));
|
||||||
begin(Input),end(Input));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Find first algorithm ( case insensitive )
|
//! Find first algorithm ( case insensitive )
|
||||||
@ -101,21 +102,20 @@ namespace boost {
|
|||||||
*/
|
*/
|
||||||
template<typename Range1T, typename Range2T>
|
template<typename Range1T, typename Range2T>
|
||||||
inline iterator_range<
|
inline iterator_range<
|
||||||
BOOST_STRING_TYPENAME range_result_iterator<Range1T>::type>
|
BOOST_STRING_TYPENAME range_iterator<Range1T>::type>
|
||||||
ifind_first(
|
ifind_first(
|
||||||
Range1T& Input,
|
Range1T& Input,
|
||||||
const Range2T& Search,
|
const Range2T& Search,
|
||||||
const std::locale& Loc=std::locale())
|
const std::locale& Loc=std::locale())
|
||||||
{
|
{
|
||||||
return first_finder(Search,is_iequal(Loc))(
|
return find(Input, first_finder(Search,is_iequal(Loc)));
|
||||||
begin(Input),end(Input));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// find_last -----------------------------------------------//
|
// find_last -----------------------------------------------//
|
||||||
|
|
||||||
//! Find last algorithm
|
//! Find last algorithm
|
||||||
/*!
|
/*!
|
||||||
Search for the last occurence of the substring in the input.
|
Search for the last occurrence of the substring in the input.
|
||||||
|
|
||||||
\param Input A string which will be searched.
|
\param Input A string which will be searched.
|
||||||
\param Search A substring to be searched for.
|
\param Search A substring to be searched for.
|
||||||
@ -129,13 +129,12 @@ namespace boost {
|
|||||||
*/
|
*/
|
||||||
template<typename Range1T, typename Range2T>
|
template<typename Range1T, typename Range2T>
|
||||||
inline iterator_range<
|
inline iterator_range<
|
||||||
BOOST_STRING_TYPENAME range_result_iterator<Range1T>::type>
|
BOOST_STRING_TYPENAME range_iterator<Range1T>::type>
|
||||||
find_last(
|
find_last(
|
||||||
Range1T& Input,
|
Range1T& Input,
|
||||||
const Range2T& Search)
|
const Range2T& Search)
|
||||||
{
|
{
|
||||||
return last_finder(Search)(
|
return find(Input, last_finder(Search));
|
||||||
begin(Input),end(Input));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Find last algorithm ( case insensitive )
|
//! Find last algorithm ( case insensitive )
|
||||||
@ -156,21 +155,20 @@ namespace boost {
|
|||||||
*/
|
*/
|
||||||
template<typename Range1T, typename Range2T>
|
template<typename Range1T, typename Range2T>
|
||||||
inline iterator_range<
|
inline iterator_range<
|
||||||
BOOST_STRING_TYPENAME range_result_iterator<Range1T>::type>
|
BOOST_STRING_TYPENAME range_iterator<Range1T>::type>
|
||||||
ifind_last(
|
ifind_last(
|
||||||
Range1T& Input,
|
Range1T& Input,
|
||||||
const Range2T& Search,
|
const Range2T& Search,
|
||||||
const std::locale& Loc=std::locale())
|
const std::locale& Loc=std::locale())
|
||||||
{
|
{
|
||||||
return last_finder(Search, is_iequal(Loc))(
|
return find(Input, last_finder(Search, is_iequal(Loc)));
|
||||||
begin(Input),end(Input));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// find_nth ----------------------------------------------------------------------//
|
// find_nth ----------------------------------------------------------------------//
|
||||||
|
|
||||||
//! Find n-th algorithm
|
//! Find n-th algorithm
|
||||||
/*!
|
/*!
|
||||||
Search for the n-th (zero-indexed) occurence of the substring in the
|
Search for the n-th (zero-indexed) occurrence of the substring in the
|
||||||
input.
|
input.
|
||||||
|
|
||||||
\param Input A string which will be searched.
|
\param Input A string which will be searched.
|
||||||
@ -185,14 +183,13 @@ namespace boost {
|
|||||||
*/
|
*/
|
||||||
template<typename Range1T, typename Range2T>
|
template<typename Range1T, typename Range2T>
|
||||||
inline iterator_range<
|
inline iterator_range<
|
||||||
BOOST_STRING_TYPENAME range_result_iterator<Range1T>::type>
|
BOOST_STRING_TYPENAME range_iterator<Range1T>::type>
|
||||||
find_nth(
|
find_nth(
|
||||||
Range1T& Input,
|
Range1T& Input,
|
||||||
const Range2T& Search,
|
const Range2T& Search,
|
||||||
int Nth)
|
int Nth)
|
||||||
{
|
{
|
||||||
return nth_finder(Search,Nth)(
|
return find(Input, nth_finder(Search,Nth));
|
||||||
begin(Input),end(Input));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Find n-th algorithm ( case insensitive ).
|
//! Find n-th algorithm ( case insensitive ).
|
||||||
@ -216,15 +213,14 @@ namespace boost {
|
|||||||
*/
|
*/
|
||||||
template<typename Range1T, typename Range2T>
|
template<typename Range1T, typename Range2T>
|
||||||
inline iterator_range<
|
inline iterator_range<
|
||||||
BOOST_STRING_TYPENAME range_result_iterator<Range1T>::type>
|
BOOST_STRING_TYPENAME range_iterator<Range1T>::type>
|
||||||
ifind_nth(
|
ifind_nth(
|
||||||
Range1T& Input,
|
Range1T& Input,
|
||||||
const Range2T& Search,
|
const Range2T& Search,
|
||||||
int Nth,
|
int Nth,
|
||||||
const std::locale& Loc=std::locale())
|
const std::locale& Loc=std::locale())
|
||||||
{
|
{
|
||||||
return nth_finder(Search,Nth,is_iequal(Loc))(
|
return find(Input, nth_finder(Search,Nth,is_iequal(Loc)));
|
||||||
begin(Input),end(Input));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// find_head ----------------------------------------------------------------------//
|
// find_head ----------------------------------------------------------------------//
|
||||||
@ -249,13 +245,12 @@ namespace boost {
|
|||||||
*/
|
*/
|
||||||
template<typename RangeT>
|
template<typename RangeT>
|
||||||
inline iterator_range<
|
inline iterator_range<
|
||||||
BOOST_STRING_TYPENAME range_result_iterator<RangeT>::type>
|
BOOST_STRING_TYPENAME range_iterator<RangeT>::type>
|
||||||
find_head(
|
find_head(
|
||||||
RangeT& Input,
|
RangeT& Input,
|
||||||
int N)
|
int N)
|
||||||
{
|
{
|
||||||
return head_finder(N)(
|
return find(Input, head_finder(N));
|
||||||
begin(Input),end(Input));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// find_tail ----------------------------------------------------------------------//
|
// find_tail ----------------------------------------------------------------------//
|
||||||
@ -281,13 +276,12 @@ namespace boost {
|
|||||||
*/
|
*/
|
||||||
template<typename RangeT>
|
template<typename RangeT>
|
||||||
inline iterator_range<
|
inline iterator_range<
|
||||||
BOOST_STRING_TYPENAME range_result_iterator<RangeT>::type>
|
BOOST_STRING_TYPENAME range_iterator<RangeT>::type>
|
||||||
find_tail(
|
find_tail(
|
||||||
RangeT& Input,
|
RangeT& Input,
|
||||||
int N)
|
int N)
|
||||||
{
|
{
|
||||||
return tail_finder(N)(
|
return find(Input, tail_finder(N));
|
||||||
begin(Input),end(Input));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// find_token --------------------------------------------------------------------//
|
// find_token --------------------------------------------------------------------//
|
||||||
@ -311,14 +305,13 @@ namespace boost {
|
|||||||
*/
|
*/
|
||||||
template<typename RangeT, typename PredicateT>
|
template<typename RangeT, typename PredicateT>
|
||||||
inline iterator_range<
|
inline iterator_range<
|
||||||
BOOST_STRING_TYPENAME range_result_iterator<RangeT>::type>
|
BOOST_STRING_TYPENAME range_iterator<RangeT>::type>
|
||||||
find_token(
|
find_token(
|
||||||
RangeT& Input,
|
RangeT& Input,
|
||||||
PredicateT Pred,
|
PredicateT Pred,
|
||||||
token_compress_mode_type eCompress=token_compress_off)
|
token_compress_mode_type eCompress=token_compress_off)
|
||||||
{
|
{
|
||||||
return token_finder(Pred, eCompress)(
|
return find(Input, token_finder(Pred, eCompress));
|
||||||
begin(Input),end(Input));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace algorithm
|
} // namespace algorithm
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library find_format.hpp header file ---------------------------//
|
// Boost string_algo library find_format.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_FIND_FORMAT_HPP
|
#ifndef BOOST_STRING_FIND_FORMAT_HPP
|
||||||
#define BOOST_STRING_FIND_FORMAT_HPP
|
#define BOOST_STRING_FIND_FORMAT_HPP
|
||||||
@ -16,6 +17,7 @@
|
|||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/range/const_iterator.hpp>
|
#include <boost/range/const_iterator.hpp>
|
||||||
|
#include <boost/range/as_literal.hpp>
|
||||||
|
|
||||||
#include <boost/algorithm/string/concept.hpp>
|
#include <boost/algorithm/string/concept.hpp>
|
||||||
#include <boost/algorithm/string/detail/find_format.hpp>
|
#include <boost/algorithm/string/detail/find_format.hpp>
|
||||||
@ -68,12 +70,13 @@ namespace boost {
|
|||||||
FormatterT,
|
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(as_literal(Input));
|
||||||
|
|
||||||
return detail::find_format_copy_impl(
|
return detail::find_format_copy_impl(
|
||||||
Output,
|
Output,
|
||||||
Input,
|
lit_input,
|
||||||
Finder,
|
|
||||||
Formatter,
|
Formatter,
|
||||||
Finder( begin(Input), end(Input) ) );
|
Finder( begin(lit_input), end(lit_input) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Generic replace algorithm
|
//! Generic replace algorithm
|
||||||
@ -100,7 +103,6 @@ namespace boost {
|
|||||||
|
|
||||||
return detail::find_format_copy_impl(
|
return detail::find_format_copy_impl(
|
||||||
Input,
|
Input,
|
||||||
Finder,
|
|
||||||
Formatter,
|
Formatter,
|
||||||
Finder(begin(Input), end(Input)));
|
Finder(begin(Input), end(Input)));
|
||||||
}
|
}
|
||||||
@ -134,7 +136,6 @@ namespace boost {
|
|||||||
|
|
||||||
detail::find_format_impl(
|
detail::find_format_impl(
|
||||||
Input,
|
Input,
|
||||||
Finder,
|
|
||||||
Formatter,
|
Formatter,
|
||||||
Finder(begin(Input), end(Input)));
|
Finder(begin(Input), end(Input)));
|
||||||
}
|
}
|
||||||
@ -179,12 +180,14 @@ namespace boost {
|
|||||||
FormatterT,
|
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(as_literal(Input));
|
||||||
|
|
||||||
return detail::find_format_all_copy_impl(
|
return detail::find_format_all_copy_impl(
|
||||||
Output,
|
Output,
|
||||||
Input,
|
lit_input,
|
||||||
Finder,
|
Finder,
|
||||||
Formatter,
|
Formatter,
|
||||||
Finder(begin(Input), end(Input)));
|
Finder(begin(lit_input), end(lit_input)));
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Generic replace all algorithm
|
//! Generic replace all algorithm
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
// Boost string_algo library find_iterator.hpp header file ---------------------------//
|
// Boost string_algo library find_iterator.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2004. Use, modification and
|
// Copyright Pavol Droba 2002-2004.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_FIND_ITERATOR_HPP
|
#ifndef BOOST_STRING_FIND_ITERATOR_HPP
|
||||||
#define BOOST_STRING_FIND_ITERATOR_HPP
|
#define BOOST_STRING_FIND_ITERATOR_HPP
|
||||||
@ -16,7 +18,8 @@
|
|||||||
#include <boost/range/iterator_range.hpp>
|
#include <boost/range/iterator_range.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/range/result_iterator.hpp>
|
#include <boost/range/iterator.hpp>
|
||||||
|
#include <boost/range/as_literal.hpp>
|
||||||
|
|
||||||
#include <boost/algorithm/string/detail/find_iterator.hpp>
|
#include <boost/algorithm/string/detail/find_iterator.hpp>
|
||||||
|
|
||||||
@ -114,10 +117,12 @@ namespace boost {
|
|||||||
find_iterator(
|
find_iterator(
|
||||||
RangeT& Col,
|
RangeT& Col,
|
||||||
FinderT Finder ) :
|
FinderT Finder ) :
|
||||||
detail::find_iterator_base<IteratorT>(Finder,0),
|
detail::find_iterator_base<IteratorT>(Finder,0)
|
||||||
m_Match(begin(Col),begin(Col)),
|
|
||||||
m_End(end(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();
|
increment();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -180,13 +185,13 @@ namespace boost {
|
|||||||
*/
|
*/
|
||||||
template<typename RangeT, typename FinderT>
|
template<typename RangeT, typename FinderT>
|
||||||
inline find_iterator<
|
inline find_iterator<
|
||||||
BOOST_STRING_TYPENAME range_result_iterator<RangeT>::type>
|
BOOST_STRING_TYPENAME range_iterator<RangeT>::type>
|
||||||
make_find_iterator(
|
make_find_iterator(
|
||||||
RangeT& Collection,
|
RangeT& Collection,
|
||||||
FinderT Finder)
|
FinderT Finder)
|
||||||
{
|
{
|
||||||
return find_iterator<BOOST_STRING_TYPENAME range_result_iterator<RangeT>::type>(
|
return find_iterator<BOOST_STRING_TYPENAME range_iterator<RangeT>::type>(
|
||||||
begin(Collection), end(Collection), Finder);
|
Collection, Finder);
|
||||||
}
|
}
|
||||||
|
|
||||||
// split iterator -----------------------------------------------//
|
// split iterator -----------------------------------------------//
|
||||||
@ -278,11 +283,13 @@ namespace boost {
|
|||||||
RangeT& Col,
|
RangeT& Col,
|
||||||
FinderT Finder ) :
|
FinderT Finder ) :
|
||||||
detail::find_iterator_base<IteratorT>(Finder,0),
|
detail::find_iterator_base<IteratorT>(Finder,0),
|
||||||
m_Match(begin(Col),begin(Col)),
|
|
||||||
m_Next(begin(Col)),
|
|
||||||
m_End(end(Col)),
|
|
||||||
m_bEof(false)
|
m_bEof(false)
|
||||||
{
|
{
|
||||||
|
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();
|
increment();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -356,13 +363,13 @@ namespace boost {
|
|||||||
*/
|
*/
|
||||||
template<typename RangeT, typename FinderT>
|
template<typename RangeT, typename FinderT>
|
||||||
inline split_iterator<
|
inline split_iterator<
|
||||||
BOOST_STRING_TYPENAME range_result_iterator<RangeT>::type>
|
BOOST_STRING_TYPENAME range_iterator<RangeT>::type>
|
||||||
make_split_iterator(
|
make_split_iterator(
|
||||||
RangeT& Collection,
|
RangeT& Collection,
|
||||||
FinderT Finder)
|
FinderT Finder)
|
||||||
{
|
{
|
||||||
return split_iterator<BOOST_STRING_TYPENAME range_result_iterator<RangeT>::type>(
|
return split_iterator<BOOST_STRING_TYPENAME range_iterator<RangeT>::type>(
|
||||||
begin(Collection), end(Collection), Finder);
|
Collection, Finder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library finder.hpp header file ---------------------------//
|
// Boost string_algo library finder.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2006. Use, modification and
|
// Copyright Pavol Droba 2002-2006.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_FINDER_HPP
|
#ifndef BOOST_STRING_FINDER_HPP
|
||||||
#define BOOST_STRING_FINDER_HPP
|
#define BOOST_STRING_FINDER_HPP
|
||||||
@ -45,35 +46,35 @@ namespace boost {
|
|||||||
\param Comp An element comparison predicate
|
\param Comp An element comparison predicate
|
||||||
\return An instance of the \c first_finder object
|
\return An instance of the \c first_finder object
|
||||||
*/
|
*/
|
||||||
template<typename ContainerT>
|
template<typename RangeT>
|
||||||
inline detail::first_finderF<
|
inline detail::first_finderF<
|
||||||
BOOST_STRING_TYPENAME range_const_iterator<ContainerT>::type,
|
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
|
||||||
is_equal>
|
is_equal>
|
||||||
first_finder( const ContainerT& Search )
|
first_finder( const RangeT& Search )
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
detail::first_finderF<
|
detail::first_finderF<
|
||||||
BOOST_STRING_TYPENAME
|
BOOST_STRING_TYPENAME
|
||||||
range_const_iterator<ContainerT>::type,
|
range_const_iterator<RangeT>::type,
|
||||||
is_equal>( Search, is_equal() ) ;
|
is_equal>( as_literal(Search), is_equal() ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
//! "First" finder
|
//! "First" finder
|
||||||
/*!
|
/*!
|
||||||
\overload
|
\overload
|
||||||
*/
|
*/
|
||||||
template<typename ContainerT,typename PredicateT>
|
template<typename RangeT,typename PredicateT>
|
||||||
inline detail::first_finderF<
|
inline detail::first_finderF<
|
||||||
BOOST_STRING_TYPENAME range_const_iterator<ContainerT>::type,
|
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
|
||||||
PredicateT>
|
PredicateT>
|
||||||
first_finder(
|
first_finder(
|
||||||
const ContainerT& Search, PredicateT Comp )
|
const RangeT& Search, PredicateT Comp )
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
detail::first_finderF<
|
detail::first_finderF<
|
||||||
BOOST_STRING_TYPENAME
|
BOOST_STRING_TYPENAME
|
||||||
range_const_iterator<ContainerT>::type,
|
range_const_iterator<RangeT>::type,
|
||||||
PredicateT>( Search, Comp );
|
PredicateT>( as_literal(Search), Comp );
|
||||||
}
|
}
|
||||||
|
|
||||||
//! "Last" finder
|
//! "Last" finder
|
||||||
@ -86,33 +87,33 @@ namespace boost {
|
|||||||
\param Comp An element comparison predicate
|
\param Comp An element comparison predicate
|
||||||
\return An instance of the \c last_finder object
|
\return An instance of the \c last_finder object
|
||||||
*/
|
*/
|
||||||
template<typename ContainerT>
|
template<typename RangeT>
|
||||||
inline detail::last_finderF<
|
inline detail::last_finderF<
|
||||||
BOOST_STRING_TYPENAME range_const_iterator<ContainerT>::type,
|
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
|
||||||
is_equal>
|
is_equal>
|
||||||
last_finder( const ContainerT& Search )
|
last_finder( const RangeT& Search )
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
detail::last_finderF<
|
detail::last_finderF<
|
||||||
BOOST_STRING_TYPENAME
|
BOOST_STRING_TYPENAME
|
||||||
range_const_iterator<ContainerT>::type,
|
range_const_iterator<RangeT>::type,
|
||||||
is_equal>( Search, is_equal() );
|
is_equal>( as_literal(Search), is_equal() );
|
||||||
}
|
}
|
||||||
//! "Last" finder
|
//! "Last" finder
|
||||||
/*!
|
/*!
|
||||||
\overload
|
\overload
|
||||||
*/
|
*/
|
||||||
template<typename ContainerT, typename PredicateT>
|
template<typename RangeT, typename PredicateT>
|
||||||
inline detail::last_finderF<
|
inline detail::last_finderF<
|
||||||
BOOST_STRING_TYPENAME range_const_iterator<ContainerT>::type,
|
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
|
||||||
PredicateT>
|
PredicateT>
|
||||||
last_finder( const ContainerT& Search, PredicateT Comp )
|
last_finder( const RangeT& Search, PredicateT Comp )
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
detail::last_finderF<
|
detail::last_finderF<
|
||||||
BOOST_STRING_TYPENAME
|
BOOST_STRING_TYPENAME
|
||||||
range_const_iterator<ContainerT>::type,
|
range_const_iterator<RangeT>::type,
|
||||||
PredicateT>( Search, Comp ) ;
|
PredicateT>( as_literal(Search), Comp ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
//! "Nth" finder
|
//! "Nth" finder
|
||||||
@ -126,38 +127,38 @@ namespace boost {
|
|||||||
\param Comp An element comparison predicate
|
\param Comp An element comparison predicate
|
||||||
\return An instance of the \c nth_finder object
|
\return An instance of the \c nth_finder object
|
||||||
*/
|
*/
|
||||||
template<typename ContainerT>
|
template<typename RangeT>
|
||||||
inline detail::nth_finderF<
|
inline detail::nth_finderF<
|
||||||
BOOST_STRING_TYPENAME range_const_iterator<ContainerT>::type,
|
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
|
||||||
is_equal>
|
is_equal>
|
||||||
nth_finder(
|
nth_finder(
|
||||||
const ContainerT& Search,
|
const RangeT& Search,
|
||||||
int Nth)
|
int Nth)
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
detail::nth_finderF<
|
detail::nth_finderF<
|
||||||
BOOST_STRING_TYPENAME
|
BOOST_STRING_TYPENAME
|
||||||
range_const_iterator<ContainerT>::type,
|
range_const_iterator<RangeT>::type,
|
||||||
is_equal>( Search, Nth, is_equal() ) ;
|
is_equal>( as_literal(Search), Nth, is_equal() ) ;
|
||||||
}
|
}
|
||||||
//! "Nth" finder
|
//! "Nth" finder
|
||||||
/*!
|
/*!
|
||||||
\overload
|
\overload
|
||||||
*/
|
*/
|
||||||
template<typename ContainerT, typename PredicateT>
|
template<typename RangeT, typename PredicateT>
|
||||||
inline detail::nth_finderF<
|
inline detail::nth_finderF<
|
||||||
BOOST_STRING_TYPENAME range_const_iterator<ContainerT>::type,
|
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
|
||||||
PredicateT>
|
PredicateT>
|
||||||
nth_finder(
|
nth_finder(
|
||||||
const ContainerT& Search,
|
const RangeT& Search,
|
||||||
int Nth,
|
int Nth,
|
||||||
PredicateT Comp )
|
PredicateT Comp )
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
detail::nth_finderF<
|
detail::nth_finderF<
|
||||||
BOOST_STRING_TYPENAME
|
BOOST_STRING_TYPENAME
|
||||||
range_const_iterator<ContainerT>::type,
|
range_const_iterator<RangeT>::type,
|
||||||
PredicateT>( Search, Nth, Comp );
|
PredicateT>( as_literal(Search), Nth, Comp );
|
||||||
}
|
}
|
||||||
|
|
||||||
//! "Head" finder
|
//! "Head" finder
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library formatter.hpp header file ---------------------------//
|
// Boost string_algo library formatter.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_FORMATTER_HPP
|
#ifndef BOOST_STRING_FORMATTER_HPP
|
||||||
#define BOOST_STRING_FORMATTER_HPP
|
#define BOOST_STRING_FORMATTER_HPP
|
||||||
@ -13,6 +14,7 @@
|
|||||||
#include <boost/detail/iterator.hpp>
|
#include <boost/detail/iterator.hpp>
|
||||||
#include <boost/range/value_type.hpp>
|
#include <boost/range/value_type.hpp>
|
||||||
#include <boost/range/iterator_range.hpp>
|
#include <boost/range/iterator_range.hpp>
|
||||||
|
#include <boost/range/as_literal.hpp>
|
||||||
|
|
||||||
#include <boost/algorithm/string/detail/formatter.hpp>
|
#include <boost/algorithm/string/detail/formatter.hpp>
|
||||||
|
|
||||||
@ -41,10 +43,14 @@ namespace boost {
|
|||||||
\return An instance of the \c const_formatter object.
|
\return An instance of the \c const_formatter object.
|
||||||
*/
|
*/
|
||||||
template<typename RangeT>
|
template<typename RangeT>
|
||||||
inline detail::const_formatF<RangeT>
|
inline detail::const_formatF<
|
||||||
|
iterator_range<
|
||||||
|
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >
|
||||||
const_formatter(const RangeT& Format)
|
const_formatter(const RangeT& Format)
|
||||||
{
|
{
|
||||||
return detail::const_formatF<RangeT>(Format);
|
return detail::const_formatF<
|
||||||
|
iterator_range<
|
||||||
|
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >(as_literal(Format));
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Identity formatter
|
//! Identity formatter
|
||||||
@ -55,10 +61,14 @@ namespace boost {
|
|||||||
\return An instance of the \c identity_formatter object.
|
\return An instance of the \c identity_formatter object.
|
||||||
*/
|
*/
|
||||||
template<typename RangeT>
|
template<typename RangeT>
|
||||||
inline detail::identity_formatF<RangeT>
|
inline detail::identity_formatF<
|
||||||
|
iterator_range<
|
||||||
|
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >
|
||||||
identity_formatter()
|
identity_formatter()
|
||||||
{
|
{
|
||||||
return detail::identity_formatF<RangeT>();
|
return detail::identity_formatF<
|
||||||
|
iterator_range<
|
||||||
|
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >();
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Empty formatter
|
//! Empty formatter
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library iter_find.hpp header file ---------------------------//
|
// Boost string_algo library iter_find.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_ITER_FIND_HPP
|
#ifndef BOOST_STRING_ITER_FIND_HPP
|
||||||
#define BOOST_STRING_ITER_FIND_HPP
|
#define BOOST_STRING_ITER_FIND_HPP
|
||||||
@ -18,8 +19,9 @@
|
|||||||
#include <boost/range/iterator_range.hpp>
|
#include <boost/range/iterator_range.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/range/result_iterator.hpp>
|
#include <boost/range/iterator.hpp>
|
||||||
#include <boost/range/value_type.hpp>
|
#include <boost/range/value_type.hpp>
|
||||||
|
#include <boost/range/as_literal.hpp>
|
||||||
|
|
||||||
#include <boost/algorithm/string/concept.hpp>
|
#include <boost/algorithm/string/concept.hpp>
|
||||||
#include <boost/algorithm/string/find_iterator.hpp>
|
#include <boost/algorithm/string/find_iterator.hpp>
|
||||||
@ -74,24 +76,26 @@ namespace boost {
|
|||||||
{
|
{
|
||||||
function_requires<
|
function_requires<
|
||||||
FinderConcept<FinderT,
|
FinderConcept<FinderT,
|
||||||
BOOST_STRING_TYPENAME range_result_iterator<RangeT>::type> >();
|
BOOST_STRING_TYPENAME range_iterator<RangeT>::type> >();
|
||||||
|
|
||||||
|
iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_input(as_literal(Input));
|
||||||
|
|
||||||
typedef BOOST_STRING_TYPENAME
|
typedef BOOST_STRING_TYPENAME
|
||||||
range_result_iterator<RangeT>::type input_iterator_type;
|
range_iterator<RangeT>::type input_iterator_type;
|
||||||
typedef find_iterator<input_iterator_type> find_iterator_type;
|
typedef find_iterator<input_iterator_type> find_iterator_type;
|
||||||
typedef detail::copy_iterator_rangeF<
|
typedef detail::copy_iterator_rangeF<
|
||||||
BOOST_STRING_TYPENAME
|
BOOST_STRING_TYPENAME
|
||||||
range_value<SequenceSequenceT>::type,
|
range_value<SequenceSequenceT>::type,
|
||||||
input_iterator_type> copy_range_type;
|
input_iterator_type> copy_range_type;
|
||||||
|
|
||||||
input_iterator_type InputEnd=end(Input);
|
input_iterator_type InputEnd=end(lit_input);
|
||||||
|
|
||||||
typedef transform_iterator<copy_range_type, find_iterator_type>
|
typedef transform_iterator<copy_range_type, find_iterator_type>
|
||||||
transform_iter_type;
|
transform_iter_type;
|
||||||
|
|
||||||
transform_iter_type itBegin=
|
transform_iter_type itBegin=
|
||||||
make_transform_iterator(
|
make_transform_iterator(
|
||||||
find_iterator_type( begin(Input), InputEnd, Finder ),
|
find_iterator_type( begin(lit_input), InputEnd, Finder ),
|
||||||
copy_range_type());
|
copy_range_type());
|
||||||
|
|
||||||
transform_iter_type itEnd=
|
transform_iter_type itEnd=
|
||||||
@ -141,24 +145,26 @@ namespace boost {
|
|||||||
{
|
{
|
||||||
function_requires<
|
function_requires<
|
||||||
FinderConcept<FinderT,
|
FinderConcept<FinderT,
|
||||||
BOOST_STRING_TYPENAME range_result_iterator<RangeT>::type> >();
|
BOOST_STRING_TYPENAME range_iterator<RangeT>::type> >();
|
||||||
|
|
||||||
|
iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_input(as_literal(Input));
|
||||||
|
|
||||||
typedef BOOST_STRING_TYPENAME
|
typedef BOOST_STRING_TYPENAME
|
||||||
range_result_iterator<RangeT>::type input_iterator_type;
|
range_iterator<RangeT>::type input_iterator_type;
|
||||||
typedef split_iterator<input_iterator_type> find_iterator_type;
|
typedef split_iterator<input_iterator_type> find_iterator_type;
|
||||||
typedef detail::copy_iterator_rangeF<
|
typedef detail::copy_iterator_rangeF<
|
||||||
BOOST_STRING_TYPENAME
|
BOOST_STRING_TYPENAME
|
||||||
range_value<SequenceSequenceT>::type,
|
range_value<SequenceSequenceT>::type,
|
||||||
input_iterator_type> copy_range_type;
|
input_iterator_type> copy_range_type;
|
||||||
|
|
||||||
input_iterator_type InputEnd=end(Input);
|
input_iterator_type InputEnd=end(lit_input);
|
||||||
|
|
||||||
typedef transform_iterator<copy_range_type, find_iterator_type>
|
typedef transform_iterator<copy_range_type, find_iterator_type>
|
||||||
transform_iter_type;
|
transform_iter_type;
|
||||||
|
|
||||||
transform_iter_type itBegin=
|
transform_iter_type itBegin=
|
||||||
make_transform_iterator(
|
make_transform_iterator(
|
||||||
find_iterator_type( begin(Input), InputEnd, Finder ),
|
find_iterator_type( begin(lit_input), InputEnd, Finder ),
|
||||||
copy_range_type() );
|
copy_range_type() );
|
||||||
|
|
||||||
transform_iter_type itEnd=
|
transform_iter_type itEnd=
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library join.hpp header file ---------------------------//
|
// Boost string_algo library join.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2006. Use, modification and
|
// Copyright Pavol Droba 2002-2006.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_JOIN_HPP
|
#ifndef BOOST_STRING_JOIN_HPP
|
||||||
#define BOOST_STRING_JOIN_HPP
|
#define BOOST_STRING_JOIN_HPP
|
||||||
@ -13,7 +14,7 @@
|
|||||||
#include <boost/algorithm/string/config.hpp>
|
#include <boost/algorithm/string/config.hpp>
|
||||||
#include <boost/algorithm/string/detail/sequence.hpp>
|
#include <boost/algorithm/string/detail/sequence.hpp>
|
||||||
#include <boost/range/value_type.hpp>
|
#include <boost/range/value_type.hpp>
|
||||||
|
#include <boost/range/as_literal.hpp>
|
||||||
|
|
||||||
/*! \file
|
/*! \file
|
||||||
Defines join algorithm.
|
Defines join algorithm.
|
||||||
@ -44,7 +45,7 @@ namespace boost {
|
|||||||
inline typename range_value<SequenceSequenceT>::type
|
inline typename range_value<SequenceSequenceT>::type
|
||||||
join(
|
join(
|
||||||
const SequenceSequenceT& Input,
|
const SequenceSequenceT& Input,
|
||||||
Range1T& Separator)
|
const Range1T& Separator)
|
||||||
{
|
{
|
||||||
// Define working types
|
// Define working types
|
||||||
typedef typename range_value<SequenceSequenceT>::type ResultT;
|
typedef typename range_value<SequenceSequenceT>::type ResultT;
|
||||||
@ -67,7 +68,7 @@ namespace boost {
|
|||||||
for(;itBegin!=itEnd; ++itBegin)
|
for(;itBegin!=itEnd; ++itBegin)
|
||||||
{
|
{
|
||||||
// Add separator
|
// Add separator
|
||||||
detail::insert(Result, end(Result), Separator);
|
detail::insert(Result, end(Result), as_literal(Separator));
|
||||||
// Add element
|
// Add element
|
||||||
detail::insert(Result, end(Result), *itBegin);
|
detail::insert(Result, end(Result), *itBegin);
|
||||||
}
|
}
|
||||||
@ -94,7 +95,7 @@ namespace boost {
|
|||||||
inline typename range_value<SequenceSequenceT>::type
|
inline typename range_value<SequenceSequenceT>::type
|
||||||
join_if(
|
join_if(
|
||||||
const SequenceSequenceT& Input,
|
const SequenceSequenceT& Input,
|
||||||
Range1T& Separator,
|
const Range1T& Separator,
|
||||||
PredicateT Pred)
|
PredicateT Pred)
|
||||||
{
|
{
|
||||||
// Define working types
|
// Define working types
|
||||||
@ -122,7 +123,7 @@ namespace boost {
|
|||||||
if(Pred(*itBegin))
|
if(Pred(*itBegin))
|
||||||
{
|
{
|
||||||
// Add separator
|
// Add separator
|
||||||
detail::insert(Result, end(Result), Separator);
|
detail::insert(Result, end(Result), as_literal(Separator));
|
||||||
// Add element
|
// Add element
|
||||||
detail::insert(Result, end(Result), *itBegin);
|
detail::insert(Result, end(Result), *itBegin);
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library predicate.hpp header file ---------------------------//
|
// Boost string_algo library predicate.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_PREDICATE_HPP
|
#ifndef BOOST_STRING_PREDICATE_HPP
|
||||||
#define BOOST_STRING_PREDICATE_HPP
|
#define BOOST_STRING_PREDICATE_HPP
|
||||||
@ -15,6 +16,8 @@
|
|||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/range/iterator.hpp>
|
#include <boost/range/iterator.hpp>
|
||||||
#include <boost/range/const_iterator.hpp>
|
#include <boost/range/const_iterator.hpp>
|
||||||
|
#include <boost/range/as_literal.hpp>
|
||||||
|
#include <boost/range/iterator_range.hpp>
|
||||||
|
|
||||||
#include <boost/algorithm/string/compare.hpp>
|
#include <boost/algorithm/string/compare.hpp>
|
||||||
#include <boost/algorithm/string/find.hpp>
|
#include <boost/algorithm/string/find.hpp>
|
||||||
@ -56,16 +59,19 @@ namespace boost {
|
|||||||
const Range2T& Test,
|
const Range2T& Test,
|
||||||
PredicateT Comp)
|
PredicateT Comp)
|
||||||
{
|
{
|
||||||
|
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
|
typedef BOOST_STRING_TYPENAME
|
||||||
range_const_iterator<Range1T>::type Iterator1T;
|
range_const_iterator<Range1T>::type Iterator1T;
|
||||||
typedef BOOST_STRING_TYPENAME
|
typedef BOOST_STRING_TYPENAME
|
||||||
range_const_iterator<Range2T>::type Iterator2T;
|
range_const_iterator<Range2T>::type Iterator2T;
|
||||||
|
|
||||||
Iterator1T InputEnd=end(Input);
|
Iterator1T InputEnd=end(lit_input);
|
||||||
Iterator2T TestEnd=end(Test);
|
Iterator2T TestEnd=end(lit_test);
|
||||||
|
|
||||||
Iterator1T it=begin(Input);
|
Iterator1T it=begin(lit_input);
|
||||||
Iterator2T pit=begin(Test);
|
Iterator2T pit=begin(lit_test);
|
||||||
for(;
|
for(;
|
||||||
it!=InputEnd && pit!=TestEnd;
|
it!=InputEnd && pit!=TestEnd;
|
||||||
++it,++pit)
|
++it,++pit)
|
||||||
@ -135,6 +141,9 @@ namespace boost {
|
|||||||
const Range2T& Test,
|
const Range2T& Test,
|
||||||
PredicateT Comp)
|
PredicateT Comp)
|
||||||
{
|
{
|
||||||
|
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
|
typedef BOOST_STRING_TYPENAME
|
||||||
range_const_iterator<Range1T>::type Iterator1T;
|
range_const_iterator<Range1T>::type Iterator1T;
|
||||||
typedef BOOST_STRING_TYPENAME boost::detail::
|
typedef BOOST_STRING_TYPENAME boost::detail::
|
||||||
@ -142,10 +151,10 @@ namespace boost {
|
|||||||
|
|
||||||
return detail::
|
return detail::
|
||||||
ends_with_iter_select(
|
ends_with_iter_select(
|
||||||
begin(Input),
|
begin(lit_input),
|
||||||
end(Input),
|
end(lit_input),
|
||||||
begin(Test),
|
begin(lit_test),
|
||||||
end(Test),
|
end(lit_test),
|
||||||
Comp,
|
Comp,
|
||||||
category());
|
category());
|
||||||
}
|
}
|
||||||
@ -206,14 +215,17 @@ namespace boost {
|
|||||||
const Range2T& Test,
|
const Range2T& Test,
|
||||||
PredicateT Comp)
|
PredicateT Comp)
|
||||||
{
|
{
|
||||||
if (empty(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 (empty(lit_test))
|
||||||
{
|
{
|
||||||
// Empty range is contained always
|
// Empty range is contained always
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use the temporary variable to make VACPP happy
|
// Use the temporary variable to make VACPP happy
|
||||||
bool bResult=(first_finder(Test,Comp)(begin(Input), end(Input)));
|
bool bResult=(first_finder(lit_test,Comp)(begin(lit_input), end(lit_input)));
|
||||||
return bResult;
|
return bResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -274,16 +286,19 @@ namespace boost {
|
|||||||
const Range2T& Test,
|
const Range2T& Test,
|
||||||
PredicateT Comp)
|
PredicateT Comp)
|
||||||
{
|
{
|
||||||
|
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
|
typedef BOOST_STRING_TYPENAME
|
||||||
range_const_iterator<Range1T>::type Iterator1T;
|
range_const_iterator<Range1T>::type Iterator1T;
|
||||||
typedef BOOST_STRING_TYPENAME
|
typedef BOOST_STRING_TYPENAME
|
||||||
range_const_iterator<Range2T>::type Iterator2T;
|
range_const_iterator<Range2T>::type Iterator2T;
|
||||||
|
|
||||||
Iterator1T InputEnd=end(Input);
|
Iterator1T InputEnd=end(lit_input);
|
||||||
Iterator2T TestEnd=end(Test);
|
Iterator2T TestEnd=end(lit_test);
|
||||||
|
|
||||||
Iterator1T it=begin(Input);
|
Iterator1T it=begin(lit_input);
|
||||||
Iterator2T pit=begin(Test);
|
Iterator2T pit=begin(lit_test);
|
||||||
for(;
|
for(;
|
||||||
it!=InputEnd && pit!=TestEnd;
|
it!=InputEnd && pit!=TestEnd;
|
||||||
++it,++pit)
|
++it,++pit)
|
||||||
@ -357,11 +372,14 @@ namespace boost {
|
|||||||
const Range2T& Arg2,
|
const Range2T& Arg2,
|
||||||
PredicateT Pred)
|
PredicateT Pred)
|
||||||
{
|
{
|
||||||
|
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(
|
return std::lexicographical_compare(
|
||||||
begin(Arg1),
|
begin(lit_arg1),
|
||||||
end(Arg1),
|
end(lit_arg1),
|
||||||
begin(Arg2),
|
begin(lit_arg2),
|
||||||
end(Arg2),
|
end(lit_arg2),
|
||||||
Pred);
|
Pred);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -374,12 +392,7 @@ namespace boost {
|
|||||||
const Range1T& Arg1,
|
const Range1T& Arg1,
|
||||||
const Range2T& Arg2)
|
const Range2T& Arg2)
|
||||||
{
|
{
|
||||||
return std::lexicographical_compare(
|
return lexicographical_compare(Arg1, Arg2, is_less());
|
||||||
begin(Arg1),
|
|
||||||
end(Arg1),
|
|
||||||
begin(Arg2),
|
|
||||||
end(Arg2),
|
|
||||||
is_less());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Lexicographical compare predicate (case-insensitive)
|
//! Lexicographical compare predicate (case-insensitive)
|
||||||
@ -393,6 +406,7 @@ namespace boost {
|
|||||||
|
|
||||||
\param Arg1 First argument
|
\param Arg1 First argument
|
||||||
\param Arg2 Second argument
|
\param Arg2 Second argument
|
||||||
|
\param Loc A locale used for case insensitive comparison
|
||||||
\return The result of the test
|
\return The result of the test
|
||||||
|
|
||||||
\note This function provides the strong exception-safety guarantee
|
\note This function provides the strong exception-safety guarantee
|
||||||
@ -400,14 +414,10 @@ namespace boost {
|
|||||||
template<typename Range1T, typename Range2T>
|
template<typename Range1T, typename Range2T>
|
||||||
inline bool ilexicographical_compare(
|
inline bool ilexicographical_compare(
|
||||||
const Range1T& Arg1,
|
const Range1T& Arg1,
|
||||||
const Range2T& Arg2)
|
const Range2T& Arg2,
|
||||||
|
const std::locale& Loc=std::locale())
|
||||||
{
|
{
|
||||||
return std::lexicographical_compare(
|
return lexicographical_compare(Arg1, Arg2, is_iless(Loc));
|
||||||
begin(Arg1),
|
|
||||||
end(Arg1),
|
|
||||||
begin(Arg2),
|
|
||||||
end(Arg2),
|
|
||||||
is_iless());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -429,11 +439,13 @@ namespace boost {
|
|||||||
const RangeT& Input,
|
const RangeT& Input,
|
||||||
PredicateT Pred)
|
PredicateT Pred)
|
||||||
{
|
{
|
||||||
|
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_input(as_literal(Input));
|
||||||
|
|
||||||
typedef BOOST_STRING_TYPENAME
|
typedef BOOST_STRING_TYPENAME
|
||||||
range_const_iterator<RangeT>::type Iterator1T;
|
range_const_iterator<RangeT>::type Iterator1T;
|
||||||
|
|
||||||
Iterator1T InputEnd=end(Input);
|
Iterator1T InputEnd=end(lit_input);
|
||||||
for( Iterator1T It=begin(Input); It!=InputEnd; ++It)
|
for( Iterator1T It=begin(lit_input); It!=InputEnd; ++It)
|
||||||
{
|
{
|
||||||
if (!Pred(*It))
|
if (!Pred(*It))
|
||||||
return false;
|
return false;
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library predicate_facade.hpp header file ---------------------------//
|
// Boost string_algo library predicate_facade.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_PREDICATE_FACADE_HPP
|
#ifndef BOOST_STRING_PREDICATE_FACADE_HPP
|
||||||
#define BOOST_STRING_PREDICATE_FACADE_HPP
|
#define BOOST_STRING_PREDICATE_FACADE_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library regex.hpp header file ---------------------------//
|
// Boost string_algo library regex.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_REGEX_HPP
|
#ifndef BOOST_STRING_REGEX_HPP
|
||||||
#define BOOST_STRING_REGEX_HPP
|
#define BOOST_STRING_REGEX_HPP
|
||||||
@ -16,7 +17,8 @@
|
|||||||
#include <boost/range/iterator_range.hpp>
|
#include <boost/range/iterator_range.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/range/result_iterator.hpp>
|
#include <boost/range/iterator.hpp>
|
||||||
|
#include <boost/range/as_literal.hpp>
|
||||||
|
|
||||||
#include <boost/algorithm/string/find_format.hpp>
|
#include <boost/algorithm/string/find_format.hpp>
|
||||||
#include <boost/algorithm/string/regex_find_format.hpp>
|
#include <boost/algorithm/string/regex_find_format.hpp>
|
||||||
@ -52,14 +54,16 @@ namespace boost {
|
|||||||
typename CharT,
|
typename CharT,
|
||||||
typename RegexTraitsT>
|
typename RegexTraitsT>
|
||||||
inline iterator_range<
|
inline iterator_range<
|
||||||
BOOST_STRING_TYPENAME range_result_iterator<RangeT>::type >
|
BOOST_STRING_TYPENAME range_iterator<RangeT>::type >
|
||||||
find_regex(
|
find_regex(
|
||||||
RangeT& Input,
|
RangeT& Input,
|
||||||
const basic_regex<CharT, RegexTraitsT>& Rx,
|
const basic_regex<CharT, RegexTraitsT>& Rx,
|
||||||
match_flag_type Flags=match_default )
|
match_flag_type Flags=match_default )
|
||||||
{
|
{
|
||||||
|
iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_input(as_literal(Input));
|
||||||
|
|
||||||
return regex_finder(Rx,Flags)(
|
return regex_finder(Rx,Flags)(
|
||||||
begin(Input), end(Input) );
|
begin(lit_input), end(lit_input) );
|
||||||
}
|
}
|
||||||
|
|
||||||
// replace_regex --------------------------------------------------------------------//
|
// replace_regex --------------------------------------------------------------------//
|
||||||
@ -502,7 +506,7 @@ namespace boost {
|
|||||||
inline typename range_value<SequenceSequenceT>::type
|
inline typename range_value<SequenceSequenceT>::type
|
||||||
join_if(
|
join_if(
|
||||||
const SequenceSequenceT& Input,
|
const SequenceSequenceT& Input,
|
||||||
Range1T& Separator,
|
const Range1T& Separator,
|
||||||
const basic_regex<CharT, RegexTraitsT>& Rx,
|
const basic_regex<CharT, RegexTraitsT>& Rx,
|
||||||
match_flag_type Flags=match_default )
|
match_flag_type Flags=match_default )
|
||||||
{
|
{
|
||||||
@ -535,7 +539,7 @@ namespace boost {
|
|||||||
if(regex_match(begin(*itBegin), end(*itBegin), Rx, Flags))
|
if(regex_match(begin(*itBegin), end(*itBegin), Rx, Flags))
|
||||||
{
|
{
|
||||||
// Add separator
|
// Add separator
|
||||||
detail::insert(Result, end(Result), Separator);
|
detail::insert(Result, end(Result), as_literal(Separator));
|
||||||
// Add element
|
// Add element
|
||||||
detail::insert(Result, end(Result), *itBegin);
|
detail::insert(Result, end(Result), *itBegin);
|
||||||
}
|
}
|
||||||
@ -570,7 +574,7 @@ namespace boost {
|
|||||||
inline typename range_value<SequenceSequenceT>::type
|
inline typename range_value<SequenceSequenceT>::type
|
||||||
join_if_regex(
|
join_if_regex(
|
||||||
const SequenceSequenceT& Input,
|
const SequenceSequenceT& Input,
|
||||||
Range1T& Separator,
|
const Range1T& Separator,
|
||||||
const basic_regex<CharT, RegexTraitsT>& Rx,
|
const basic_regex<CharT, RegexTraitsT>& Rx,
|
||||||
match_flag_type Flags=match_default )
|
match_flag_type Flags=match_default )
|
||||||
{
|
{
|
||||||
@ -603,7 +607,7 @@ namespace boost {
|
|||||||
if(regex_match(begin(*itBegin), end(*itBegin), Rx, Flags))
|
if(regex_match(begin(*itBegin), end(*itBegin), Rx, Flags))
|
||||||
{
|
{
|
||||||
// Add separator
|
// Add separator
|
||||||
detail::insert(Result, end(Result), Separator);
|
detail::insert(Result, end(Result), as_literal(Separator));
|
||||||
// Add element
|
// Add element
|
||||||
detail::insert(Result, end(Result), *itBegin);
|
detail::insert(Result, end(Result), *itBegin);
|
||||||
}
|
}
|
||||||
@ -630,6 +634,12 @@ namespace boost {
|
|||||||
using algorithm::find_all_regex;
|
using algorithm::find_all_regex;
|
||||||
using algorithm::split_regex;
|
using algorithm::split_regex;
|
||||||
|
|
||||||
|
#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||||
|
using algorithm::join_if;
|
||||||
|
#else // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||||
|
using algorithm::join_if_regex;
|
||||||
|
#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||||
|
|
||||||
} // namespace boost
|
} // namespace boost
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library regex_find_format.hpp header file ---------------------------//
|
// Boost string_algo library regex_find_format.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_REGEX_FIND_FORMAT_HPP
|
#ifndef BOOST_STRING_REGEX_FIND_FORMAT_HPP
|
||||||
#define BOOST_STRING_REGEX_FIND_FORMAT_HPP
|
#define BOOST_STRING_REGEX_FIND_FORMAT_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library replace.hpp header file ---------------------------//
|
// Boost string_algo library replace.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2006. Use, modification and
|
// Copyright Pavol Droba 2002-2006.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_REPLACE_HPP
|
#ifndef BOOST_STRING_REPLACE_HPP
|
||||||
#define BOOST_STRING_REPLACE_HPP
|
#define BOOST_STRING_REPLACE_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library sequence_traits.hpp header file ---------------------------//
|
// Boost string_algo library sequence_traits.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_SEQUENCE_TRAITS_HPP
|
#ifndef BOOST_STRING_SEQUENCE_TRAITS_HPP
|
||||||
#define BOOST_STRING_SEQUENCE_TRAITS_HPP
|
#define BOOST_STRING_SEQUENCE_TRAITS_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library split.hpp header file ---------------------------//
|
// Boost string_algo library split.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2006. Use, modification and
|
// Copyright Pavol Droba 2002-2006.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_SPLIT_HPP
|
#ifndef BOOST_STRING_SPLIT_HPP
|
||||||
#define BOOST_STRING_SPLIT_HPP
|
#define BOOST_STRING_SPLIT_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library list_traits.hpp header file ---------------------------//
|
// Boost string_algo library list_traits.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_STD_LIST_TRAITS_HPP
|
#ifndef BOOST_STRING_STD_LIST_TRAITS_HPP
|
||||||
#define BOOST_STRING_STD_LIST_TRAITS_HPP
|
#define BOOST_STRING_STD_LIST_TRAITS_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library string_traits.hpp header file ---------------------------//
|
// Boost string_algo library string_traits.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_STD_ROPE_TRAITS_HPP
|
#ifndef BOOST_STRING_STD_ROPE_TRAITS_HPP
|
||||||
#define BOOST_STRING_STD_ROPE_TRAITS_HPP
|
#define BOOST_STRING_STD_ROPE_TRAITS_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library slist_traits.hpp header file ---------------------------//
|
// Boost string_algo library slist_traits.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_STD_SLIST_TRAITS_HPP
|
#ifndef BOOST_STRING_STD_SLIST_TRAITS_HPP
|
||||||
#define BOOST_STRING_STD_SLIST_TRAITS_HPP
|
#define BOOST_STRING_STD_SLIST_TRAITS_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library string_traits.hpp header file ---------------------------//
|
// Boost string_algo library string_traits.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_STD_STRING_TRAITS_HPP
|
#ifndef BOOST_STRING_STD_STRING_TRAITS_HPP
|
||||||
#define BOOST_STRING_STD_STRING_TRAITS_HPP
|
#define BOOST_STRING_STD_STRING_TRAITS_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library std_containers_traits.hpp header file ---------------------------//
|
// Boost string_algo library std_containers_traits.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_STD_CONTAINERS_TRAITS_HPP
|
#ifndef BOOST_STRING_STD_CONTAINERS_TRAITS_HPP
|
||||||
#define BOOST_STRING_STD_CONTAINERS_TRAITS_HPP
|
#define BOOST_STRING_STD_CONTAINERS_TRAITS_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library trim.hpp header file ---------------------------//
|
// Boost string_algo library trim.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_TRIM_HPP
|
#ifndef BOOST_STRING_TRIM_HPP
|
||||||
#define BOOST_STRING_TRIM_HPP
|
#define BOOST_STRING_TRIM_HPP
|
||||||
@ -15,6 +16,8 @@
|
|||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/range/const_iterator.hpp>
|
#include <boost/range/const_iterator.hpp>
|
||||||
|
#include <boost/range/as_literal.hpp>
|
||||||
|
#include <boost/range/iterator_range.hpp>
|
||||||
|
|
||||||
#include <boost/algorithm/string/detail/trim.hpp>
|
#include <boost/algorithm/string/detail/trim.hpp>
|
||||||
#include <boost/algorithm/string/classification.hpp>
|
#include <boost/algorithm/string/classification.hpp>
|
||||||
@ -60,12 +63,14 @@ namespace boost {
|
|||||||
const RangeT& Input,
|
const RangeT& Input,
|
||||||
PredicateT IsSpace)
|
PredicateT IsSpace)
|
||||||
{
|
{
|
||||||
|
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_range(as_literal(Input));
|
||||||
|
|
||||||
std::copy(
|
std::copy(
|
||||||
::boost::algorithm::detail::trim_begin(
|
::boost::algorithm::detail::trim_begin(
|
||||||
begin(Input),
|
begin(lit_range),
|
||||||
end(Input),
|
end(lit_range),
|
||||||
IsSpace ),
|
IsSpace ),
|
||||||
end(Input),
|
end(lit_range),
|
||||||
Output);
|
Output);
|
||||||
|
|
||||||
return Output;
|
return Output;
|
||||||
@ -166,11 +171,13 @@ namespace boost {
|
|||||||
const RangeT& Input,
|
const RangeT& Input,
|
||||||
PredicateT IsSpace )
|
PredicateT IsSpace )
|
||||||
{
|
{
|
||||||
|
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_range(as_literal(Input));
|
||||||
|
|
||||||
std::copy(
|
std::copy(
|
||||||
begin(Input),
|
begin(lit_range),
|
||||||
::boost::algorithm::detail::trim_end(
|
::boost::algorithm::detail::trim_end(
|
||||||
begin(Input),
|
begin(lit_range),
|
||||||
end(Input),
|
end(lit_range),
|
||||||
IsSpace ),
|
IsSpace ),
|
||||||
Output );
|
Output );
|
||||||
|
|
||||||
@ -276,16 +283,18 @@ namespace boost {
|
|||||||
const RangeT& Input,
|
const RangeT& Input,
|
||||||
PredicateT IsSpace)
|
PredicateT IsSpace)
|
||||||
{
|
{
|
||||||
|
iterator_range<BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_range(as_literal(Input));
|
||||||
|
|
||||||
BOOST_STRING_TYPENAME
|
BOOST_STRING_TYPENAME
|
||||||
range_const_iterator<RangeT>::type TrimEnd=
|
range_const_iterator<RangeT>::type TrimEnd=
|
||||||
::boost::algorithm::detail::trim_end(
|
::boost::algorithm::detail::trim_end(
|
||||||
begin(Input),
|
begin(lit_range),
|
||||||
end(Input),
|
end(lit_range),
|
||||||
IsSpace);
|
IsSpace);
|
||||||
|
|
||||||
std::copy(
|
std::copy(
|
||||||
detail::trim_begin(
|
detail::trim_begin(
|
||||||
begin(Input), TrimEnd, IsSpace),
|
begin(lit_range), TrimEnd, IsSpace),
|
||||||
TrimEnd,
|
TrimEnd,
|
||||||
Output
|
Output
|
||||||
);
|
);
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library yes_no_type.hpp header file ---------------------------//
|
// Boost string_algo library yes_no_type.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2003. Use, modification and
|
// Copyright Pavol Droba 2002-2003.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_YES_NO_TYPE_DETAIL_HPP
|
#ifndef BOOST_STRING_YES_NO_TYPE_DETAIL_HPP
|
||||||
#define BOOST_STRING_YES_NO_TYPE_DETAIL_HPP
|
#define BOOST_STRING_YES_NO_TYPE_DETAIL_HPP
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// Boost string_algo library string_regex.hpp header file ---------------------------//
|
// Boost string_algo library string_regex.hpp header file ---------------------------//
|
||||||
|
|
||||||
// Copyright Pavol Droba 2002-2004. Use, modification and
|
// Copyright Pavol Droba 2002-2004.
|
||||||
// distribution is subject to the Boost Software License, Version
|
//
|
||||||
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for updates, documentation, and revision history.
|
// See http://www.boost.org/ for updates, documentation, and revision history.
|
||||||
|
|
||||||
#ifndef BOOST_STRING_ALGO_REGEX_HPP
|
#ifndef BOOST_STRING_ALGO_REGEX_HPP
|
||||||
#define BOOST_STRING_ALGO_REGEX_HPP
|
#define BOOST_STRING_ALGO_REGEX_HPP
|
||||||
|
@ -7,8 +7,6 @@
|
|||||||
# http://www.boost.org/LICENSE_1_0.txt)
|
# http://www.boost.org/LICENSE_1_0.txt)
|
||||||
#
|
#
|
||||||
|
|
||||||
subproject libs/algorithm/minmax/example ;
|
|
||||||
|
|
||||||
exe minmax_ex : minmax_ex.cpp ;
|
exe minmax_ex : minmax_ex.cpp ;
|
||||||
exe minmax_timer : minmax_timer.cpp ;
|
exe minmax_timer : minmax_timer.cpp ;
|
||||||
|
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
# Boost.Minmax Library Test Jamfile
|
|
||||||
#
|
|
||||||
# Copyright (C) 2002--2004, Herve Bronnimann
|
|
||||||
#
|
|
||||||
# Use, modification, and distribution is subject to the Boost Software
|
|
||||||
# License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
|
||||||
# http://www.boost.org/LICENSE_1_0.txt)
|
|
||||||
#
|
|
||||||
|
|
||||||
subproject libs/algorithm/minmax/test ;
|
|
||||||
|
|
||||||
# bring in rules for testing
|
|
||||||
import testing ;
|
|
||||||
|
|
||||||
# Make tests run by default.
|
|
||||||
DEPENDS all : test ;
|
|
||||||
|
|
||||||
{
|
|
||||||
test-suite algorithm/minmax
|
|
||||||
: [ run
|
|
||||||
minmax_element_test.cpp
|
|
||||||
: :
|
|
||||||
:
|
|
||||||
: minmax_element
|
|
||||||
]
|
|
||||||
[ run
|
|
||||||
minmax_test.cpp
|
|
||||||
: :
|
|
||||||
:
|
|
||||||
: minmax
|
|
||||||
]
|
|
||||||
;
|
|
||||||
}
|
|
@ -10,7 +10,7 @@
|
|||||||
import toolset ;
|
import toolset ;
|
||||||
toolset.using doxygen ;
|
toolset.using doxygen ;
|
||||||
|
|
||||||
boostbook string_algo : string_algo.xml ;
|
boostbook string_algo : string_algo.xml autodoc ;
|
||||||
|
|
||||||
doxygen autodoc
|
doxygen autodoc
|
||||||
:
|
:
|
||||||
@ -31,6 +31,7 @@ doxygen autodoc
|
|||||||
[ glob ../../../../boost/algorithm/string/trim.hpp ]
|
[ glob ../../../../boost/algorithm/string/trim.hpp ]
|
||||||
[ glob ../../../../boost/algorithm/string/predicate.hpp ]
|
[ glob ../../../../boost/algorithm/string/predicate.hpp ]
|
||||||
[ glob ../../../../boost/algorithm/string/split.hpp ]
|
[ glob ../../../../boost/algorithm/string/split.hpp ]
|
||||||
|
[ glob ../../../../boost/algorithm/string/iter_find.hpp ]
|
||||||
[ glob ../../../../boost/algorithm/string/erase.hpp ]
|
[ glob ../../../../boost/algorithm/string/erase.hpp ]
|
||||||
[ glob ../../../../boost/algorithm/string/join.hpp ]
|
[ glob ../../../../boost/algorithm/string/join.hpp ]
|
||||||
[ glob ../../../../boost/algorithm/string/replace.hpp ]
|
[ glob ../../../../boost/algorithm/string/replace.hpp ]
|
||||||
|
@ -1,6 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
||||||
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
||||||
|
|
||||||
|
<!-- Copyright (c) 2002-2006 Pavol Droba.
|
||||||
|
Subject to the Boost Software License, Version 1.0.
|
||||||
|
(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
-->
|
||||||
|
|
||||||
<section id="string_algo.concept" last-revision="$Date$">
|
<section id="string_algo.concept" last-revision="$Date$">
|
||||||
<title>Concepts</title>
|
<title>Concepts</title>
|
||||||
|
|
||||||
|
@ -1,6 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
||||||
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
||||||
|
|
||||||
|
<!-- Copyright (c) 2002-2006 Pavol Droba.
|
||||||
|
Subject to the Boost Software License, Version 1.0.
|
||||||
|
(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
-->
|
||||||
|
|
||||||
<section id="string_algo.credits" last-revision="$Date$">
|
<section id="string_algo.credits" last-revision="$Date$">
|
||||||
<title>Credits</title>
|
<title>Credits</title>
|
||||||
<section id="string_algo.ack">
|
<section id="string_algo.ack">
|
||||||
|
@ -1,6 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
||||||
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Copyright (c) 2002-2006 Pavol Droba.
|
||||||
|
Subject to the Boost Software License, Version 1.0.
|
||||||
|
(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
-->
|
||||||
|
|
||||||
<section id="string_algo.design" last-revision="$Date$">
|
<section id="string_algo.design" last-revision="$Date$">
|
||||||
<title>Design Topics</title>
|
<title>Design Topics</title>
|
||||||
|
|
||||||
@ -210,7 +217,7 @@
|
|||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
For more information about the exception safety topics, follow this
|
For more information about the exception safety topics, follow this
|
||||||
<ulink url="../../more/generic_exception_safety.html">link</ulink>
|
<ulink url="http://www.boost.org/more/generic_exception_safety.html">link</ulink>
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
@ -1,6 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
||||||
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
||||||
|
|
||||||
|
<!-- Copyright (c) 2002-2006 Pavol Droba.
|
||||||
|
Subject to the Boost Software License, Version 1.0.
|
||||||
|
(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
-->
|
||||||
|
|
||||||
<section id="string_algo.env" last-revision="$Date$">
|
<section id="string_algo.env" last-revision="$Date$">
|
||||||
<title>Environment</title>
|
<title>Environment</title>
|
||||||
<section>
|
<section>
|
||||||
|
@ -1,6 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
||||||
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Copyright (c) 2002-2006 Pavol Droba.
|
||||||
|
Subject to the Boost Software License, Version 1.0.
|
||||||
|
(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
-->
|
||||||
|
|
||||||
<section id="string_algo.intro" last-revision="$Date$">
|
<section id="string_algo.intro" last-revision="$Date$">
|
||||||
<title>Introduction</title>
|
<title>Introduction</title>
|
||||||
|
|
||||||
|
@ -1,6 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
||||||
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
||||||
|
|
||||||
|
<!-- Copyright (c) 2002-2006 Pavol Droba.
|
||||||
|
Subject to the Boost Software License, Version 1.0.
|
||||||
|
(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
-->
|
||||||
|
|
||||||
<section id="string_algo.quickref" last-revision="$Date$">
|
<section id="string_algo.quickref" last-revision="$Date$">
|
||||||
<title>Quick Reference</title>
|
<title>Quick Reference</title>
|
||||||
|
|
||||||
@ -145,7 +151,7 @@
|
|||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry><code>lexicographical_compare</code></entry>
|
<entry><code>lexicographical_compare</code></entry>
|
||||||
<entry>Check if a string is lexicographicaly less then another one</entry>
|
<entry>Check if a string is lexicographically less then another one</entry>
|
||||||
<entry>
|
<entry>
|
||||||
<functionname>lexicographical_compare()</functionname>
|
<functionname>lexicographical_compare()</functionname>
|
||||||
<sbr/>
|
<sbr/>
|
||||||
@ -428,7 +434,7 @@
|
|||||||
<functionname>find_all_regex()</functionname>
|
<functionname>find_all_regex()</functionname>
|
||||||
</entry>
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>split</entry>
|
<entry>split</entry>
|
||||||
<entry>Split input into parts</entry>
|
<entry>Split input into parts</entry>
|
||||||
<entry>
|
<entry>
|
||||||
@ -436,7 +442,21 @@
|
|||||||
<sbr/>
|
<sbr/>
|
||||||
<functionname>split_regex()</functionname>
|
<functionname>split_regex()</functionname>
|
||||||
</entry>
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>iter_find</entry>
|
||||||
|
<entry>Iteratively apply the finder to the input to find all matching substrings</entry>
|
||||||
|
<entry>
|
||||||
|
<functionname>iter_find()</functionname>
|
||||||
|
</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>iter_split</entry>
|
||||||
|
<entry>Use the finder to find matching substrings in the input and use them as separators to split the input into parts</entry>
|
||||||
|
<entry>
|
||||||
|
<functionname>iter_split()</functionname>
|
||||||
|
</entry>
|
||||||
|
</row>
|
||||||
</tbody>
|
</tbody>
|
||||||
</tgroup>
|
</tgroup>
|
||||||
</table>
|
</table>
|
||||||
|
@ -1,6 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
||||||
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
||||||
|
|
||||||
|
<!-- Copyright (c) 2002-2006 Pavol Droba.
|
||||||
|
Subject to the Boost Software License, Version 1.0.
|
||||||
|
(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
-->
|
||||||
|
|
||||||
<section id="string_algo.rationale" last-revision="$Date$">
|
<section id="string_algo.rationale" last-revision="$Date$">
|
||||||
<title>Rationale</title>
|
<title>Rationale</title>
|
||||||
|
|
||||||
|
@ -1,7 +1,17 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
||||||
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
||||||
|
|
||||||
|
<!-- Copyright (c) 2002-2006 Pavol Droba.
|
||||||
|
Subject to the Boost Software License, Version 1.0.
|
||||||
|
(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
-->
|
||||||
|
|
||||||
<section id="string_algo.release_notes" last-revision="$Date$">
|
<section id="string_algo.release_notes" last-revision="$Date$">
|
||||||
|
|
||||||
|
<using-namespace name="boost"/>
|
||||||
|
<using-namespace name="boost::algorithm"/>
|
||||||
|
|
||||||
<title>Release Notes</title>
|
<title>Release Notes</title>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
@ -13,5 +23,23 @@
|
|||||||
<para><emphasis role="bold">1.33</emphasis></para>
|
<para><emphasis role="bold">1.33</emphasis></para>
|
||||||
<para>Internal version of collection traits removed, library adapted to Boost.Range</para>
|
<para>Internal version of collection traits removed, library adapted to Boost.Range</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis role="bold">1.34</emphasis></para>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<functionname>lexicographical_compare()</functionname>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<functionname>join()</functionname> and <functionname>join_if()</functionname>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
New comparison predicates <code>is_less</code>, <code>is_not_greater</code>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
Negative indexes support (like Perl) in various algorihtms
|
||||||
|
(<code>*_head/tail</code>, <code>*_nth</code>).
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
|
@ -1,6 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
||||||
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
||||||
|
|
||||||
|
<!-- Copyright (c) 2002-2006 Pavol Droba.
|
||||||
|
Subject to the Boost Software License, Version 1.0.
|
||||||
|
(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
-->
|
||||||
|
|
||||||
<library name="String Algorithms" dirname="algorithm/string" xmlns:xi="http://www.w3.org/2001/XInclude"
|
<library name="String Algorithms" dirname="algorithm/string" xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||||
id="string_algo" last-revision="$Date$">
|
id="string_algo" last-revision="$Date$">
|
||||||
<libraryinfo>
|
<libraryinfo>
|
||||||
@ -38,7 +44,7 @@
|
|||||||
<xi:include href="quickref.xml"/>
|
<xi:include href="quickref.xml"/>
|
||||||
<xi:include href="design.xml"/>
|
<xi:include href="design.xml"/>
|
||||||
<xi:include href="concept.xml"/>
|
<xi:include href="concept.xml"/>
|
||||||
<xi:include href="autodoc.boostbook"/>
|
<xi:include href="autodoc.xml"/>
|
||||||
<xi:include href="rationale.xml"/>
|
<xi:include href="rationale.xml"/>
|
||||||
<xi:include href="environment.xml"/>
|
<xi:include href="environment.xml"/>
|
||||||
<xi:include href="credits.xml"/>
|
<xi:include href="credits.xml"/>
|
||||||
|
@ -1,6 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
||||||
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Copyright (c) 2002-2006 Pavol Droba.
|
||||||
|
Subject to the Boost Software License, Version 1.0.
|
||||||
|
(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
<section id="string_algo.usage" last-revision="$Date$">
|
<section id="string_algo.usage" last-revision="$Date$">
|
||||||
<title>Usage</title>
|
<title>Usage</title>
|
||||||
|
|
||||||
@ -283,9 +291,9 @@
|
|||||||
// aBC
|
// aBC
|
||||||
|
|
||||||
typedef split_iterator<string::iterator> string_split_iterator;
|
typedef split_iterator<string::iterator> string_split_iterator;
|
||||||
for(string_find_iterator It=
|
for(string_split_iterator It=
|
||||||
make_split_iterator(str1, first_finder("-*-", is_iequal()));
|
make_split_iterator(str1, first_finder("-*-", is_iequal()));
|
||||||
It!=string_find_iterator();
|
It!=string_split_iterator();
|
||||||
++It)
|
++It)
|
||||||
{
|
{
|
||||||
cout << copy_range<std::string>(*It) << endl;
|
cout << copy_range<std::string>(*It) << endl;
|
||||||
|
@ -7,69 +7,12 @@
|
|||||||
#
|
#
|
||||||
# See http://www.boost.org for updates, documentation, and revision history.
|
# See http://www.boost.org for updates, documentation, and revision history.
|
||||||
|
|
||||||
subproject libs/algorithm/string/example ;
|
|
||||||
|
|
||||||
exe conv_example
|
exe conv_example : conv_example.cpp ;
|
||||||
:
|
exe predicate_example : predicate_example.cpp ;
|
||||||
conv_example.cpp
|
exe find_example : find_example.cpp ;
|
||||||
:
|
exe replace_example : replace_example.cpp ;
|
||||||
<include>$(BOOST_ROOT)
|
exe rle_example : rle_example.cpp ;
|
||||||
:
|
exe trim_example : trim_example.cpp ;
|
||||||
;
|
exe regex_example : regex_example.cpp /boost/regex//boost_regex ;
|
||||||
|
exe split_example : split_example.cpp ;
|
||||||
exe predicate_example
|
|
||||||
:
|
|
||||||
predicate_example.cpp
|
|
||||||
:
|
|
||||||
<include>$(BOOST_ROOT)
|
|
||||||
:
|
|
||||||
;
|
|
||||||
|
|
||||||
exe find_example
|
|
||||||
:
|
|
||||||
find_example.cpp
|
|
||||||
:
|
|
||||||
<include>$(BOOST_ROOT)
|
|
||||||
:
|
|
||||||
;
|
|
||||||
|
|
||||||
exe replace_example
|
|
||||||
:
|
|
||||||
replace_example.cpp
|
|
||||||
:
|
|
||||||
<include>$(BOOST_ROOT)
|
|
||||||
:
|
|
||||||
;
|
|
||||||
|
|
||||||
exe rle_example
|
|
||||||
:
|
|
||||||
rle_example.cpp
|
|
||||||
:
|
|
||||||
<include>$(BOOST_ROOT)
|
|
||||||
:
|
|
||||||
;
|
|
||||||
|
|
||||||
exe trim_example
|
|
||||||
:
|
|
||||||
trim_example.cpp
|
|
||||||
:
|
|
||||||
<include>$(BOOST_ROOT)
|
|
||||||
:
|
|
||||||
;
|
|
||||||
|
|
||||||
exe regex_example
|
|
||||||
:
|
|
||||||
regex_example.cpp
|
|
||||||
<lib>../../../regex/build/boost_regex
|
|
||||||
:
|
|
||||||
<include>$(BOOST_ROOT)
|
|
||||||
:
|
|
||||||
;
|
|
||||||
|
|
||||||
exe split_example
|
|
||||||
:
|
|
||||||
split_example.cpp
|
|
||||||
:
|
|
||||||
<include>$(BOOST_ROOT)
|
|
||||||
:
|
|
||||||
;
|
|
@ -4,6 +4,11 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
Automatic redirection failed, please go to
|
Automatic redirection failed, please go to
|
||||||
<a href="../../../doc/html/string_algo.html">../../doc/html/string_algo.html</a>
|
<a href="../../../doc/html/string_algo.html">../../doc/html/string_algo.html</a>
|
||||||
|
<hr>
|
||||||
|
<p><EFBFBD> Copyright Beman Dawes, 2001</p>
|
||||||
|
<p>Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
|
file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or copy
|
||||||
|
at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@ -1,85 +0,0 @@
|
|||||||
# Boost string_algo library test suite Jamfile ----------------------------
|
|
||||||
#
|
|
||||||
# Copyright Pavol Droba 2002-2003. Use, modification and
|
|
||||||
# distribution is subject to the Boost Software License, Version
|
|
||||||
# 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
|
||||||
# http://www.boost.org/LICENSE_1_0.txt)
|
|
||||||
#
|
|
||||||
# See http://www.boost.org for updates, documentation, and revision history.
|
|
||||||
|
|
||||||
subproject libs/algorithm/string/test ;
|
|
||||||
|
|
||||||
# bring in rules for testing
|
|
||||||
import testing ;
|
|
||||||
|
|
||||||
# Make tests run by default.
|
|
||||||
DEPENDS all : test ;
|
|
||||||
|
|
||||||
{
|
|
||||||
test-suite algorithm/string
|
|
||||||
: [ run
|
|
||||||
trim_test.cpp
|
|
||||||
: :
|
|
||||||
:
|
|
||||||
std::locale-support
|
|
||||||
std::facet-support
|
|
||||||
: trim
|
|
||||||
]
|
|
||||||
[ run
|
|
||||||
conv_test.cpp
|
|
||||||
: :
|
|
||||||
:
|
|
||||||
std::locale-support
|
|
||||||
std::facet-support
|
|
||||||
: conv
|
|
||||||
]
|
|
||||||
[ run
|
|
||||||
predicate_test.cpp
|
|
||||||
: :
|
|
||||||
:
|
|
||||||
std::locale-support
|
|
||||||
std::facet-support
|
|
||||||
: predicate
|
|
||||||
]
|
|
||||||
[ run
|
|
||||||
find_test.cpp
|
|
||||||
: :
|
|
||||||
:
|
|
||||||
std::locale-support
|
|
||||||
std::facet-support
|
|
||||||
: find
|
|
||||||
]
|
|
||||||
[ run
|
|
||||||
split_test.cpp
|
|
||||||
: :
|
|
||||||
:
|
|
||||||
std::locale-support
|
|
||||||
std::facet-support
|
|
||||||
: split
|
|
||||||
]
|
|
||||||
[ run
|
|
||||||
join_test.cpp
|
|
||||||
: :
|
|
||||||
:
|
|
||||||
std::locale-support
|
|
||||||
std::facet-support
|
|
||||||
: join
|
|
||||||
]
|
|
||||||
[ run
|
|
||||||
replace_test.cpp
|
|
||||||
: :
|
|
||||||
:
|
|
||||||
std::locale-support
|
|
||||||
std::facet-support
|
|
||||||
: replace
|
|
||||||
]
|
|
||||||
[ run
|
|
||||||
regex_test.cpp
|
|
||||||
<lib>../../../regex/build/boost_regex
|
|
||||||
: :
|
|
||||||
:
|
|
||||||
: regex
|
|
||||||
]
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
@ -122,6 +122,25 @@ void iterator_test()
|
|||||||
BOOST_CHECK( tokens[2]==string("") );
|
BOOST_CHECK( tokens[2]==string("") );
|
||||||
BOOST_CHECK( tokens[3]==string("xx") );
|
BOOST_CHECK( tokens[3]==string("xx") );
|
||||||
BOOST_CHECK( tokens[4]==string("abb") );
|
BOOST_CHECK( tokens[4]==string("abb") );
|
||||||
|
|
||||||
|
find_iterator<string::iterator> fiter=make_find_iterator(str1, first_finder("xx"));
|
||||||
|
BOOST_CHECK(equals(*fiter, "xx"));
|
||||||
|
++fiter;
|
||||||
|
BOOST_CHECK(equals(*fiter, "xx"));
|
||||||
|
++fiter;
|
||||||
|
BOOST_CHECK(fiter==find_iterator<string::iterator>());
|
||||||
|
|
||||||
|
split_iterator<string::iterator> siter=make_split_iterator(str1, token_finder(is_any_of("-"), token_compress_on));
|
||||||
|
BOOST_CHECK(equals(*siter, "xx"));
|
||||||
|
++siter;
|
||||||
|
BOOST_CHECK(equals(*siter, "abc"));
|
||||||
|
++siter;
|
||||||
|
BOOST_CHECK(equals(*siter, "xx"));
|
||||||
|
++siter;
|
||||||
|
BOOST_CHECK(equals(*siter, "abb"));
|
||||||
|
++siter;
|
||||||
|
BOOST_CHECK(siter==split_iterator<string::iterator>());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// test main
|
// test main
|
||||||
|
Reference in New Issue
Block a user