diff --git a/include/boost/algorithm/minmax.hpp b/include/boost/algorithm/minmax.hpp index 2b5101a..053a7d6 100644 --- a/include/boost/algorithm/minmax.hpp +++ b/include/boost/algorithm/minmax.hpp @@ -1,7 +1,7 @@ // (C) Copyright Herve Bronnimann 2004. -// Use, modification and distribution are 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) +// +// Distributed under 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) /* Revision history: diff --git a/include/boost/algorithm/minmax_element.hpp b/include/boost/algorithm/minmax_element.hpp index 6c88b63..0d2efd8 100644 --- a/include/boost/algorithm/minmax_element.hpp +++ b/include/boost/algorithm/minmax_element.hpp @@ -1,7 +1,7 @@ // (C) Copyright Herve Bronnimann 2004. -// Use, modification and distribution are 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) +// +// Distributed under 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) /* Revision history: diff --git a/include/boost/algorithm/string.hpp b/include/boost/algorithm/string.hpp index 1a664f1..a2f943e 100644 --- a/include/boost/algorithm/string.hpp +++ b/include/boost/algorithm/string.hpp @@ -1,11 +1,12 @@ // Boost string_algo library string_algo.hpp header file ---------------------------// -// Copyright Pavol Droba 2002-2004. 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) +// Copyright Pavol Droba 2002-2004. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_ALGO_HPP #define BOOST_STRING_ALGO_HPP @@ -20,7 +21,6 @@ #include #include #include -#include #include #include #include diff --git a/include/boost/algorithm/string/case_conv.hpp b/include/boost/algorithm/string/case_conv.hpp index 5f61bf1..536c022 100644 --- a/include/boost/algorithm/string/case_conv.hpp +++ b/include/boost/algorithm/string/case_conv.hpp @@ -1,11 +1,12 @@ // Boost string_algo library case_conv.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_CASE_CONV_HPP #define BOOST_STRING_CASE_CONV_HPP @@ -15,6 +16,7 @@ #include #include +#include #include #include #include @@ -55,11 +57,10 @@ namespace boost { const RangeT& Input, const std::locale& Loc=std::locale()) { - return std::transform( - begin(Input), - end(Input), - Output, - ::boost::algorithm::detail::to_lowerF< + return ::boost::algorithm::detail::transform_range_copy( + Output, + as_literal(Input), + ::boost::algorithm::detail::to_lowerF< typename range_value::type >(Loc)); } @@ -72,15 +73,10 @@ namespace boost { const SequenceT& Input, const std::locale& Loc=std::locale()) { - return SequenceT( - make_transform_iterator( - begin(Input), - ::boost::algorithm::detail::to_lowerF< - typename range_value::type >(Loc)), - make_transform_iterator( - end(Input), - ::boost::algorithm::detail::to_lowerF< - typename range_value::type >(Loc))); + return ::boost::algorithm::detail::transform_range_copy( + Input, + ::boost::algorithm::detail::to_lowerF< + typename range_value::type >(Loc)); } //! Convert to lower case @@ -96,10 +92,8 @@ namespace boost { WritableRangeT& Input, const std::locale& Loc=std::locale()) { - std::transform( - begin(Input), - end(Input), - begin(Input), + ::boost::algorithm::detail::transform_range( + as_literal(Input), ::boost::algorithm::detail::to_lowerF< typename range_value::type >(Loc)); } @@ -128,11 +122,10 @@ namespace boost { const RangeT& Input, const std::locale& Loc=std::locale()) { - return std::transform( - begin(Input), - end(Input), - Output, - ::boost::algorithm::detail::to_upperF< + return ::boost::algorithm::detail::transform_range_copy( + Output, + as_literal(Input), + ::boost::algorithm::detail::to_upperF< typename range_value::type >(Loc)); } @@ -145,16 +138,10 @@ namespace boost { const SequenceT& Input, const std::locale& Loc=std::locale()) { - return SequenceT( - make_transform_iterator( - begin(Input), - ::boost::algorithm::detail::to_upperF< - typename range_value::type >(Loc)), - make_transform_iterator( - end(Input), - ::boost::algorithm::detail::to_upperF< - typename range_value::type >(Loc))); - + return ::boost::algorithm::detail::transform_range_copy( + Input, + ::boost::algorithm::detail::to_upperF< + typename range_value::type >(Loc)); } //! Convert to upper case @@ -170,10 +157,8 @@ namespace boost { WritableRangeT& Input, const std::locale& Loc=std::locale()) { - std::transform( - begin(Input), - end(Input), - begin(Input), + ::boost::algorithm::detail::transform_range( + as_literal(Input), ::boost::algorithm::detail::to_upperF< typename range_value::type >(Loc)); } diff --git a/include/boost/algorithm/string/classification.hpp b/include/boost/algorithm/string/classification.hpp index 232050f..a2e2b4d 100644 --- a/include/boost/algorithm/string/classification.hpp +++ b/include/boost/algorithm/string/classification.hpp @@ -1,11 +1,12 @@ // Boost string_algo library classification.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_CLASSIFICATION_HPP #define BOOST_STRING_CLASSIFICATION_HPP @@ -13,9 +14,11 @@ #include #include #include +#include #include #include + /*! \file Classification predicates are included in the library to give some more convenience when using algorithms like \c trim() and \c all(). @@ -200,7 +203,7 @@ namespace boost { is_any_of( const RangeT& Set ) { return detail::is_any_ofF< - BOOST_STRING_TYPENAME range_value::type>(Set); + BOOST_STRING_TYPENAME range_value::type>(as_literal(Set)); } //! is_from_range predicate diff --git a/include/boost/algorithm/string/compare.hpp b/include/boost/algorithm/string/compare.hpp index c2a0bba..734303a 100644 --- a/include/boost/algorithm/string/compare.hpp +++ b/include/boost/algorithm/string/compare.hpp @@ -1,11 +1,12 @@ // Boost string_algo library compare.hpp header file -------------------------// -// Copyright Pavol Droba 2002-2006. 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) +// Copyright Pavol Droba 2002-2006. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_COMPARE_HPP #define BOOST_STRING_COMPARE_HPP diff --git a/include/boost/algorithm/string/concept.hpp b/include/boost/algorithm/string/concept.hpp index 1efda27..3ebc88c 100644 --- a/include/boost/algorithm/string/concept.hpp +++ b/include/boost/algorithm/string/concept.hpp @@ -1,11 +1,12 @@ // Boost string_algo library concept.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_CONCEPT_HPP #define BOOST_STRING_CONCEPT_HPP diff --git a/include/boost/algorithm/string/config.hpp b/include/boost/algorithm/string/config.hpp index da28643..559750a 100644 --- a/include/boost/algorithm/string/config.hpp +++ b/include/boost/algorithm/string/config.hpp @@ -1,11 +1,12 @@ // Boost string_algo library config.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_CONFIG_HPP #define BOOST_STRING_CONFIG_HPP diff --git a/include/boost/algorithm/string/constants.hpp b/include/boost/algorithm/string/constants.hpp index d9dbe0d..6ed70ef 100644 --- a/include/boost/algorithm/string/constants.hpp +++ b/include/boost/algorithm/string/constants.hpp @@ -1,11 +1,12 @@ // Boost string_algo library constants.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_CONSTANTS_HPP #define BOOST_STRING_CONSTANTS_HPP diff --git a/include/boost/algorithm/string/detail/case_conv.hpp b/include/boost/algorithm/string/detail/case_conv.hpp index ffc4514..0eaad19 100644 --- a/include/boost/algorithm/string/detail/case_conv.hpp +++ b/include/boost/algorithm/string/detail/case_conv.hpp @@ -1,11 +1,12 @@ // Boost string_algo library string_funct.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_CASE_CONV_DETAIL_HPP #define BOOST_STRING_CASE_CONV_DETAIL_HPP @@ -60,6 +61,49 @@ namespace boost { const std::locale& m_Loc; }; +// algorithm implementation ------------------------------------------------------------------------- + + // Transform a range + template + 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 + void transform_range( + const RangeT& Input, + FunctorT Functor) + { + std::transform( + begin(Input), + end(Input), + begin(Input), + Functor); + } + + template + 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 algorithm } // namespace boost diff --git a/include/boost/algorithm/string/detail/classification.hpp b/include/boost/algorithm/string/detail/classification.hpp index c950bfa..d3139ad 100644 --- a/include/boost/algorithm/string/detail/classification.hpp +++ b/include/boost/algorithm/string/detail/classification.hpp @@ -1,11 +1,12 @@ // Boost string_algo library classification.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_CLASSIFICATION_DETAIL_HPP #define BOOST_STRING_CLASSIFICATION_DETAIL_HPP diff --git a/include/boost/algorithm/string/detail/find_format.hpp b/include/boost/algorithm/string/detail/find_format.hpp index 2ba7ba2..f1dcc0c 100644 --- a/include/boost/algorithm/string/detail/find_format.hpp +++ b/include/boost/algorithm/string/detail/find_format.hpp @@ -1,11 +1,12 @@ // Boost string_algo library find_format.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_FIND_FORMAT_DETAIL_HPP #define BOOST_STRING_FIND_FORMAT_DETAIL_HPP diff --git a/include/boost/algorithm/string/detail/find_format_all.hpp b/include/boost/algorithm/string/detail/find_format_all.hpp index a6be0b6..28c60b8 100644 --- a/include/boost/algorithm/string/detail/find_format_all.hpp +++ b/include/boost/algorithm/string/detail/find_format_all.hpp @@ -1,11 +1,12 @@ // Boost string_algo library find_format_all.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP #define BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP diff --git a/include/boost/algorithm/string/detail/find_format_store.hpp b/include/boost/algorithm/string/detail/find_format_store.hpp index a1afc55..6dbbcba 100644 --- a/include/boost/algorithm/string/detail/find_format_store.hpp +++ b/include/boost/algorithm/string/detail/find_format_store.hpp @@ -1,11 +1,12 @@ // Boost string_algo library find_format_store.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP #define BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP diff --git a/include/boost/algorithm/string/detail/find_iterator.hpp b/include/boost/algorithm/string/detail/find_iterator.hpp index ebfd59a..c76993a 100644 --- a/include/boost/algorithm/string/detail/find_iterator.hpp +++ b/include/boost/algorithm/string/detail/find_iterator.hpp @@ -1,11 +1,12 @@ // Boost string_algo library find_iterator.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_FIND_ITERATOR_DETAIL_HPP #define BOOST_STRING_FIND_ITERATOR_DETAIL_HPP diff --git a/include/boost/algorithm/string/detail/finder.hpp b/include/boost/algorithm/string/detail/finder.hpp index cd6d6f7..194296e 100644 --- a/include/boost/algorithm/string/detail/finder.hpp +++ b/include/boost/algorithm/string/detail/finder.hpp @@ -1,11 +1,12 @@ // Boost string_algo library finder.hpp header file ---------------------------// -// Copyright Pavol Droba 2002-2006. 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) +// Copyright Pavol Droba 2002-2006. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_FINDER_DETAIL_HPP #define BOOST_STRING_FINDER_DETAIL_HPP @@ -18,6 +19,7 @@ #include #include #include +#include namespace boost { namespace algorithm { diff --git a/include/boost/algorithm/string/detail/finder_regex.hpp b/include/boost/algorithm/string/detail/finder_regex.hpp index 7f178da..1eeda01 100644 --- a/include/boost/algorithm/string/detail/finder_regex.hpp +++ b/include/boost/algorithm/string/detail/finder_regex.hpp @@ -1,11 +1,12 @@ // Boost string_algo library find_regex.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_FINDER_REGEX_DETAIL_HPP #define BOOST_STRING_FINDER_REGEX_DETAIL_HPP diff --git a/include/boost/algorithm/string/detail/formatter.hpp b/include/boost/algorithm/string/detail/formatter.hpp index 367bf67..2af1573 100644 --- a/include/boost/algorithm/string/detail/formatter.hpp +++ b/include/boost/algorithm/string/detail/formatter.hpp @@ -1,9 +1,10 @@ // Boost string_algo library formatter.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. diff --git a/include/boost/algorithm/string/detail/formatter_regex.hpp b/include/boost/algorithm/string/detail/formatter_regex.hpp index 0f28fd2..5f26407 100644 --- a/include/boost/algorithm/string/detail/formatter_regex.hpp +++ b/include/boost/algorithm/string/detail/formatter_regex.hpp @@ -1,11 +1,12 @@ // Boost string_algo library formatter_regex.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_FORMATTER_REGEX_DETAIL_HPP #define BOOST_STRING_FORMATTER_REGEX_DETAIL_HPP diff --git a/include/boost/algorithm/string/detail/predicate.hpp b/include/boost/algorithm/string/detail/predicate.hpp index ea1794d..a04b5b1 100644 --- a/include/boost/algorithm/string/detail/predicate.hpp +++ b/include/boost/algorithm/string/detail/predicate.hpp @@ -1,11 +1,12 @@ // Boost string_algo library predicate.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_PREDICATE_DETAIL_HPP #define BOOST_STRING_PREDICATE_DETAIL_HPP diff --git a/include/boost/algorithm/string/detail/replace_storage.hpp b/include/boost/algorithm/string/detail/replace_storage.hpp index 248eb31..759036e 100644 --- a/include/boost/algorithm/string/detail/replace_storage.hpp +++ b/include/boost/algorithm/string/detail/replace_storage.hpp @@ -1,11 +1,12 @@ // Boost string_algo library replace_storage.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP #define BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP diff --git a/include/boost/algorithm/string/detail/sequence.hpp b/include/boost/algorithm/string/detail/sequence.hpp index 03c7fd0..87d7eab 100644 --- a/include/boost/algorithm/string/detail/sequence.hpp +++ b/include/boost/algorithm/string/detail/sequence.hpp @@ -1,11 +1,12 @@ // Boost string_algo library sequence.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_DETAIL_SEQUENCE_HPP #define BOOST_STRING_DETAIL_SEQUENCE_HPP diff --git a/include/boost/algorithm/string/detail/trim.hpp b/include/boost/algorithm/string/detail/trim.hpp index 502eca3..8e5c0fb 100644 --- a/include/boost/algorithm/string/detail/trim.hpp +++ b/include/boost/algorithm/string/detail/trim.hpp @@ -1,11 +1,12 @@ // Boost string_algo library trim.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_TRIM_DETAIL_HPP #define BOOST_STRING_TRIM_DETAIL_HPP diff --git a/include/boost/algorithm/string/detail/util.hpp b/include/boost/algorithm/string/detail/util.hpp index 09663bd..7e8471f 100644 --- a/include/boost/algorithm/string/detail/util.hpp +++ b/include/boost/algorithm/string/detail/util.hpp @@ -1,11 +1,12 @@ // Boost string_algo library util.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_UTIL_DETAIL_HPP #define BOOST_STRING_UTIL_DETAIL_HPP diff --git a/include/boost/algorithm/string/erase.hpp b/include/boost/algorithm/string/erase.hpp index 3f6eae5..b50323b 100644 --- a/include/boost/algorithm/string/erase.hpp +++ b/include/boost/algorithm/string/erase.hpp @@ -1,11 +1,12 @@ // Boost string_algo library erase.hpp header file ---------------------------// -// Copyright Pavol Droba 2002-2006. 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) +// Copyright Pavol Droba 2002-2006. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_ERASE_HPP #define BOOST_STRING_ERASE_HPP diff --git a/include/boost/algorithm/string/find.hpp b/include/boost/algorithm/string/find.hpp index 8c49ebe..1f7202d 100644 --- a/include/boost/algorithm/string/find.hpp +++ b/include/boost/algorithm/string/find.hpp @@ -1,11 +1,12 @@ // Boost string_algo library find.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_FIND_HPP #define BOOST_STRING_FIND_HPP @@ -16,8 +17,7 @@ #include #include #include -#include -#include +#include #include #include @@ -48,19 +48,21 @@ namespace boost { */ template inline iterator_range< - BOOST_STRING_TYPENAME range_result_iterator::type> + BOOST_STRING_TYPENAME range_iterator::type> find( RangeT& Input, - FinderT Finder) + const FinderT& Finder) { - return Finder(begin(Input),end(Input)); + iterator_range::type> lit_input(as_literal(Input)); + + return Finder(begin(lit_input),end(lit_input)); } // find_first -----------------------------------------------// //! 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 Search A substring to be searched for. @@ -74,13 +76,12 @@ namespace boost { */ template inline iterator_range< - BOOST_STRING_TYPENAME range_result_iterator::type> + BOOST_STRING_TYPENAME range_iterator::type> find_first( Range1T& Input, const Range2T& Search) { - return first_finder(Search)( - begin(Input),end(Input)); + return find(Input, first_finder(Search)); } //! Find first algorithm ( case insensitive ) @@ -101,21 +102,20 @@ namespace boost { */ template inline iterator_range< - BOOST_STRING_TYPENAME range_result_iterator::type> + BOOST_STRING_TYPENAME range_iterator::type> ifind_first( Range1T& Input, const Range2T& Search, const std::locale& Loc=std::locale()) { - return first_finder(Search,is_iequal(Loc))( - begin(Input),end(Input)); + return find(Input, first_finder(Search,is_iequal(Loc))); } // find_last -----------------------------------------------// //! 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 Search A substring to be searched for. @@ -129,13 +129,12 @@ namespace boost { */ template inline iterator_range< - BOOST_STRING_TYPENAME range_result_iterator::type> + BOOST_STRING_TYPENAME range_iterator::type> find_last( Range1T& Input, const Range2T& Search) { - return last_finder(Search)( - begin(Input),end(Input)); + return find(Input, last_finder(Search)); } //! Find last algorithm ( case insensitive ) @@ -156,21 +155,20 @@ namespace boost { */ template inline iterator_range< - BOOST_STRING_TYPENAME range_result_iterator::type> + BOOST_STRING_TYPENAME range_iterator::type> ifind_last( Range1T& Input, const Range2T& Search, const std::locale& Loc=std::locale()) { - return last_finder(Search, is_iequal(Loc))( - begin(Input),end(Input)); + return find(Input, last_finder(Search, is_iequal(Loc))); } // find_nth ----------------------------------------------------------------------// //! 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. \param Input A string which will be searched. @@ -185,14 +183,13 @@ namespace boost { */ template inline iterator_range< - BOOST_STRING_TYPENAME range_result_iterator::type> + BOOST_STRING_TYPENAME range_iterator::type> find_nth( Range1T& Input, const Range2T& Search, int Nth) { - return nth_finder(Search,Nth)( - begin(Input),end(Input)); + return find(Input, nth_finder(Search,Nth)); } //! Find n-th algorithm ( case insensitive ). @@ -216,15 +213,14 @@ namespace boost { */ template inline iterator_range< - BOOST_STRING_TYPENAME range_result_iterator::type> + BOOST_STRING_TYPENAME range_iterator::type> ifind_nth( Range1T& Input, const Range2T& Search, int Nth, const std::locale& Loc=std::locale()) { - return nth_finder(Search,Nth,is_iequal(Loc))( - begin(Input),end(Input)); + return find(Input, nth_finder(Search,Nth,is_iequal(Loc))); } // find_head ----------------------------------------------------------------------// @@ -249,13 +245,12 @@ namespace boost { */ template inline iterator_range< - BOOST_STRING_TYPENAME range_result_iterator::type> + BOOST_STRING_TYPENAME range_iterator::type> find_head( RangeT& Input, int N) { - return head_finder(N)( - begin(Input),end(Input)); + return find(Input, head_finder(N)); } // find_tail ----------------------------------------------------------------------// @@ -281,13 +276,12 @@ namespace boost { */ template inline iterator_range< - BOOST_STRING_TYPENAME range_result_iterator::type> + BOOST_STRING_TYPENAME range_iterator::type> find_tail( RangeT& Input, int N) { - return tail_finder(N)( - begin(Input),end(Input)); + return find(Input, tail_finder(N)); } // find_token --------------------------------------------------------------------// @@ -311,14 +305,13 @@ namespace boost { */ template inline iterator_range< - BOOST_STRING_TYPENAME range_result_iterator::type> + BOOST_STRING_TYPENAME range_iterator::type> find_token( RangeT& Input, PredicateT Pred, token_compress_mode_type eCompress=token_compress_off) { - return token_finder(Pred, eCompress)( - begin(Input),end(Input)); + return find(Input, token_finder(Pred, eCompress)); } } // namespace algorithm diff --git a/include/boost/algorithm/string/find_format.hpp b/include/boost/algorithm/string/find_format.hpp index 7a7d87b..cb3dd7c 100644 --- a/include/boost/algorithm/string/find_format.hpp +++ b/include/boost/algorithm/string/find_format.hpp @@ -1,11 +1,12 @@ // Boost string_algo library find_format.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_FIND_FORMAT_HPP #define BOOST_STRING_FIND_FORMAT_HPP @@ -16,6 +17,7 @@ #include #include #include +#include #include #include @@ -68,11 +70,13 @@ namespace boost { FormatterT, FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> >(); + iterator_range::type> lit_input(as_literal(Input)); + return detail::find_format_copy_impl( Output, - Input, + lit_input, Formatter, - Finder( begin(Input), end(Input) ) ); + Finder( begin(lit_input), end(lit_input) ) ); } //! Generic replace algorithm @@ -176,12 +180,14 @@ namespace boost { FormatterT, FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> >(); + iterator_range::type> lit_input(as_literal(Input)); + return detail::find_format_all_copy_impl( Output, - Input, + lit_input, Finder, Formatter, - Finder(begin(Input), end(Input))); + Finder(begin(lit_input), end(lit_input))); } //! Generic replace all algorithm diff --git a/include/boost/algorithm/string/find_iterator.hpp b/include/boost/algorithm/string/find_iterator.hpp index 26891dd..aba28d8 100644 --- a/include/boost/algorithm/string/find_iterator.hpp +++ b/include/boost/algorithm/string/find_iterator.hpp @@ -1,10 +1,12 @@ // Boost string_algo library find_iterator.hpp header file ---------------------------// -// Copyright Pavol Droba 2002-2004. 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. +// Copyright Pavol Droba 2002-2004. +// +// Distributed under 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. #ifndef BOOST_STRING_FIND_ITERATOR_HPP #define BOOST_STRING_FIND_ITERATOR_HPP @@ -16,7 +18,8 @@ #include #include #include -#include +#include +#include #include @@ -114,10 +117,12 @@ namespace boost { find_iterator( RangeT& Col, FinderT Finder ) : - detail::find_iterator_base(Finder,0), - m_Match(begin(Col),begin(Col)), - m_End(end(Col)) + detail::find_iterator_base(Finder,0) { + iterator_range::type> lit_col(as_literal(Col)); + m_Match=make_iterator_range(begin(lit_col), begin(lit_col)); + m_End=end(lit_col); + increment(); } @@ -180,13 +185,13 @@ namespace boost { */ template inline find_iterator< - BOOST_STRING_TYPENAME range_result_iterator::type> + BOOST_STRING_TYPENAME range_iterator::type> make_find_iterator( RangeT& Collection, FinderT Finder) { - return find_iterator::type>( - begin(Collection), end(Collection), Finder); + return find_iterator::type>( + Collection, Finder); } // split iterator -----------------------------------------------// @@ -278,11 +283,13 @@ namespace boost { RangeT& Col, FinderT Finder ) : detail::find_iterator_base(Finder,0), - m_Match(begin(Col),begin(Col)), - m_Next(begin(Col)), - m_End(end(Col)), m_bEof(false) { + iterator_range::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(); } @@ -356,13 +363,13 @@ namespace boost { */ template inline split_iterator< - BOOST_STRING_TYPENAME range_result_iterator::type> + BOOST_STRING_TYPENAME range_iterator::type> make_split_iterator( RangeT& Collection, FinderT Finder) { - return split_iterator::type>( - begin(Collection), end(Collection), Finder); + return split_iterator::type>( + Collection, Finder); } diff --git a/include/boost/algorithm/string/finder.hpp b/include/boost/algorithm/string/finder.hpp index 6a64369..c936ddb 100644 --- a/include/boost/algorithm/string/finder.hpp +++ b/include/boost/algorithm/string/finder.hpp @@ -1,11 +1,12 @@ // Boost string_algo library finder.hpp header file ---------------------------// -// Copyright Pavol Droba 2002-2006. 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) +// Copyright Pavol Droba 2002-2006. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_FINDER_HPP #define BOOST_STRING_FINDER_HPP @@ -45,35 +46,35 @@ namespace boost { \param Comp An element comparison predicate \return An instance of the \c first_finder object */ - template + template inline detail::first_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, + BOOST_STRING_TYPENAME range_const_iterator::type, is_equal> - first_finder( const ContainerT& Search ) + first_finder( const RangeT& Search ) { return detail::first_finderF< BOOST_STRING_TYPENAME - range_const_iterator::type, - is_equal>( Search, is_equal() ) ; + range_const_iterator::type, + is_equal>( as_literal(Search), is_equal() ) ; } //! "First" finder /*! \overload */ - template + template inline detail::first_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, + BOOST_STRING_TYPENAME range_const_iterator::type, PredicateT> first_finder( - const ContainerT& Search, PredicateT Comp ) + const RangeT& Search, PredicateT Comp ) { return detail::first_finderF< BOOST_STRING_TYPENAME - range_const_iterator::type, - PredicateT>( Search, Comp ); + range_const_iterator::type, + PredicateT>( as_literal(Search), Comp ); } //! "Last" finder @@ -86,33 +87,33 @@ namespace boost { \param Comp An element comparison predicate \return An instance of the \c last_finder object */ - template + template inline detail::last_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, + BOOST_STRING_TYPENAME range_const_iterator::type, is_equal> - last_finder( const ContainerT& Search ) + last_finder( const RangeT& Search ) { return detail::last_finderF< BOOST_STRING_TYPENAME - range_const_iterator::type, - is_equal>( Search, is_equal() ); + range_const_iterator::type, + is_equal>( as_literal(Search), is_equal() ); } //! "Last" finder /*! \overload */ - template + template inline detail::last_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, + BOOST_STRING_TYPENAME range_const_iterator::type, PredicateT> - last_finder( const ContainerT& Search, PredicateT Comp ) + last_finder( const RangeT& Search, PredicateT Comp ) { return detail::last_finderF< BOOST_STRING_TYPENAME - range_const_iterator::type, - PredicateT>( Search, Comp ) ; + range_const_iterator::type, + PredicateT>( as_literal(Search), Comp ) ; } //! "Nth" finder @@ -126,38 +127,38 @@ namespace boost { \param Comp An element comparison predicate \return An instance of the \c nth_finder object */ - template + template inline detail::nth_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, + BOOST_STRING_TYPENAME range_const_iterator::type, is_equal> nth_finder( - const ContainerT& Search, + const RangeT& Search, int Nth) { return detail::nth_finderF< BOOST_STRING_TYPENAME - range_const_iterator::type, - is_equal>( Search, Nth, is_equal() ) ; + range_const_iterator::type, + is_equal>( as_literal(Search), Nth, is_equal() ) ; } //! "Nth" finder /*! \overload */ - template + template inline detail::nth_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, + BOOST_STRING_TYPENAME range_const_iterator::type, PredicateT> nth_finder( - const ContainerT& Search, + const RangeT& Search, int Nth, PredicateT Comp ) { return detail::nth_finderF< BOOST_STRING_TYPENAME - range_const_iterator::type, - PredicateT>( Search, Nth, Comp ); + range_const_iterator::type, + PredicateT>( as_literal(Search), Nth, Comp ); } //! "Head" finder diff --git a/include/boost/algorithm/string/formatter.hpp b/include/boost/algorithm/string/formatter.hpp index 74234df..e04a50f 100644 --- a/include/boost/algorithm/string/formatter.hpp +++ b/include/boost/algorithm/string/formatter.hpp @@ -1,11 +1,12 @@ // Boost string_algo library formatter.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_FORMATTER_HPP #define BOOST_STRING_FORMATTER_HPP @@ -13,6 +14,7 @@ #include #include #include +#include #include @@ -41,10 +43,14 @@ namespace boost { \return An instance of the \c const_formatter object. */ template - inline detail::const_formatF + inline detail::const_formatF< + iterator_range< + BOOST_STRING_TYPENAME range_const_iterator::type> > const_formatter(const RangeT& Format) { - return detail::const_formatF(Format); + return detail::const_formatF< + iterator_range< + BOOST_STRING_TYPENAME range_const_iterator::type> >(as_literal(Format)); } //! Identity formatter @@ -55,10 +61,14 @@ namespace boost { \return An instance of the \c identity_formatter object. */ template - inline detail::identity_formatF + inline detail::identity_formatF< + iterator_range< + BOOST_STRING_TYPENAME range_const_iterator::type> > identity_formatter() { - return detail::identity_formatF(); + return detail::identity_formatF< + iterator_range< + BOOST_STRING_TYPENAME range_const_iterator::type> >(); } //! Empty formatter diff --git a/include/boost/algorithm/string/iter_find.hpp b/include/boost/algorithm/string/iter_find.hpp index c9b51ca..73887a8 100644 --- a/include/boost/algorithm/string/iter_find.hpp +++ b/include/boost/algorithm/string/iter_find.hpp @@ -1,11 +1,12 @@ // Boost string_algo library iter_find.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_ITER_FIND_HPP #define BOOST_STRING_ITER_FIND_HPP @@ -18,8 +19,9 @@ #include #include #include -#include +#include #include +#include #include #include @@ -74,24 +76,26 @@ namespace boost { { function_requires< FinderConcept::type> >(); + BOOST_STRING_TYPENAME range_iterator::type> >(); + + iterator_range::type> lit_input(as_literal(Input)); typedef BOOST_STRING_TYPENAME - range_result_iterator::type input_iterator_type; + range_iterator::type input_iterator_type; typedef find_iterator find_iterator_type; typedef detail::copy_iterator_rangeF< BOOST_STRING_TYPENAME range_value::type, input_iterator_type> copy_range_type; - input_iterator_type InputEnd=end(Input); + input_iterator_type InputEnd=end(lit_input); typedef transform_iterator transform_iter_type; transform_iter_type itBegin= make_transform_iterator( - find_iterator_type( begin(Input), InputEnd, Finder ), + find_iterator_type( begin(lit_input), InputEnd, Finder ), copy_range_type()); transform_iter_type itEnd= @@ -141,24 +145,26 @@ namespace boost { { function_requires< FinderConcept::type> >(); + BOOST_STRING_TYPENAME range_iterator::type> >(); + + iterator_range::type> lit_input(as_literal(Input)); typedef BOOST_STRING_TYPENAME - range_result_iterator::type input_iterator_type; + range_iterator::type input_iterator_type; typedef split_iterator find_iterator_type; typedef detail::copy_iterator_rangeF< BOOST_STRING_TYPENAME range_value::type, input_iterator_type> copy_range_type; - input_iterator_type InputEnd=end(Input); + input_iterator_type InputEnd=end(lit_input); typedef transform_iterator transform_iter_type; transform_iter_type itBegin= make_transform_iterator( - find_iterator_type( begin(Input), InputEnd, Finder ), + find_iterator_type( begin(lit_input), InputEnd, Finder ), copy_range_type() ); transform_iter_type itEnd= diff --git a/include/boost/algorithm/string/join.hpp b/include/boost/algorithm/string/join.hpp index b4e0791..d2bc382 100644 --- a/include/boost/algorithm/string/join.hpp +++ b/include/boost/algorithm/string/join.hpp @@ -1,11 +1,12 @@ // Boost string_algo library join.hpp header file ---------------------------// -// Copyright Pavol Droba 2002-2006. 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) +// Copyright Pavol Droba 2002-2006. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_JOIN_HPP #define BOOST_STRING_JOIN_HPP @@ -13,7 +14,7 @@ #include #include #include - +#include /*! \file Defines join algorithm. @@ -44,7 +45,7 @@ namespace boost { inline typename range_value::type join( const SequenceSequenceT& Input, - Range1T& Separator) + const Range1T& Separator) { // Define working types typedef typename range_value::type ResultT; @@ -67,7 +68,7 @@ namespace boost { for(;itBegin!=itEnd; ++itBegin) { // Add separator - detail::insert(Result, end(Result), Separator); + detail::insert(Result, end(Result), as_literal(Separator)); // Add element detail::insert(Result, end(Result), *itBegin); } @@ -94,7 +95,7 @@ namespace boost { inline typename range_value::type join_if( const SequenceSequenceT& Input, - Range1T& Separator, + const Range1T& Separator, PredicateT Pred) { // Define working types @@ -122,7 +123,7 @@ namespace boost { if(Pred(*itBegin)) { // Add separator - detail::insert(Result, end(Result), Separator); + detail::insert(Result, end(Result), as_literal(Separator)); // Add element detail::insert(Result, end(Result), *itBegin); } diff --git a/include/boost/algorithm/string/predicate.hpp b/include/boost/algorithm/string/predicate.hpp index 41ed456..4edd553 100644 --- a/include/boost/algorithm/string/predicate.hpp +++ b/include/boost/algorithm/string/predicate.hpp @@ -1,11 +1,12 @@ // Boost string_algo library predicate.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_PREDICATE_HPP #define BOOST_STRING_PREDICATE_HPP @@ -15,6 +16,8 @@ #include #include #include +#include +#include #include #include @@ -56,16 +59,19 @@ namespace boost { const Range2T& Test, PredicateT Comp) { + iterator_range::type> lit_input(as_literal(Input)); + iterator_range::type> lit_test(as_literal(Test)); + typedef BOOST_STRING_TYPENAME range_const_iterator::type Iterator1T; typedef BOOST_STRING_TYPENAME range_const_iterator::type Iterator2T; - Iterator1T InputEnd=end(Input); - Iterator2T TestEnd=end(Test); + Iterator1T InputEnd=end(lit_input); + Iterator2T TestEnd=end(lit_test); - Iterator1T it=begin(Input); - Iterator2T pit=begin(Test); + Iterator1T it=begin(lit_input); + Iterator2T pit=begin(lit_test); for(; it!=InputEnd && pit!=TestEnd; ++it,++pit) @@ -135,6 +141,9 @@ namespace boost { const Range2T& Test, PredicateT Comp) { + iterator_range::type> lit_input(as_literal(Input)); + iterator_range::type> lit_test(as_literal(Test)); + typedef BOOST_STRING_TYPENAME range_const_iterator::type Iterator1T; typedef BOOST_STRING_TYPENAME boost::detail:: @@ -142,10 +151,10 @@ namespace boost { return detail:: ends_with_iter_select( - begin(Input), - end(Input), - begin(Test), - end(Test), + begin(lit_input), + end(lit_input), + begin(lit_test), + end(lit_test), Comp, category()); } @@ -206,14 +215,17 @@ namespace boost { const Range2T& Test, PredicateT Comp) { - if (empty(Test)) + iterator_range::type> lit_input(as_literal(Input)); + iterator_range::type> lit_test(as_literal(Test)); + + if (empty(lit_test)) { // Empty range is contained always return true; } // 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; } @@ -274,16 +286,19 @@ namespace boost { const Range2T& Test, PredicateT Comp) { + iterator_range::type> lit_input(as_literal(Input)); + iterator_range::type> lit_test(as_literal(Test)); + typedef BOOST_STRING_TYPENAME range_const_iterator::type Iterator1T; typedef BOOST_STRING_TYPENAME range_const_iterator::type Iterator2T; - Iterator1T InputEnd=end(Input); - Iterator2T TestEnd=end(Test); + Iterator1T InputEnd=end(lit_input); + Iterator2T TestEnd=end(lit_test); - Iterator1T it=begin(Input); - Iterator2T pit=begin(Test); + Iterator1T it=begin(lit_input); + Iterator2T pit=begin(lit_test); for(; it!=InputEnd && pit!=TestEnd; ++it,++pit) @@ -357,11 +372,14 @@ namespace boost { const Range2T& Arg2, PredicateT Pred) { + iterator_range::type> lit_arg1(as_literal(Arg1)); + iterator_range::type> lit_arg2(as_literal(Arg2)); + return std::lexicographical_compare( - begin(Arg1), - end(Arg1), - begin(Arg2), - end(Arg2), + begin(lit_arg1), + end(lit_arg1), + begin(lit_arg2), + end(lit_arg2), Pred); } @@ -374,12 +392,7 @@ namespace boost { const Range1T& Arg1, const Range2T& Arg2) { - return std::lexicographical_compare( - begin(Arg1), - end(Arg1), - begin(Arg2), - end(Arg2), - is_less()); + return lexicographical_compare(Arg1, Arg2, is_less()); } //! Lexicographical compare predicate (case-insensitive) @@ -393,6 +406,7 @@ namespace boost { \param Arg1 First argument \param Arg2 Second argument + \param Loc A locale used for case insensitive comparison \return The result of the test \note This function provides the strong exception-safety guarantee @@ -400,14 +414,10 @@ namespace boost { template inline bool ilexicographical_compare( const Range1T& Arg1, - const Range2T& Arg2) + const Range2T& Arg2, + const std::locale& Loc=std::locale()) { - return std::lexicographical_compare( - begin(Arg1), - end(Arg1), - begin(Arg2), - end(Arg2), - is_iless()); + return lexicographical_compare(Arg1, Arg2, is_iless(Loc)); } @@ -429,11 +439,13 @@ namespace boost { const RangeT& Input, PredicateT Pred) { + iterator_range::type> lit_input(as_literal(Input)); + typedef BOOST_STRING_TYPENAME range_const_iterator::type Iterator1T; - Iterator1T InputEnd=end(Input); - for( Iterator1T It=begin(Input); It!=InputEnd; ++It) + Iterator1T InputEnd=end(lit_input); + for( Iterator1T It=begin(lit_input); It!=InputEnd; ++It) { if (!Pred(*It)) return false; diff --git a/include/boost/algorithm/string/predicate_facade.hpp b/include/boost/algorithm/string/predicate_facade.hpp index 70730f8..c8319f7 100644 --- a/include/boost/algorithm/string/predicate_facade.hpp +++ b/include/boost/algorithm/string/predicate_facade.hpp @@ -1,11 +1,12 @@ // Boost string_algo library predicate_facade.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_PREDICATE_FACADE_HPP #define BOOST_STRING_PREDICATE_FACADE_HPP diff --git a/include/boost/algorithm/string/regex.hpp b/include/boost/algorithm/string/regex.hpp index 630d117..98a0dfc 100644 --- a/include/boost/algorithm/string/regex.hpp +++ b/include/boost/algorithm/string/regex.hpp @@ -1,11 +1,12 @@ // Boost string_algo library regex.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_REGEX_HPP #define BOOST_STRING_REGEX_HPP @@ -16,7 +17,8 @@ #include #include #include -#include +#include +#include #include #include @@ -52,14 +54,16 @@ namespace boost { typename CharT, typename RegexTraitsT> inline iterator_range< - BOOST_STRING_TYPENAME range_result_iterator::type > + BOOST_STRING_TYPENAME range_iterator::type > find_regex( RangeT& Input, const basic_regex& Rx, match_flag_type Flags=match_default ) { + iterator_range::type> lit_input(as_literal(Input)); + return regex_finder(Rx,Flags)( - begin(Input), end(Input) ); + begin(lit_input), end(lit_input) ); } // replace_regex --------------------------------------------------------------------// @@ -502,7 +506,7 @@ namespace boost { inline typename range_value::type join_if( const SequenceSequenceT& Input, - Range1T& Separator, + const Range1T& Separator, const basic_regex& Rx, match_flag_type Flags=match_default ) { @@ -535,7 +539,7 @@ namespace boost { if(regex_match(begin(*itBegin), end(*itBegin), Rx, Flags)) { // Add separator - detail::insert(Result, end(Result), Separator); + detail::insert(Result, end(Result), as_literal(Separator)); // Add element detail::insert(Result, end(Result), *itBegin); } @@ -570,7 +574,7 @@ namespace boost { inline typename range_value::type join_if_regex( const SequenceSequenceT& Input, - Range1T& Separator, + const Range1T& Separator, const basic_regex& Rx, match_flag_type Flags=match_default ) { @@ -584,7 +588,7 @@ namespace boost { // Construct container to hold the result ResultT Result; - + // Roll to the first element that will be added while( @@ -603,7 +607,7 @@ namespace boost { if(regex_match(begin(*itBegin), end(*itBegin), Rx, Flags)) { // Add separator - detail::insert(Result, end(Result), Separator); + detail::insert(Result, end(Result), as_literal(Separator)); // Add element detail::insert(Result, end(Result), *itBegin); } @@ -636,8 +640,6 @@ namespace boost { using algorithm::join_if_regex; #endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - } // namespace boost diff --git a/include/boost/algorithm/string/regex_find_format.hpp b/include/boost/algorithm/string/regex_find_format.hpp index 4f28973..f698004 100644 --- a/include/boost/algorithm/string/regex_find_format.hpp +++ b/include/boost/algorithm/string/regex_find_format.hpp @@ -1,11 +1,12 @@ // Boost string_algo library regex_find_format.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_REGEX_FIND_FORMAT_HPP #define BOOST_STRING_REGEX_FIND_FORMAT_HPP diff --git a/include/boost/algorithm/string/replace.hpp b/include/boost/algorithm/string/replace.hpp index 8f1a92c..1c59ec7 100644 --- a/include/boost/algorithm/string/replace.hpp +++ b/include/boost/algorithm/string/replace.hpp @@ -1,11 +1,12 @@ // Boost string_algo library replace.hpp header file ---------------------------// -// Copyright Pavol Droba 2002-2006. 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) +// Copyright Pavol Droba 2002-2006. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_REPLACE_HPP #define BOOST_STRING_REPLACE_HPP diff --git a/include/boost/algorithm/string/sequence_traits.hpp b/include/boost/algorithm/string/sequence_traits.hpp index e53f656..b1ac67e 100644 --- a/include/boost/algorithm/string/sequence_traits.hpp +++ b/include/boost/algorithm/string/sequence_traits.hpp @@ -1,11 +1,12 @@ // Boost string_algo library sequence_traits.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_SEQUENCE_TRAITS_HPP #define BOOST_STRING_SEQUENCE_TRAITS_HPP diff --git a/include/boost/algorithm/string/split.hpp b/include/boost/algorithm/string/split.hpp index 71bf43f..f5c323c 100644 --- a/include/boost/algorithm/string/split.hpp +++ b/include/boost/algorithm/string/split.hpp @@ -1,11 +1,12 @@ // Boost string_algo library split.hpp header file ---------------------------// -// Copyright Pavol Droba 2002-2006. 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) +// Copyright Pavol Droba 2002-2006. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_SPLIT_HPP #define BOOST_STRING_SPLIT_HPP diff --git a/include/boost/algorithm/string/std/list_traits.hpp b/include/boost/algorithm/string/std/list_traits.hpp index e58a66a..ce2379d 100644 --- a/include/boost/algorithm/string/std/list_traits.hpp +++ b/include/boost/algorithm/string/std/list_traits.hpp @@ -1,11 +1,12 @@ // Boost string_algo library list_traits.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_STD_LIST_TRAITS_HPP #define BOOST_STRING_STD_LIST_TRAITS_HPP diff --git a/include/boost/algorithm/string/std/rope_traits.hpp b/include/boost/algorithm/string/std/rope_traits.hpp index 98f3451..c2cd549 100644 --- a/include/boost/algorithm/string/std/rope_traits.hpp +++ b/include/boost/algorithm/string/std/rope_traits.hpp @@ -1,11 +1,12 @@ // Boost string_algo library string_traits.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_STD_ROPE_TRAITS_HPP #define BOOST_STRING_STD_ROPE_TRAITS_HPP diff --git a/include/boost/algorithm/string/std/slist_traits.hpp b/include/boost/algorithm/string/std/slist_traits.hpp index d05c729..7b915a3 100644 --- a/include/boost/algorithm/string/std/slist_traits.hpp +++ b/include/boost/algorithm/string/std/slist_traits.hpp @@ -1,11 +1,12 @@ // Boost string_algo library slist_traits.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_STD_SLIST_TRAITS_HPP #define BOOST_STRING_STD_SLIST_TRAITS_HPP diff --git a/include/boost/algorithm/string/std/string_traits.hpp b/include/boost/algorithm/string/std/string_traits.hpp index d603a4a..c466d26 100644 --- a/include/boost/algorithm/string/std/string_traits.hpp +++ b/include/boost/algorithm/string/std/string_traits.hpp @@ -1,11 +1,12 @@ // Boost string_algo library string_traits.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_STD_STRING_TRAITS_HPP #define BOOST_STRING_STD_STRING_TRAITS_HPP diff --git a/include/boost/algorithm/string/std_containers_traits.hpp b/include/boost/algorithm/string/std_containers_traits.hpp index ab0cf3f..3f02246 100644 --- a/include/boost/algorithm/string/std_containers_traits.hpp +++ b/include/boost/algorithm/string/std_containers_traits.hpp @@ -1,11 +1,12 @@ // Boost string_algo library std_containers_traits.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_STD_CONTAINERS_TRAITS_HPP #define BOOST_STRING_STD_CONTAINERS_TRAITS_HPP diff --git a/include/boost/algorithm/string/trim.hpp b/include/boost/algorithm/string/trim.hpp index 6a3425b..b2bdc04 100644 --- a/include/boost/algorithm/string/trim.hpp +++ b/include/boost/algorithm/string/trim.hpp @@ -1,11 +1,12 @@ // Boost string_algo library trim.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_TRIM_HPP #define BOOST_STRING_TRIM_HPP @@ -15,6 +16,8 @@ #include #include #include +#include +#include #include #include @@ -60,12 +63,14 @@ namespace boost { const RangeT& Input, PredicateT IsSpace) { + iterator_range::type> lit_range(as_literal(Input)); + std::copy( ::boost::algorithm::detail::trim_begin( - begin(Input), - end(Input), + begin(lit_range), + end(lit_range), IsSpace ), - end(Input), + end(lit_range), Output); return Output; @@ -166,11 +171,13 @@ namespace boost { const RangeT& Input, PredicateT IsSpace ) { + iterator_range::type> lit_range(as_literal(Input)); + std::copy( - begin(Input), + begin(lit_range), ::boost::algorithm::detail::trim_end( - begin(Input), - end(Input), + begin(lit_range), + end(lit_range), IsSpace ), Output ); @@ -276,16 +283,18 @@ namespace boost { const RangeT& Input, PredicateT IsSpace) { + iterator_range::type> lit_range(as_literal(Input)); + BOOST_STRING_TYPENAME range_const_iterator::type TrimEnd= ::boost::algorithm::detail::trim_end( - begin(Input), - end(Input), + begin(lit_range), + end(lit_range), IsSpace); std::copy( detail::trim_begin( - begin(Input), TrimEnd, IsSpace), + begin(lit_range), TrimEnd, IsSpace), TrimEnd, Output ); diff --git a/include/boost/algorithm/string/yes_no_type.hpp b/include/boost/algorithm/string/yes_no_type.hpp index dc3da7a..b76cc6c 100644 --- a/include/boost/algorithm/string/yes_no_type.hpp +++ b/include/boost/algorithm/string/yes_no_type.hpp @@ -1,11 +1,12 @@ // Boost string_algo library yes_no_type.hpp header file ---------------------------// -// 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) +// Copyright Pavol Droba 2002-2003. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_YES_NO_TYPE_DETAIL_HPP #define BOOST_STRING_YES_NO_TYPE_DETAIL_HPP diff --git a/include/boost/algorithm/string_regex.hpp b/include/boost/algorithm/string_regex.hpp index c91b3a7..6fd8ad9 100644 --- a/include/boost/algorithm/string_regex.hpp +++ b/include/boost/algorithm/string_regex.hpp @@ -1,11 +1,12 @@ // Boost string_algo library string_regex.hpp header file ---------------------------// -// Copyright Pavol Droba 2002-2004. 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) +// Copyright Pavol Droba 2002-2004. +// +// Distributed under 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. +// See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_ALGO_REGEX_HPP #define BOOST_STRING_ALGO_REGEX_HPP