summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/Boost/boost/algorithm/string/detail')
m---------3rdParty/Boost0
-rw-r--r--3rdParty/Boost/boost/algorithm/string/detail/case_conv.hpp121
-rw-r--r--3rdParty/Boost/boost/algorithm/string/detail/find_format.hpp193
-rw-r--r--3rdParty/Boost/boost/algorithm/string/detail/find_format_all.hpp263
-rw-r--r--3rdParty/Boost/boost/algorithm/string/detail/find_format_store.hpp78
-rw-r--r--3rdParty/Boost/boost/algorithm/string/detail/finder.hpp646
-rw-r--r--3rdParty/Boost/boost/algorithm/string/detail/formatter.hpp94
-rw-r--r--3rdParty/Boost/boost/algorithm/string/detail/replace_storage.hpp159
-rw-r--r--3rdParty/Boost/boost/algorithm/string/detail/sequence.hpp200
-rw-r--r--3rdParty/Boost/boost/algorithm/string/detail/util.hpp106
10 files changed, 0 insertions, 1860 deletions
diff --git a/3rdParty/Boost b/3rdParty/Boost
new file mode 160000
+Subproject 3bbdbc8cf1996f23d9a366da8bac0f97be6ad79
diff --git a/3rdParty/Boost/boost/algorithm/string/detail/case_conv.hpp b/3rdParty/Boost/boost/algorithm/string/detail/case_conv.hpp
deleted file mode 100644
index 5253454..0000000
--- a/3rdParty/Boost/boost/algorithm/string/detail/case_conv.hpp
+++ /dev/null
@@ -1,121 +0,0 @@
-// Boost string_algo library string_funct.hpp header file ---------------------------//
-
-// 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.
-
-#ifndef BOOST_STRING_CASE_CONV_DETAIL_HPP
-#define BOOST_STRING_CASE_CONV_DETAIL_HPP
-
-#include <boost/algorithm/string/config.hpp>
-#include <locale>
-#include <functional>
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-// case conversion functors -----------------------------------------------//
-
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
-#pragma warning(push)
-#pragma warning(disable:4512) //assignment operator could not be generated
-#endif
-
- // a tolower functor
- template<typename CharT>
- struct to_lowerF : public std::unary_function<CharT, CharT>
- {
- // Constructor
- to_lowerF( const std::locale& Loc ) : m_Loc( Loc ) {}
-
- // Operation
- CharT operator ()( CharT Ch ) const
- {
- #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
- return std::tolower( Ch);
- #else
- return std::tolower<CharT>( Ch, m_Loc );
- #endif
- }
- private:
- const std::locale& m_Loc;
- };
-
- // a toupper functor
- template<typename CharT>
- struct to_upperF : public std::unary_function<CharT, CharT>
- {
- // Constructor
- to_upperF( const std::locale& Loc ) : m_Loc( Loc ) {}
-
- // Operation
- CharT operator ()( CharT Ch ) const
- {
- #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
- return std::toupper( Ch);
- #else
- return std::toupper<CharT>( Ch, m_Loc );
- #endif
- }
- private:
- const std::locale& m_Loc;
- };
-
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
-#pragma warning(pop)
-#endif
-
-// 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(
- ::boost::begin(Input),
- ::boost::end(Input),
- Output,
- Functor);
- }
-
- // Transform a range (in-place)
- template<typename RangeT, typename FunctorT>
- void transform_range(
- const RangeT& Input,
- FunctorT Functor)
- {
- std::transform(
- ::boost::begin(Input),
- ::boost::end(Input),
- ::boost::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(
- ::boost::begin(Input),
- Functor),
- make_transform_iterator(
- ::boost::end(Input),
- Functor));
- }
-
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-
-#endif // BOOST_STRING_CASE_CONV_DETAIL_HPP
diff --git a/3rdParty/Boost/boost/algorithm/string/detail/find_format.hpp b/3rdParty/Boost/boost/algorithm/string/detail/find_format.hpp
deleted file mode 100644
index 8fb625e..0000000
--- a/3rdParty/Boost/boost/algorithm/string/detail/find_format.hpp
+++ /dev/null
@@ -1,193 +0,0 @@
-// Boost string_algo library find_format.hpp header file ---------------------------//
-
-// 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.
-
-#ifndef BOOST_STRING_FIND_FORMAT_DETAIL_HPP
-#define BOOST_STRING_FIND_FORMAT_DETAIL_HPP
-
-#include <boost/algorithm/string/config.hpp>
-#include <boost/range/iterator_range.hpp>
-#include <boost/range/const_iterator.hpp>
-#include <boost/range/iterator.hpp>
-#include <boost/algorithm/string/detail/find_format_store.hpp>
-#include <boost/algorithm/string/detail/replace_storage.hpp>
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-// find_format_copy (iterator variant) implementation -------------------------------//
-
- template<
- typename OutputIteratorT,
- typename InputT,
- typename FormatterT,
- typename FindResultT >
- inline OutputIteratorT find_format_copy_impl(
- OutputIteratorT Output,
- const InputT& Input,
- FormatterT Formatter,
- const FindResultT& FindResult )
- {
- return find_format_copy_impl2(
- Output,
- Input,
- Formatter,
- FindResult,
- Formatter(FindResult) );
- }
-
- template<
- typename OutputIteratorT,
- typename InputT,
- typename FormatterT,
- typename FindResultT,
- typename FormatResultT >
- inline OutputIteratorT find_format_copy_impl2(
- OutputIteratorT Output,
- const InputT& Input,
- FormatterT Formatter,
- const FindResultT& FindResult,
- const FormatResultT& FormatResult )
- {
- typedef find_format_store<
- BOOST_STRING_TYPENAME
- range_const_iterator<InputT>::type,
- FormatterT,
- FormatResultT > store_type;
-
- // Create store for the find result
- store_type M( FindResult, FormatResult, Formatter );
-
- if ( !M )
- {
- // Match not found - return original sequence
- std::copy( ::boost::begin(Input), ::boost::end(Input), Output );
- return Output;
- }
-
- // Copy the beginning of the sequence
- std::copy( ::boost::begin(Input), ::boost::begin(M), Output );
- // Format find result
- // Copy formated result
- std::copy( ::boost::begin(M.format_result()), ::boost::end(M.format_result()), Output );
- // Copy the rest of the sequence
- std::copy( M.end(), ::boost::end(Input), Output );
-
- return Output;
- }
-
-// find_format_copy implementation --------------------------------------------------//
-
- template<
- typename InputT,
- typename FormatterT,
- typename FindResultT >
- inline InputT find_format_copy_impl(
- const InputT& Input,
- FormatterT Formatter,
- const FindResultT& FindResult)
- {
- return find_format_copy_impl2(
- Input,
- Formatter,
- FindResult,
- Formatter(FindResult) );
- }
-
- template<
- typename InputT,
- typename FormatterT,
- typename FindResultT,
- typename FormatResultT >
- inline InputT find_format_copy_impl2(
- const InputT& Input,
- FormatterT Formatter,
- const FindResultT& FindResult,
- const FormatResultT& FormatResult)
- {
- typedef find_format_store<
- BOOST_STRING_TYPENAME
- range_const_iterator<InputT>::type,
- FormatterT,
- FormatResultT > store_type;
-
- // Create store for the find result
- store_type M( FindResult, FormatResult, Formatter );
-
- if ( !M )
- {
- // Match not found - return original sequence
- return InputT( Input );
- }
-
- InputT Output;
- // Copy the beginning of the sequence
- insert( Output, ::boost::end(Output), ::boost::begin(Input), M.begin() );
- // Copy formated result
- insert( Output, ::boost::end(Output), M.format_result() );
- // Copy the rest of the sequence
- insert( Output, ::boost::end(Output), M.end(), ::boost::end(Input) );
-
- return Output;
- }
-
-// replace implementation ----------------------------------------------------//
-
- template<
- typename InputT,
- typename FormatterT,
- typename FindResultT >
- inline void find_format_impl(
- InputT& Input,
- FormatterT Formatter,
- const FindResultT& FindResult)
- {
- find_format_impl2(
- Input,
- Formatter,
- FindResult,
- Formatter(FindResult) );
- }
-
- template<
- typename InputT,
- typename FormatterT,
- typename FindResultT,
- typename FormatResultT >
- inline void find_format_impl2(
- InputT& Input,
- FormatterT Formatter,
- const FindResultT& FindResult,
- const FormatResultT& FormatResult)
- {
- typedef find_format_store<
- BOOST_STRING_TYPENAME
- range_iterator<InputT>::type,
- FormatterT,
- FormatResultT > store_type;
-
- // Create store for the find result
- store_type M( FindResult, FormatResult, Formatter );
-
- if ( !M )
- {
- // Search not found - return original sequence
- return;
- }
-
- // Replace match
- replace( Input, M.begin(), M.end(), M.format_result() );
- }
-
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-#endif // BOOST_STRING_FIND_FORMAT_DETAIL_HPP
diff --git a/3rdParty/Boost/boost/algorithm/string/detail/find_format_all.hpp b/3rdParty/Boost/boost/algorithm/string/detail/find_format_all.hpp
deleted file mode 100644
index 9533be6..0000000
--- a/3rdParty/Boost/boost/algorithm/string/detail/find_format_all.hpp
+++ /dev/null
@@ -1,263 +0,0 @@
-// Boost string_algo library find_format_all.hpp header file ---------------------------//
-
-// 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.
-
-#ifndef BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP
-#define BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP
-
-#include <boost/algorithm/string/config.hpp>
-#include <boost/range/iterator_range.hpp>
-#include <boost/range/const_iterator.hpp>
-#include <boost/range/value_type.hpp>
-#include <boost/algorithm/string/detail/find_format_store.hpp>
-#include <boost/algorithm/string/detail/replace_storage.hpp>
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-// find_format_all_copy (iterator variant) implementation ---------------------------//
-
- template<
- typename OutputIteratorT,
- typename InputT,
- typename FinderT,
- typename FormatterT,
- typename FindResultT >
- inline OutputIteratorT find_format_all_copy_impl(
- OutputIteratorT Output,
- const InputT& Input,
- FinderT Finder,
- FormatterT Formatter,
- const FindResultT& FindResult )
- {
- return find_format_all_copy_impl2(
- Output,
- Input,
- Finder,
- Formatter,
- FindResult,
- Formatter(FindResult) );
- }
-
- template<
- typename OutputIteratorT,
- typename InputT,
- typename FinderT,
- typename FormatterT,
- typename FindResultT,
- typename FormatResultT >
- inline OutputIteratorT find_format_all_copy_impl2(
- OutputIteratorT Output,
- const InputT& Input,
- FinderT Finder,
- FormatterT Formatter,
- const FindResultT& FindResult,
- const FormatResultT& FormatResult )
- {
- typedef BOOST_STRING_TYPENAME
- range_const_iterator<InputT>::type input_iterator_type;
-
- typedef find_format_store<
- input_iterator_type,
- FormatterT,
- FormatResultT > store_type;
-
- // Create store for the find result
- store_type M( FindResult, FormatResult, Formatter );
-
- // Initialize last match
- input_iterator_type LastMatch=::boost::begin(Input);
-
- // Iterate through all matches
- while( M )
- {
- // Copy the beginning of the sequence
- std::copy( LastMatch, M.begin(), Output );
- // Copy formated result
- std::copy( ::boost::begin(M.format_result()), ::boost::end(M.format_result()), Output );
-
- // Proceed to the next match
- LastMatch=M.end();
- M=Finder( LastMatch, ::boost::end(Input) );
- }
-
- // Copy the rest of the sequence
- std::copy( LastMatch, ::boost::end(Input), Output );
-
- return Output;
- }
-
-// find_format_all_copy implementation ----------------------------------------------//
-
- template<
- typename InputT,
- typename FinderT,
- typename FormatterT,
- typename FindResultT >
- inline InputT find_format_all_copy_impl(
- const InputT& Input,
- FinderT Finder,
- FormatterT Formatter,
- const FindResultT& FindResult)
- {
- return find_format_all_copy_impl2(
- Input,
- Finder,
- Formatter,
- FindResult,
- Formatter(FindResult) );
- }
-
- template<
- typename InputT,
- typename FinderT,
- typename FormatterT,
- typename FindResultT,
- typename FormatResultT >
- inline InputT find_format_all_copy_impl2(
- const InputT& Input,
- FinderT Finder,
- FormatterT Formatter,
- const FindResultT& FindResult,
- const FormatResultT& FormatResult)
- {
- typedef BOOST_STRING_TYPENAME
- range_const_iterator<InputT>::type input_iterator_type;
-
- typedef find_format_store<
- input_iterator_type,
- FormatterT,
- FormatResultT > store_type;
-
- // Create store for the find result
- store_type M( FindResult, FormatResult, Formatter );
-
- // Initialize last match
- input_iterator_type LastMatch=::boost::begin(Input);
-
- // Output temporary
- InputT Output;
-
- // Iterate through all matches
- while( M )
- {
- // Copy the beginning of the sequence
- insert( Output, ::boost::end(Output), LastMatch, M.begin() );
- // Copy formated result
- insert( Output, ::boost::end(Output), M.format_result() );
-
- // Proceed to the next match
- LastMatch=M.end();
- M=Finder( LastMatch, ::boost::end(Input) );
- }
-
- // Copy the rest of the sequence
- insert( Output, ::boost::end(Output), LastMatch, ::boost::end(Input) );
-
- return Output;
- }
-
-// find_format_all implementation ------------------------------------------------//
-
- template<
- typename InputT,
- typename FinderT,
- typename FormatterT,
- typename FindResultT >
- inline void find_format_all_impl(
- InputT& Input,
- FinderT Finder,
- FormatterT Formatter,
- FindResultT FindResult)
- {
- find_format_all_impl2(
- Input,
- Finder,
- Formatter,
- FindResult,
- Formatter(FindResult) );
- }
-
- template<
- typename InputT,
- typename FinderT,
- typename FormatterT,
- typename FindResultT,
- typename FormatResultT >
- inline void find_format_all_impl2(
- InputT& Input,
- FinderT Finder,
- FormatterT Formatter,
- FindResultT FindResult,
- FormatResultT FormatResult)
- {
- typedef BOOST_STRING_TYPENAME
- range_iterator<InputT>::type input_iterator_type;
- typedef find_format_store<
- input_iterator_type,
- FormatterT,
- FormatResultT > store_type;
-
- // Create store for the find result
- store_type M( FindResult, FormatResult, Formatter );
-
- // Instantiate replacement storage
- std::deque<
- BOOST_STRING_TYPENAME range_value<InputT>::type> Storage;
-
- // Initialize replacement iterators
- input_iterator_type InsertIt=::boost::begin(Input);
- input_iterator_type SearchIt=::boost::begin(Input);
-
- while( M )
- {
- // process the segment
- InsertIt=process_segment(
- Storage,
- Input,
- InsertIt,
- SearchIt,
- M.begin() );
-
- // Adjust search iterator
- SearchIt=M.end();
-
- // Copy formated replace to the storage
- copy_to_storage( Storage, M.format_result() );
-
- // Find range for a next match
- M=Finder( SearchIt, ::boost::end(Input) );
- }
-
- // process the last segment
- InsertIt=process_segment(
- Storage,
- Input,
- InsertIt,
- SearchIt,
- ::boost::end(Input) );
-
- if ( Storage.empty() )
- {
- // Truncate input
- erase( Input, InsertIt, ::boost::end(Input) );
- }
- else
- {
- // Copy remaining data to the end of input
- insert( Input, ::boost::end(Input), Storage.begin(), Storage.end() );
- }
- }
-
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-#endif // BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP
diff --git a/3rdParty/Boost/boost/algorithm/string/detail/find_format_store.hpp b/3rdParty/Boost/boost/algorithm/string/detail/find_format_store.hpp
deleted file mode 100644
index 2260fc2e..0000000
--- a/3rdParty/Boost/boost/algorithm/string/detail/find_format_store.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-// Boost string_algo library find_format_store.hpp header file ---------------------------//
-
-// 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.
-
-#ifndef BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP
-#define BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP
-
-#include <boost/algorithm/string/config.hpp>
-#include <boost/range/iterator_range.hpp>
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-// temporary format and find result storage --------------------------------//
-
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
-#pragma warning(push)
-#pragma warning(disable:4512) //assignment operator could not be generated
-#endif
- template<
- typename ForwardIteratorT,
- typename FormatterT,
- typename FormatResultT >
- class find_format_store :
- public iterator_range<ForwardIteratorT>
- {
- public:
- // typedefs
- typedef iterator_range<ForwardIteratorT> base_type;
- typedef FormatterT formatter_type;
- typedef FormatResultT format_result_type;
-
- public:
- // Construction
- find_format_store(
- const base_type& FindResult,
- const format_result_type& FormatResult,
- const formatter_type& Formatter ) :
- base_type(FindResult),
- m_FormatResult(FormatResult),
- m_Formatter(Formatter) {}
-
- // Assignment
- template< typename FindResultT >
- find_format_store& operator=( FindResultT FindResult )
- {
- iterator_range<ForwardIteratorT>::operator=(FindResult);
- m_FormatResult=m_Formatter(FindResult);
-
- return *this;
- }
-
- // Retrieve format result
- const format_result_type& format_result()
- {
- return m_FormatResult;
- }
-
- private:
- format_result_type m_FormatResult;
- const formatter_type& m_Formatter;
- };
-
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
-#pragma warning(pop)
-#endif
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-#endif // BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP
diff --git a/3rdParty/Boost/boost/algorithm/string/detail/finder.hpp b/3rdParty/Boost/boost/algorithm/string/detail/finder.hpp
deleted file mode 100644
index c6d0752..0000000
--- a/3rdParty/Boost/boost/algorithm/string/detail/finder.hpp
+++ /dev/null
@@ -1,646 +0,0 @@
-// Boost string_algo library finder.hpp header file ---------------------------//
-
-// 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.
-
-#ifndef BOOST_STRING_FINDER_DETAIL_HPP
-#define BOOST_STRING_FINDER_DETAIL_HPP
-
-#include <boost/algorithm/string/config.hpp>
-#include <boost/algorithm/string/constants.hpp>
-#include <boost/detail/iterator.hpp>
-
-#include <boost/range/iterator_range.hpp>
-#include <boost/range/begin.hpp>
-#include <boost/range/end.hpp>
-#include <boost/range/empty.hpp>
-#include <boost/range/as_literal.hpp>
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-
-// find first functor -----------------------------------------------//
-
- // find a subsequence in the sequence ( functor )
- /*
- Returns a pair <begin,end> marking the subsequence in the sequence.
- If the find fails, functor returns <End,End>
- */
- template<typename SearchIteratorT,typename PredicateT>
- struct first_finderF
- {
- typedef SearchIteratorT search_iterator_type;
-
- // Construction
- template< typename SearchT >
- first_finderF( const SearchT& Search, PredicateT Comp ) :
- m_Search(::boost::begin(Search), ::boost::end(Search)), m_Comp(Comp) {}
- first_finderF(
- search_iterator_type SearchBegin,
- search_iterator_type SearchEnd,
- PredicateT Comp ) :
- m_Search(SearchBegin, SearchEnd), m_Comp(Comp) {}
-
- // Operation
- template< typename ForwardIteratorT >
- iterator_range<ForwardIteratorT>
- operator()(
- ForwardIteratorT Begin,
- ForwardIteratorT End ) const
- {
- typedef iterator_range<ForwardIteratorT> result_type;
- typedef ForwardIteratorT input_iterator_type;
-
- // Outer loop
- for(input_iterator_type OuterIt=Begin;
- OuterIt!=End;
- ++OuterIt)
- {
- // Sanity check
- if( boost::empty(m_Search) )
- return result_type( End, End );
-
- input_iterator_type InnerIt=OuterIt;
- search_iterator_type SubstrIt=m_Search.begin();
- for(;
- InnerIt!=End && SubstrIt!=m_Search.end();
- ++InnerIt,++SubstrIt)
- {
- if( !( m_Comp(*InnerIt,*SubstrIt) ) )
- break;
- }
-
- // Substring matching succeeded
- if ( SubstrIt==m_Search.end() )
- return result_type( OuterIt, InnerIt );
- }
-
- return result_type( End, End );
- }
-
- private:
- iterator_range<search_iterator_type> m_Search;
- PredicateT m_Comp;
- };
-
-// find last functor -----------------------------------------------//
-
- // find the last match a subseqeunce in the sequence ( functor )
- /*
- Returns a pair <begin,end> marking the subsequence in the sequence.
- If the find fails, returns <End,End>
- */
- template<typename SearchIteratorT, typename PredicateT>
- struct last_finderF
- {
- typedef SearchIteratorT search_iterator_type;
- typedef first_finderF<
- search_iterator_type,
- PredicateT> first_finder_type;
-
- // Construction
- template< typename SearchT >
- last_finderF( const SearchT& Search, PredicateT Comp ) :
- m_Search(::boost::begin(Search), ::boost::end(Search)), m_Comp(Comp) {}
- last_finderF(
- search_iterator_type SearchBegin,
- search_iterator_type SearchEnd,
- PredicateT Comp ) :
- m_Search(SearchBegin, SearchEnd), m_Comp(Comp) {}
-
- // Operation
- template< typename ForwardIteratorT >
- iterator_range<ForwardIteratorT>
- operator()(
- ForwardIteratorT Begin,
- ForwardIteratorT End ) const
- {
- typedef iterator_range<ForwardIteratorT> result_type;
-
- if( boost::empty(m_Search) )
- return result_type( End, End );
-
- typedef BOOST_STRING_TYPENAME boost::detail::
- iterator_traits<ForwardIteratorT>::iterator_category category;
-
- return findit( Begin, End, category() );
- }
-
- private:
- // forward iterator
- template< typename ForwardIteratorT >
- iterator_range<ForwardIteratorT>
- findit(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- std::forward_iterator_tag ) const
- {
- typedef ForwardIteratorT input_iterator_type;
- typedef iterator_range<ForwardIteratorT> result_type;
-
- first_finder_type first_finder(
- m_Search.begin(), m_Search.end(), m_Comp );
-
- result_type M=first_finder( Begin, End );
- result_type Last=M;
-
- while( M )
- {
- Last=M;
- M=first_finder( ::boost::end(M), End );
- }
-
- return Last;
- }
-
- // bidirectional iterator
- template< typename ForwardIteratorT >
- iterator_range<ForwardIteratorT>
- findit(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- std::bidirectional_iterator_tag ) const
- {
- typedef iterator_range<ForwardIteratorT> result_type;
- typedef ForwardIteratorT input_iterator_type;
-
- // Outer loop
- for(input_iterator_type OuterIt=End;
- OuterIt!=Begin; )
- {
- input_iterator_type OuterIt2=--OuterIt;
-
- input_iterator_type InnerIt=OuterIt2;
- search_iterator_type SubstrIt=m_Search.begin();
- for(;
- InnerIt!=End && SubstrIt!=m_Search.end();
- ++InnerIt,++SubstrIt)
- {
- if( !( m_Comp(*InnerIt,*SubstrIt) ) )
- break;
- }
-
- // Substring matching succeeded
- if( SubstrIt==m_Search.end() )
- return result_type( OuterIt2, InnerIt );
- }
-
- return result_type( End, End );
- }
-
- private:
- iterator_range<search_iterator_type> m_Search;
- PredicateT m_Comp;
- };
-
-// find n-th functor -----------------------------------------------//
-
- // find the n-th match of a subsequence in the sequence ( functor )
- /*
- Returns a pair <begin,end> marking the subsequence in the sequence.
- If the find fails, returns <End,End>
- */
- template<typename SearchIteratorT, typename PredicateT>
- struct nth_finderF
- {
- typedef SearchIteratorT search_iterator_type;
- typedef first_finderF<
- search_iterator_type,
- PredicateT> first_finder_type;
- typedef last_finderF<
- search_iterator_type,
- PredicateT> last_finder_type;
-
- // Construction
- template< typename SearchT >
- nth_finderF(
- const SearchT& Search,
- int Nth,
- PredicateT Comp) :
- m_Search(::boost::begin(Search), ::boost::end(Search)),
- m_Nth(Nth),
- m_Comp(Comp) {}
- nth_finderF(
- search_iterator_type SearchBegin,
- search_iterator_type SearchEnd,
- int Nth,
- PredicateT Comp) :
- m_Search(SearchBegin, SearchEnd),
- m_Nth(Nth),
- m_Comp(Comp) {}
-
- // Operation
- template< typename ForwardIteratorT >
- iterator_range<ForwardIteratorT>
- operator()(
- ForwardIteratorT Begin,
- ForwardIteratorT End ) const
- {
- if(m_Nth>=0)
- {
- return find_forward(Begin, End, m_Nth);
- }
- else
- {
- return find_backward(Begin, End, -m_Nth);
- }
-
- }
-
- private:
- // Implementation helpers
- template< typename ForwardIteratorT >
- iterator_range<ForwardIteratorT>
- find_forward(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N) const
- {
- typedef ForwardIteratorT input_iterator_type;
- typedef iterator_range<ForwardIteratorT> result_type;
-
- // Sanity check
- if( boost::empty(m_Search) )
- return result_type( End, End );
-
- // Instantiate find functor
- first_finder_type first_finder(
- m_Search.begin(), m_Search.end(), m_Comp );
-
- result_type M( Begin, Begin );
-
- for( unsigned int n=0; n<=N; ++n )
- {
- // find next match
- M=first_finder( ::boost::end(M), End );
-
- if ( !M )
- {
- // Subsequence not found, return
- return M;
- }
- }
-
- return M;
- }
-
- template< typename ForwardIteratorT >
- iterator_range<ForwardIteratorT>
- find_backward(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N) const
- {
- typedef ForwardIteratorT input_iterator_type;
- typedef iterator_range<ForwardIteratorT> result_type;
-
- // Sanity check
- if( boost::empty(m_Search) )
- return result_type( End, End );
-
- // Instantiate find functor
- last_finder_type last_finder(
- m_Search.begin(), m_Search.end(), m_Comp );
-
- result_type M( End, End );
-
- for( unsigned int n=1; n<=N; ++n )
- {
- // find next match
- M=last_finder( Begin, ::boost::begin(M) );
-
- if ( !M )
- {
- // Subsequence not found, return
- return M;
- }
- }
-
- return M;
- }
-
-
- private:
- iterator_range<search_iterator_type> m_Search;
- int m_Nth;
- PredicateT m_Comp;
- };
-
-// find head/tail implementation helpers ---------------------------//
-
- template<typename ForwardIteratorT>
- iterator_range<ForwardIteratorT>
- find_head_impl(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N,
- std::forward_iterator_tag )
- {
- typedef ForwardIteratorT input_iterator_type;
- typedef iterator_range<ForwardIteratorT> result_type;
-
- input_iterator_type It=Begin;
- for(
- unsigned int Index=0;
- Index<N && It!=End; ++Index,++It ) {};
-
- return result_type( Begin, It );
- }
-
- template< typename ForwardIteratorT >
- iterator_range<ForwardIteratorT>
- find_head_impl(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N,
- std::random_access_iterator_tag )
- {
- typedef ForwardIteratorT input_iterator_type;
- typedef iterator_range<ForwardIteratorT> result_type;
-
- if ( (End<=Begin) || ( static_cast<unsigned int>(End-Begin) < N ) )
- return result_type( Begin, End );
-
- return result_type(Begin,Begin+N);
- }
-
- // Find head implementation
- template<typename ForwardIteratorT>
- iterator_range<ForwardIteratorT>
- find_head_impl(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N )
- {
- typedef BOOST_STRING_TYPENAME boost::detail::
- iterator_traits<ForwardIteratorT>::iterator_category category;
-
- return find_head_impl( Begin, End, N, category() );
- }
-
- template< typename ForwardIteratorT >
- iterator_range<ForwardIteratorT>
- find_tail_impl(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N,
- std::forward_iterator_tag )
- {
- typedef ForwardIteratorT input_iterator_type;
- typedef iterator_range<ForwardIteratorT> result_type;
-
- unsigned int Index=0;
- input_iterator_type It=Begin;
- input_iterator_type It2=Begin;
-
- // Advance It2 by N increments
- for( Index=0; Index<N && It2!=End; ++Index,++It2 ) {};
-
- // Advance It, It2 to the end
- for(; It2!=End; ++It,++It2 ) {};
-
- return result_type( It, It2 );
- }
-
- template< typename ForwardIteratorT >
- iterator_range<ForwardIteratorT>
- find_tail_impl(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N,
- std::bidirectional_iterator_tag )
- {
- typedef ForwardIteratorT input_iterator_type;
- typedef iterator_range<ForwardIteratorT> result_type;
-
- input_iterator_type It=End;
- for(
- unsigned int Index=0;
- Index<N && It!=Begin; ++Index,--It ) {};
-
- return result_type( It, End );
- }
-
- template< typename ForwardIteratorT >
- iterator_range<ForwardIteratorT>
- find_tail_impl(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N,
- std::random_access_iterator_tag )
- {
- typedef ForwardIteratorT input_iterator_type;
- typedef iterator_range<ForwardIteratorT> result_type;
-
- if ( (End<=Begin) || ( static_cast<unsigned int>(End-Begin) < N ) )
- return result_type( Begin, End );
-
- return result_type( End-N, End );
- }
-
- // Operation
- template< typename ForwardIteratorT >
- iterator_range<ForwardIteratorT>
- find_tail_impl(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N )
- {
- typedef BOOST_STRING_TYPENAME boost::detail::
- iterator_traits<ForwardIteratorT>::iterator_category category;
-
- return find_tail_impl( Begin, End, N, category() );
- }
-
-
-
-// find head functor -----------------------------------------------//
-
-
- // find a head in the sequence ( functor )
- /*
- This functor find a head of the specified range. For
- a specified N, the head is a subsequence of N starting
- elements of the range.
- */
- struct head_finderF
- {
- // Construction
- head_finderF( int N ) : m_N(N) {}
-
- // Operation
- template< typename ForwardIteratorT >
- iterator_range<ForwardIteratorT>
- operator()(
- ForwardIteratorT Begin,
- ForwardIteratorT End ) const
- {
- if(m_N>=0)
- {
- return find_head_impl( Begin, End, m_N );
- }
- else
- {
- iterator_range<ForwardIteratorT> Res=
- find_tail_impl( Begin, End, -m_N );
-
- return make_iterator_range(Begin, Res.begin());
- }
- }
-
- private:
- int m_N;
- };
-
-// find tail functor -----------------------------------------------//
-
-
- // find a tail in the sequence ( functor )
- /*
- This functor find a tail of the specified range. For
- a specified N, the head is a subsequence of N starting
- elements of the range.
- */
- struct tail_finderF
- {
- // Construction
- tail_finderF( int N ) : m_N(N) {}
-
- // Operation
- template< typename ForwardIteratorT >
- iterator_range<ForwardIteratorT>
- operator()(
- ForwardIteratorT Begin,
- ForwardIteratorT End ) const
- {
- if(m_N>=0)
- {
- return find_tail_impl( Begin, End, m_N );
- }
- else
- {
- iterator_range<ForwardIteratorT> Res=
- find_head_impl( Begin, End, -m_N );
-
- return make_iterator_range(Res.end(), End);
- }
- }
-
- private:
- int m_N;
- };
-
-// find token functor -----------------------------------------------//
-
- // find a token in a sequence ( functor )
- /*
- This find functor finds a token specified be a predicate
- in a sequence. It is equivalent of std::find algorithm,
- with an exception that it return range instead of a single
- iterator.
-
- If bCompress is set to true, adjacent matching tokens are
- concatenated into one match.
- */
- template< typename PredicateT >
- struct token_finderF
- {
- // Construction
- token_finderF(
- PredicateT Pred,
- token_compress_mode_type eCompress=token_compress_off ) :
- m_Pred(Pred), m_eCompress(eCompress) {}
-
- // Operation
- template< typename ForwardIteratorT >
- iterator_range<ForwardIteratorT>
- operator()(
- ForwardIteratorT Begin,
- ForwardIteratorT End ) const
- {
- typedef iterator_range<ForwardIteratorT> result_type;
-
- ForwardIteratorT It=std::find_if( Begin, End, m_Pred );
-
- if( It==End )
- {
- return result_type( End, End );
- }
- else
- {
- ForwardIteratorT It2=It;
-
- if( m_eCompress==token_compress_on )
- {
- // Find first non-matching character
- while( It2!=End && m_Pred(*It2) ) ++It2;
- }
- else
- {
- // Advance by one position
- ++It2;
- }
-
- return result_type( It, It2 );
- }
- }
-
- private:
- PredicateT m_Pred;
- token_compress_mode_type m_eCompress;
- };
-
-// find range functor -----------------------------------------------//
-
- // find a range in the sequence ( functor )
- /*
- This functor actually does not perform any find operation.
- It always returns given iterator range as a result.
- */
- template<typename ForwardIterator1T>
- struct range_finderF
- {
- typedef ForwardIterator1T input_iterator_type;
- typedef iterator_range<input_iterator_type> result_type;
-
- // Construction
- range_finderF(
- input_iterator_type Begin,
- input_iterator_type End ) : m_Range(Begin, End) {}
-
- range_finderF(const iterator_range<input_iterator_type>& Range) :
- m_Range(Range) {}
-
- // Operation
- template< typename ForwardIterator2T >
- iterator_range<ForwardIterator2T>
- operator()(
- ForwardIterator2T,
- ForwardIterator2T ) const
- {
-#if BOOST_WORKAROUND( __MWERKS__, <= 0x3003 )
- return iterator_range<const ForwardIterator2T>(this->m_Range);
-#elif BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
- return iterator_range<ForwardIterator2T>(m_Range.begin(), m_Range.end());
-#else
- return m_Range;
-#endif
- }
-
- private:
- iterator_range<input_iterator_type> m_Range;
- };
-
-
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-#endif // BOOST_STRING_FINDER_DETAIL_HPP
diff --git a/3rdParty/Boost/boost/algorithm/string/detail/formatter.hpp b/3rdParty/Boost/boost/algorithm/string/detail/formatter.hpp
deleted file mode 100644
index bd6a780..0000000
--- a/3rdParty/Boost/boost/algorithm/string/detail/formatter.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-// Boost string_algo library formatter.hpp header file ---------------------------//
-
-// 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.
-
-#ifndef BOOST_STRING_FORMATTER_DETAIL_HPP
-#define BOOST_STRING_FORMATTER_DETAIL_HPP
-
-
-#include <boost/range/iterator_range.hpp>
-#include <boost/range/begin.hpp>
-#include <boost/range/end.hpp>
-#include <boost/range/const_iterator.hpp>
-
-#include <boost/algorithm/string/detail/util.hpp>
-
-// generic replace functors -----------------------------------------------//
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-// const format functor ----------------------------------------------------//
-
- // constant format functor
- template<typename RangeT>
- struct const_formatF
- {
- private:
- typedef BOOST_STRING_TYPENAME
- range_const_iterator<RangeT>::type format_iterator;
- typedef iterator_range<format_iterator> result_type;
-
- public:
- // Construction
- const_formatF(const RangeT& Format) :
- m_Format(::boost::begin(Format), ::boost::end(Format)) {}
-
- // Operation
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
- template<typename Range2T>
- result_type& operator()(const Range2T&)
- {
- return m_Format;
- }
-#endif
-
- template<typename Range2T>
- const result_type& operator()(const Range2T&) const
- {
- return m_Format;
- }
-
- private:
- result_type m_Format;
- };
-
-// identity format functor ----------------------------------------------------//
-
- // identity format functor
- template<typename RangeT>
- struct identity_formatF
- {
- // Operation
- template< typename Range2T >
- const RangeT& operator()(const Range2T& Replace) const
- {
- return RangeT(::boost::begin(Replace), ::boost::end(Replace));
- }
- };
-
-// empty format functor ( used by erase ) ------------------------------------//
-
- // empty format functor
- template< typename CharT >
- struct empty_formatF
- {
- template< typename ReplaceT >
- empty_container<CharT> operator()(const ReplaceT&) const
- {
- return empty_container<CharT>();
- }
- };
-
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-#endif // BOOST_STRING_FORMATTER_DETAIL_HPP
diff --git a/3rdParty/Boost/boost/algorithm/string/detail/replace_storage.hpp b/3rdParty/Boost/boost/algorithm/string/detail/replace_storage.hpp
deleted file mode 100644
index 7aff247..0000000
--- a/3rdParty/Boost/boost/algorithm/string/detail/replace_storage.hpp
+++ /dev/null
@@ -1,159 +0,0 @@
-// Boost string_algo library replace_storage.hpp header file ---------------------------//
-
-// 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.
-
-#ifndef BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP
-#define BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP
-
-#include <boost/algorithm/string/config.hpp>
-#include <algorithm>
-#include <boost/mpl/bool.hpp>
-#include <boost/algorithm/string/sequence_traits.hpp>
-#include <boost/algorithm/string/detail/sequence.hpp>
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-// storage handling routines -----------------------------------------------//
-
- template< typename StorageT, typename OutputIteratorT >
- inline OutputIteratorT move_from_storage(
- StorageT& Storage,
- OutputIteratorT DestBegin,
- OutputIteratorT DestEnd )
- {
- OutputIteratorT OutputIt=DestBegin;
-
- while( !Storage.empty() && OutputIt!=DestEnd )
- {
- *OutputIt=Storage.front();
- Storage.pop_front();
- ++OutputIt;
- }
-
- return OutputIt;
- }
-
- template< typename StorageT, typename WhatT >
- inline void copy_to_storage(
- StorageT& Storage,
- const WhatT& What )
- {
- Storage.insert( Storage.end(), ::boost::begin(What), ::boost::end(What) );
- }
-
-
-// process segment routine -----------------------------------------------//
-
- template< bool HasStableIterators >
- struct process_segment_helper
- {
- // Optimized version of process_segment for generic sequence
- template<
- typename StorageT,
- typename InputT,
- typename ForwardIteratorT >
- ForwardIteratorT operator()(
- StorageT& Storage,
- InputT& /*Input*/,
- ForwardIteratorT InsertIt,
- ForwardIteratorT SegmentBegin,
- ForwardIteratorT SegmentEnd )
- {
- // Copy data from the storage until the beginning of the segment
- ForwardIteratorT It=move_from_storage( Storage, InsertIt, SegmentBegin );
-
- // 3 cases are possible :
- // a) Storage is empty, It==SegmentBegin
- // b) Storage is empty, It!=SegmentBegin
- // c) Storage is not empty
-
- if( Storage.empty() )
- {
- if( It==SegmentBegin )
- {
- // Case a) everything is grand, just return end of segment
- return SegmentEnd;
- }
- else
- {
- // Case b) move the segment backwards
- return std::copy( SegmentBegin, SegmentEnd, It );
- }
- }
- else
- {
- // Case c) -> shift the segment to the left and keep the overlap in the storage
- while( It!=SegmentEnd )
- {
- // Store value into storage
- Storage.push_back( *It );
- // Get the top from the storage and put it here
- *It=Storage.front();
- Storage.pop_front();
-
- // Advance
- ++It;
- }
-
- return It;
- }
- }
- };
-
- template<>
- struct process_segment_helper< true >
- {
- // Optimized version of process_segment for list-like sequence
- template<
- typename StorageT,
- typename InputT,
- typename ForwardIteratorT >
- ForwardIteratorT operator()(
- StorageT& Storage,
- InputT& Input,
- ForwardIteratorT InsertIt,
- ForwardIteratorT SegmentBegin,
- ForwardIteratorT SegmentEnd )
-
- {
- // Call replace to do the job
- replace( Input, InsertIt, SegmentBegin, Storage );
- // Empty the storage
- Storage.clear();
- // Iterators were not changed, simply return the end of segment
- return SegmentEnd;
- }
- };
-
- // Process one segment in the replace_all algorithm
- template<
- typename StorageT,
- typename InputT,
- typename ForwardIteratorT >
- inline ForwardIteratorT process_segment(
- StorageT& Storage,
- InputT& Input,
- ForwardIteratorT InsertIt,
- ForwardIteratorT SegmentBegin,
- ForwardIteratorT SegmentEnd )
- {
- return
- process_segment_helper<
- has_stable_iterators<InputT>::value>()(
- Storage, Input, InsertIt, SegmentBegin, SegmentEnd );
- }
-
-
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-#endif // BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP
diff --git a/3rdParty/Boost/boost/algorithm/string/detail/sequence.hpp b/3rdParty/Boost/boost/algorithm/string/detail/sequence.hpp
deleted file mode 100644
index de01350..0000000
--- a/3rdParty/Boost/boost/algorithm/string/detail/sequence.hpp
+++ /dev/null
@@ -1,200 +0,0 @@
-// Boost string_algo library sequence.hpp header file ---------------------------//
-
-// 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.
-
-#ifndef BOOST_STRING_DETAIL_SEQUENCE_HPP
-#define BOOST_STRING_DETAIL_SEQUENCE_HPP
-
-#include <boost/algorithm/string/config.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/logical.hpp>
-#include <boost/range/begin.hpp>
-#include <boost/range/end.hpp>
-
-#include <boost/algorithm/string/sequence_traits.hpp>
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-// insert helpers -------------------------------------------------//
-
- template< typename InputT, typename ForwardIteratorT >
- inline void insert(
- InputT& Input,
- BOOST_STRING_TYPENAME InputT::iterator At,
- ForwardIteratorT Begin,
- ForwardIteratorT End )
- {
- Input.insert( At, Begin, End );
- }
-
- template< typename InputT, typename InsertT >
- inline void insert(
- InputT& Input,
- BOOST_STRING_TYPENAME InputT::iterator At,
- const InsertT& Insert )
- {
- insert( Input, At, ::boost::begin(Insert), ::boost::end(Insert) );
- }
-
-// erase helper ---------------------------------------------------//
-
- // Erase a range in the sequence
- /*
- Returns the iterator pointing just after the erase subrange
- */
- template< typename InputT >
- inline typename InputT::iterator erase(
- InputT& Input,
- BOOST_STRING_TYPENAME InputT::iterator From,
- BOOST_STRING_TYPENAME InputT::iterator To )
- {
- return Input.erase( From, To );
- }
-
-// replace helper implementation ----------------------------------//
-
- // Optimized version of replace for generic sequence containers
- // Assumption: insert and erase are expensive
- template< bool HasConstTimeOperations >
- struct replace_const_time_helper
- {
- template< typename InputT, typename ForwardIteratorT >
- void operator()(
- InputT& Input,
- BOOST_STRING_TYPENAME InputT::iterator From,
- BOOST_STRING_TYPENAME InputT::iterator To,
- ForwardIteratorT Begin,
- ForwardIteratorT End )
- {
- // Copy data to the container ( as much as possible )
- ForwardIteratorT InsertIt=Begin;
- BOOST_STRING_TYPENAME InputT::iterator InputIt=From;
- for(; InsertIt!=End && InputIt!=To; InsertIt++, InputIt++ )
- {
- *InputIt=*InsertIt;
- }
-
- if ( InsertIt!=End )
- {
- // Replace sequence is longer, insert it
- Input.insert( InputIt, InsertIt, End );
- }
- else
- {
- if ( InputIt!=To )
- {
- // Replace sequence is shorter, erase the rest
- Input.erase( InputIt, To );
- }
- }
- }
- };
-
- template<>
- struct replace_const_time_helper< true >
- {
- // Const-time erase and insert methods -> use them
- template< typename InputT, typename ForwardIteratorT >
- void operator()(
- InputT& Input,
- BOOST_STRING_TYPENAME InputT::iterator From,
- BOOST_STRING_TYPENAME InputT::iterator To,
- ForwardIteratorT Begin,
- ForwardIteratorT End )
- {
- BOOST_STRING_TYPENAME InputT::iterator At=Input.erase( From, To );
- if ( Begin!=End )
- {
- if(!Input.empty())
- {
- Input.insert( At, Begin, End );
- }
- else
- {
- Input.insert( Input.begin(), Begin, End );
- }
- }
- }
- };
-
- // No native replace method
- template< bool HasNative >
- struct replace_native_helper
- {
- template< typename InputT, typename ForwardIteratorT >
- void operator()(
- InputT& Input,
- BOOST_STRING_TYPENAME InputT::iterator From,
- BOOST_STRING_TYPENAME InputT::iterator To,
- ForwardIteratorT Begin,
- ForwardIteratorT End )
- {
- replace_const_time_helper<
- boost::mpl::and_<
- has_const_time_insert<InputT>,
- has_const_time_erase<InputT> >::value >()(
- Input, From, To, Begin, End );
- }
- };
-
- // Container has native replace method
- template<>
- struct replace_native_helper< true >
- {
- template< typename InputT, typename ForwardIteratorT >
- void operator()(
- InputT& Input,
- BOOST_STRING_TYPENAME InputT::iterator From,
- BOOST_STRING_TYPENAME InputT::iterator To,
- ForwardIteratorT Begin,
- ForwardIteratorT End )
- {
- Input.replace( From, To, Begin, End );
- }
- };
-
-// replace helper -------------------------------------------------//
-
- template< typename InputT, typename ForwardIteratorT >
- inline void replace(
- InputT& Input,
- BOOST_STRING_TYPENAME InputT::iterator From,
- BOOST_STRING_TYPENAME InputT::iterator To,
- ForwardIteratorT Begin,
- ForwardIteratorT End )
- {
- replace_native_helper< has_native_replace<InputT>::value >()(
- Input, From, To, Begin, End );
- }
-
- template< typename InputT, typename InsertT >
- inline void replace(
- InputT& Input,
- BOOST_STRING_TYPENAME InputT::iterator From,
- BOOST_STRING_TYPENAME InputT::iterator To,
- const InsertT& Insert )
- {
- if(From!=To)
- {
- replace( Input, From, To, ::boost::begin(Insert), ::boost::end(Insert) );
- }
- else
- {
- insert( Input, From, ::boost::begin(Insert), ::boost::end(Insert) );
- }
- }
-
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-
-#endif // BOOST_STRING_DETAIL_SEQUENCE_HPP
diff --git a/3rdParty/Boost/boost/algorithm/string/detail/util.hpp b/3rdParty/Boost/boost/algorithm/string/detail/util.hpp
deleted file mode 100644
index 7e8471f..0000000
--- a/3rdParty/Boost/boost/algorithm/string/detail/util.hpp
+++ /dev/null
@@ -1,106 +0,0 @@
-// Boost string_algo library util.hpp header file ---------------------------//
-
-// 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.
-
-#ifndef BOOST_STRING_UTIL_DETAIL_HPP
-#define BOOST_STRING_UTIL_DETAIL_HPP
-
-#include <boost/algorithm/string/config.hpp>
-#include <functional>
-#include <boost/range/iterator_range.hpp>
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-// empty container -----------------------------------------------//
-
- // empty_container
- /*
- This class represents always empty container,
- containing elements of type CharT.
-
- It is supposed to be used in a const version only
- */
- template< typename CharT >
- struct empty_container
- {
- typedef empty_container<CharT> type;
- typedef CharT value_type;
- typedef std::size_t size_type;
- typedef std::ptrdiff_t difference_type;
- typedef const value_type& reference;
- typedef const value_type& const_reference;
- typedef const value_type* iterator;
- typedef const value_type* const_iterator;
-
-
- // Operations
- const_iterator begin() const
- {
- return reinterpret_cast<const_iterator>(0);
- }
-
- const_iterator end() const
- {
- return reinterpret_cast<const_iterator>(0);
- }
-
- bool empty() const
- {
- return false;
- }
-
- size_type size() const
- {
- return 0;
- }
- };
-
-// bounded copy algorithm -----------------------------------------------//
-
- // Bounded version of the std::copy algorithm
- template<typename InputIteratorT, typename OutputIteratorT>
- inline OutputIteratorT bounded_copy(
- InputIteratorT First,
- InputIteratorT Last,
- OutputIteratorT DestFirst,
- OutputIteratorT DestLast )
- {
- InputIteratorT InputIt=First;
- OutputIteratorT OutputIt=DestFirst;
- for(; InputIt!=Last && OutputIt!=DestLast; InputIt++, OutputIt++ )
- {
- *OutputIt=*InputIt;
- }
-
- return OutputIt;
- }
-
-// iterator range utilities -----------------------------------------//
-
- // copy range functor
- template<
- typename SeqT,
- typename IteratorT=BOOST_STRING_TYPENAME SeqT::const_iterator >
- struct copy_iterator_rangeF :
- public std::unary_function< iterator_range<IteratorT>, SeqT >
- {
- SeqT operator()( const iterator_range<IteratorT>& Range ) const
- {
- return copy_range<SeqT>(Range);
- }
- };
-
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-
-#endif // BOOST_STRING_UTIL_DETAIL_HPP