aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbugaevskiy <bugaevskiy@yandex-team.com>2022-08-10 20:01:27 +0300
committerbugaevskiy <bugaevskiy@yandex-team.com>2022-08-10 20:01:27 +0300
commit90861f3b86acca8c6f4e2eb85a1ab72ea3962a71 (patch)
treee0673322ab5ebc380c8f211de9954556f1e13901
parent8766c8a0c9eff15893c1963e5f83f294a6dce1eb (diff)
downloadydb-90861f3b86acca8c6f4e2eb85a1ab72ea3962a71.tar.gz
Reimport boost/iterator as a separate project
-rw-r--r--CMakeLists.darwin.txt1
-rw-r--r--CMakeLists.linux.txt1
-rw-r--r--contrib/restricted/boost/CMakeLists.txt1
-rw-r--r--contrib/restricted/boost/boost/function_output_iterator.hpp14
-rw-r--r--contrib/restricted/boost/boost/generator_iterator.hpp85
-rw-r--r--contrib/restricted/boost/boost/iterator/detail/any_conversion_eater.hpp21
-rw-r--r--contrib/restricted/boost/boost/iterator/detail/minimum_category.hpp19
-rw-r--r--contrib/restricted/boost/boost/iterator/distance.hpp65
-rw-r--r--contrib/restricted/boost/boost/iterator/function_input_iterator.hpp172
-rw-r--r--contrib/restricted/boost/boost/iterator/function_output_iterator.hpp62
-rw-r--r--contrib/restricted/boost/boost/iterator/is_lvalue_iterator.hpp164
-rw-r--r--contrib/restricted/boost/boost/iterator/is_readable_iterator.hpp119
-rw-r--r--contrib/restricted/boost/boost/iterator/iterator_archetypes.hpp509
-rw-r--r--contrib/restricted/boost/boost/iterator/new_iterator_tests.hpp265
-rw-r--r--contrib/restricted/boost/boost/iterator/permutation_iterator.hpp76
-rw-r--r--contrib/restricted/boost/boost/pending/detail/int_iterator.hpp82
-rw-r--r--contrib/restricted/boost/boost/pending/iterator_adaptors.hpp6
-rw-r--r--contrib/restricted/boost/boost/pending/iterator_tests.hpp288
-rw-r--r--contrib/restricted/boost/boost/shared_container_iterator.hpp69
-rw-r--r--contrib/restricted/boost/iterator/CMakeLists.txt31
-rw-r--r--contrib/restricted/boost/iterator/include/boost/indirect_reference.hpp (renamed from contrib/restricted/boost/boost/indirect_reference.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/advance.hpp (renamed from contrib/restricted/boost/boost/iterator/advance.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/counting_iterator.hpp (renamed from contrib/restricted/boost/boost/iterator/counting_iterator.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/detail/config_def.hpp (renamed from contrib/restricted/boost/boost/iterator/detail/config_def.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/detail/config_undef.hpp (renamed from contrib/restricted/boost/boost/iterator/detail/config_undef.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/detail/enable_if.hpp (renamed from contrib/restricted/boost/boost/iterator/detail/enable_if.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/detail/facade_iterator_category.hpp (renamed from contrib/restricted/boost/boost/iterator/detail/facade_iterator_category.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/filter_iterator.hpp (renamed from contrib/restricted/boost/boost/iterator/filter_iterator.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/indirect_iterator.hpp (renamed from contrib/restricted/boost/boost/iterator/indirect_iterator.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/interoperable.hpp (renamed from contrib/restricted/boost/boost/iterator/interoperable.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/iterator_adaptor.hpp (renamed from contrib/restricted/boost/boost/iterator/iterator_adaptor.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/iterator_categories.hpp (renamed from contrib/restricted/boost/boost/iterator/iterator_categories.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/iterator_concepts.hpp (renamed from contrib/restricted/boost/boost/iterator/iterator_concepts.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/iterator_facade.hpp (renamed from contrib/restricted/boost/boost/iterator/iterator_facade.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/iterator_traits.hpp (renamed from contrib/restricted/boost/boost/iterator/iterator_traits.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/minimum_category.hpp (renamed from contrib/restricted/boost/boost/iterator/minimum_category.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/reverse_iterator.hpp (renamed from contrib/restricted/boost/boost/iterator/reverse_iterator.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/transform_iterator.hpp (renamed from contrib/restricted/boost/boost/iterator/transform_iterator.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator/zip_iterator.hpp (renamed from contrib/restricted/boost/boost/iterator/zip_iterator.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/iterator_adaptors.hpp (renamed from contrib/restricted/boost/boost/iterator_adaptors.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/next_prior.hpp (renamed from contrib/restricted/boost/boost/next_prior.hpp)0
-rw-r--r--contrib/restricted/boost/iterator/include/boost/pointee.hpp (renamed from contrib/restricted/boost/boost/pointee.hpp)0
42 files changed, 34 insertions, 2016 deletions
diff --git a/CMakeLists.darwin.txt b/CMakeLists.darwin.txt
index a490a31e04f..e56e1c0b9df 100644
--- a/CMakeLists.darwin.txt
+++ b/CMakeLists.darwin.txt
@@ -388,6 +388,7 @@ add_subdirectory(contrib/restricted/boost/interval)
add_subdirectory(contrib/restricted/boost/logic)
add_subdirectory(contrib/restricted/boost/intrusive)
add_subdirectory(contrib/restricted/boost/io)
+add_subdirectory(contrib/restricted/boost/iterator)
add_subdirectory(contrib/restricted/boost/mp11)
add_subdirectory(contrib/restricted/boost/numeric_conversion)
add_subdirectory(contrib/restricted/boost/polygon)
diff --git a/CMakeLists.linux.txt b/CMakeLists.linux.txt
index 2aaa6d44474..5cde8478922 100644
--- a/CMakeLists.linux.txt
+++ b/CMakeLists.linux.txt
@@ -391,6 +391,7 @@ add_subdirectory(contrib/restricted/boost/interval)
add_subdirectory(contrib/restricted/boost/logic)
add_subdirectory(contrib/restricted/boost/intrusive)
add_subdirectory(contrib/restricted/boost/io)
+add_subdirectory(contrib/restricted/boost/iterator)
add_subdirectory(contrib/restricted/boost/mp11)
add_subdirectory(contrib/restricted/boost/numeric_conversion)
add_subdirectory(contrib/restricted/boost/polygon)
diff --git a/contrib/restricted/boost/CMakeLists.txt b/contrib/restricted/boost/CMakeLists.txt
index 15878e2f73e..7a62f910d7d 100644
--- a/contrib/restricted/boost/CMakeLists.txt
+++ b/contrib/restricted/boost/CMakeLists.txt
@@ -33,6 +33,7 @@ target_link_libraries(contrib-restricted-boost INTERFACE
restricted-boost-interval
restricted-boost-intrusive
restricted-boost-io
+ restricted-boost-iterator
restricted-boost-move
restricted-boost-mp11
restricted-boost-mpl
diff --git a/contrib/restricted/boost/boost/function_output_iterator.hpp b/contrib/restricted/boost/boost/function_output_iterator.hpp
deleted file mode 100644
index 15dbcb9f545..00000000000
--- a/contrib/restricted/boost/boost/function_output_iterator.hpp
+++ /dev/null
@@ -1,14 +0,0 @@
-// (C) Copyright Andrey Semashev 2017.
-// 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)
-
-#ifndef BOOST_FUNCTION_OUTPUT_ITERATOR_HPP
-#define BOOST_FUNCTION_OUTPUT_ITERATOR_HPP
-
-// This is a deprecated header left for backward compatibility.
-// Use boost/iterator/function_output_iterator.hpp instead.
-
-#include <boost/iterator/function_output_iterator.hpp>
-
-#endif // BOOST_FUNCTION_OUTPUT_ITERATOR_HPP
diff --git a/contrib/restricted/boost/boost/generator_iterator.hpp b/contrib/restricted/boost/boost/generator_iterator.hpp
deleted file mode 100644
index 0fe1569c5a1..00000000000
--- a/contrib/restricted/boost/boost/generator_iterator.hpp
+++ /dev/null
@@ -1,85 +0,0 @@
-// (C) Copyright Jens Maurer 2001.
-// 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:
-
-// 15 Nov 2001 Jens Maurer
-// created.
-
-// See http://www.boost.org/libs/utility/iterator_adaptors.htm for documentation.
-
-#ifndef BOOST_ITERATOR_ADAPTOR_GENERATOR_ITERATOR_HPP
-#define BOOST_ITERATOR_ADAPTOR_GENERATOR_ITERATOR_HPP
-
-#include <boost/iterator/iterator_facade.hpp>
-#include <boost/ref.hpp>
-
-namespace boost {
-namespace iterators {
-
-template<class Generator>
-class generator_iterator
- : public iterator_facade<
- generator_iterator<Generator>
- , typename Generator::result_type
- , single_pass_traversal_tag
- , typename Generator::result_type const&
- >
-{
- typedef iterator_facade<
- generator_iterator<Generator>
- , typename Generator::result_type
- , single_pass_traversal_tag
- , typename Generator::result_type const&
- > super_t;
-
- public:
- generator_iterator() {}
- generator_iterator(Generator* g) : m_g(g), m_value((*m_g)()) {}
-
- void increment()
- {
- m_value = (*m_g)();
- }
-
- const typename Generator::result_type&
- dereference() const
- {
- return m_value;
- }
-
- bool equal(generator_iterator const& y) const
- {
- return this->m_g == y.m_g && this->m_value == y.m_value;
- }
-
- private:
- Generator* m_g;
- typename Generator::result_type m_value;
-};
-
-template<class Generator>
-struct generator_iterator_generator
-{
- typedef generator_iterator<Generator> type;
-};
-
-template <class Generator>
-inline generator_iterator<Generator>
-make_generator_iterator(Generator & gen)
-{
- typedef generator_iterator<Generator> result_t;
- return result_t(&gen);
-}
-
-} // namespace iterators
-
-using iterators::generator_iterator;
-using iterators::generator_iterator_generator;
-using iterators::make_generator_iterator;
-
-} // namespace boost
-
-#endif // BOOST_ITERATOR_ADAPTOR_GENERATOR_ITERATOR_HPP
diff --git a/contrib/restricted/boost/boost/iterator/detail/any_conversion_eater.hpp b/contrib/restricted/boost/boost/iterator/detail/any_conversion_eater.hpp
deleted file mode 100644
index 429421fdbfb..00000000000
--- a/contrib/restricted/boost/boost/iterator/detail/any_conversion_eater.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright David Abrahams 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)
-#ifndef ANY_CONVERSION_EATER_DWA20031117_HPP
-# define ANY_CONVERSION_EATER_DWA20031117_HPP
-
-namespace boost {
-namespace iterators {
-namespace detail {
-
-// This type can be used in traits to "eat" up the one user-defined
-// implicit conversion allowed.
-struct any_conversion_eater
-{
- template <class T>
- any_conversion_eater(T const&);
-};
-
-}}} // namespace boost::iterators::detail
-
-#endif // ANY_CONVERSION_EATER_DWA20031117_HPP
diff --git a/contrib/restricted/boost/boost/iterator/detail/minimum_category.hpp b/contrib/restricted/boost/boost/iterator/detail/minimum_category.hpp
deleted file mode 100644
index 748c0d3ef64..00000000000
--- a/contrib/restricted/boost/boost/iterator/detail/minimum_category.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright David Abrahams 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)
-#ifndef MINIMUM_CATEGORY_DWA20031119_HPP
-# define MINIMUM_CATEGORY_DWA20031119_HPP
-
-# include <boost/iterator/minimum_category.hpp>
-
-namespace boost {
-
-// This import below (as well as the whole header) is for backward compatibility
-// with boost/token_iterator.hpp. It should be removed as soon as that header is fixed.
-namespace detail {
-using iterators::minimum_category;
-} // namespace detail
-
-} // namespace boost
-
-#endif // MINIMUM_CATEGORY_DWA20031119_HPP
diff --git a/contrib/restricted/boost/boost/iterator/distance.hpp b/contrib/restricted/boost/boost/iterator/distance.hpp
deleted file mode 100644
index 8cf3f15c446..00000000000
--- a/contrib/restricted/boost/boost/iterator/distance.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright (C) 2017 Michel Morin.
-//
-// 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)
-
-#ifndef BOOST_ITERATOR_DISTANCE_HPP
-#define BOOST_ITERATOR_DISTANCE_HPP
-
-#include <boost/config.hpp>
-#include <boost/iterator/iterator_categories.hpp>
-#include <boost/iterator/iterator_traits.hpp>
-
-namespace boost {
-namespace iterators {
-
- namespace detail {
- template <typename SinglePassIterator>
- inline BOOST_CXX14_CONSTEXPR typename iterator_difference<SinglePassIterator>::type
- distance_impl(
- SinglePassIterator first
- , SinglePassIterator last
- , single_pass_traversal_tag
- )
- {
- typename iterator_difference<SinglePassIterator>::type n = 0;
- while (first != last) {
- ++first;
- ++n;
- }
- return n;
- }
-
- template <typename RandomAccessIterator>
- inline BOOST_CXX14_CONSTEXPR typename iterator_difference<RandomAccessIterator>::type
- distance_impl(
- RandomAccessIterator first
- , RandomAccessIterator last
- , random_access_traversal_tag
- )
- {
- return last - first;
- }
- }
-
- namespace distance_adl_barrier {
- template <typename SinglePassIterator>
- inline BOOST_CXX14_CONSTEXPR typename iterator_difference<SinglePassIterator>::type
- distance(SinglePassIterator first, SinglePassIterator last)
- {
- return detail::distance_impl(
- first, last, typename iterator_traversal<SinglePassIterator>::type()
- );
- }
- }
-
- using namespace distance_adl_barrier;
-
-} // namespace iterators
-
-using iterators::distance;
-
-} // namespace boost
-
-#endif
diff --git a/contrib/restricted/boost/boost/iterator/function_input_iterator.hpp b/contrib/restricted/boost/boost/iterator/function_input_iterator.hpp
deleted file mode 100644
index caa62729584..00000000000
--- a/contrib/restricted/boost/boost/iterator/function_input_iterator.hpp
+++ /dev/null
@@ -1,172 +0,0 @@
-// Copyright 2009 (C) Dean Michael Berris <me@deanberris.com>
-// Copyright 2012 (C) Google, Inc.
-// Copyright 2012 (C) Jeffrey Lee Hellrung, Jr.
-// 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)
-//
-
-#ifndef BOOST_FUNCTION_INPUT_ITERATOR
-#define BOOST_FUNCTION_INPUT_ITERATOR
-
-#include <boost/config.hpp>
-#include <boost/assert.hpp>
-#include <boost/core/addressof.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/function_types/is_function_pointer.hpp>
-#include <boost/function_types/result_type.hpp>
-#include <boost/iterator/iterator_facade.hpp>
-#include <boost/none.hpp>
-#include <boost/optional/optional.hpp>
-#include <boost/utility/result_of.hpp>
-
-#ifdef BOOST_RESULT_OF_USE_TR1
-#include <boost/type_traits/is_function.hpp>
-#endif
-
-namespace boost {
-
-namespace iterators {
-
- namespace impl {
-
- // Computes the return type of an lvalue-call with an empty argument,
- // i.e. decltype(declval<F&>()()). F should be a nullary lvalue-callable
- // or function.
- template <class F>
- struct result_of_nullary_lvalue_call
- {
- typedef typename result_of<
-#ifdef BOOST_RESULT_OF_USE_TR1
- typename mpl::if_<is_function<F>, F&, F>::type()
-#else
- F&()
-#endif
- >::type type;
- };
-
- template <class Function, class Input>
- class function_input_iterator
- : public iterator_facade<
- function_input_iterator<Function, Input>,
- typename result_of_nullary_lvalue_call<Function>::type,
- single_pass_traversal_tag,
- typename result_of_nullary_lvalue_call<Function>::type const &
- >
- {
- public:
- function_input_iterator() {}
- function_input_iterator(Function & f_, Input state_ = Input())
- : f(boost::addressof(f_)), state(state_) {}
-
- void increment() {
- if(value)
- value = none;
- else
- (*f)();
- ++state;
- }
-
- typename result_of_nullary_lvalue_call<Function>::type const &
- dereference() const {
- return (value ? value : value = (*f)()).get();
- }
-
- bool equal(function_input_iterator const & other) const {
- return f == other.f && state == other.state;
- }
-
- private:
- Function * f;
- Input state;
- mutable optional<typename result_of_nullary_lvalue_call<Function>::type> value;
- };
-
- template <class Function, class Input>
- class function_pointer_input_iterator
- : public iterator_facade<
- function_pointer_input_iterator<Function, Input>,
- typename function_types::result_type<Function>::type,
- single_pass_traversal_tag,
- typename function_types::result_type<Function>::type const &
- >
- {
- public:
- function_pointer_input_iterator() {}
- function_pointer_input_iterator(Function &f_, Input state_ = Input())
- : f(f_), state(state_) {}
-
- void increment() {
- if(value)
- value = none;
- else
- (*f)();
- ++state;
- }
-
- typename function_types::result_type<Function>::type const &
- dereference() const {
- return (value ? value : value = (*f)()).get();
- }
-
- bool equal(function_pointer_input_iterator const & other) const {
- return f == other.f && state == other.state;
- }
-
- private:
- Function f;
- Input state;
- mutable optional<typename function_types::result_type<Function>::type> value;
- };
-
- } // namespace impl
-
- template <class Function, class Input>
- class function_input_iterator
- : public mpl::if_<
- function_types::is_function_pointer<Function>,
- impl::function_pointer_input_iterator<Function,Input>,
- impl::function_input_iterator<Function,Input>
- >::type
- {
- typedef typename mpl::if_<
- function_types::is_function_pointer<Function>,
- impl::function_pointer_input_iterator<Function,Input>,
- impl::function_input_iterator<Function,Input>
- >::type base_type;
- public:
- function_input_iterator(Function & f, Input i)
- : base_type(f, i) {}
- };
-
- template <class Function, class Input>
- inline function_input_iterator<Function, Input>
- make_function_input_iterator(Function & f, Input state) {
- typedef function_input_iterator<Function, Input> result_t;
- return result_t(f, state);
- }
-
- template <class Function, class Input>
- inline function_input_iterator<Function*, Input>
- make_function_input_iterator(Function * f, Input state) {
- typedef function_input_iterator<Function*, Input> result_t;
- return result_t(f, state);
- }
-
- struct infinite {
- infinite & operator++() { return *this; }
- infinite & operator++(int) { return *this; }
- bool operator==(infinite &) const { return false; };
- bool operator==(infinite const &) const { return false; };
- };
-
-} // namespace iterators
-
-using iterators::function_input_iterator;
-using iterators::make_function_input_iterator;
-using iterators::infinite;
-
-} // namespace boost
-
-#endif
-
diff --git a/contrib/restricted/boost/boost/iterator/function_output_iterator.hpp b/contrib/restricted/boost/boost/iterator/function_output_iterator.hpp
deleted file mode 100644
index 51fe8350896..00000000000
--- a/contrib/restricted/boost/boost/iterator/function_output_iterator.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-// (C) Copyright Jeremy Siek 2001.
-// 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:
-
-// 27 Feb 2001 Jeremy Siek
-// Initial checkin.
-
-#ifndef BOOST_ITERATOR_FUNCTION_OUTPUT_ITERATOR_HPP
-#define BOOST_ITERATOR_FUNCTION_OUTPUT_ITERATOR_HPP
-
-#include <iterator>
-
-namespace boost {
-namespace iterators {
-
- template <class UnaryFunction>
- class function_output_iterator {
- typedef function_output_iterator self;
- public:
- typedef std::output_iterator_tag iterator_category;
- typedef void value_type;
- typedef void difference_type;
- typedef void pointer;
- typedef void reference;
-
- explicit function_output_iterator() {}
-
- explicit function_output_iterator(const UnaryFunction& f)
- : m_f(f) {}
-
- struct output_proxy {
- output_proxy(UnaryFunction& f) : m_f(f) { }
- template <class T> output_proxy& operator=(const T& value) {
- m_f(value);
- return *this;
- }
- UnaryFunction& m_f;
- };
- output_proxy operator*() { return output_proxy(m_f); }
- self& operator++() { return *this; }
- self& operator++(int) { return *this; }
- private:
- UnaryFunction m_f;
- };
-
- template <class UnaryFunction>
- inline function_output_iterator<UnaryFunction>
- make_function_output_iterator(const UnaryFunction& f = UnaryFunction()) {
- return function_output_iterator<UnaryFunction>(f);
- }
-
-} // namespace iterators
-
-using iterators::function_output_iterator;
-using iterators::make_function_output_iterator;
-
-} // namespace boost
-
-#endif // BOOST_ITERATOR_FUNCTION_OUTPUT_ITERATOR_HPP
diff --git a/contrib/restricted/boost/boost/iterator/is_lvalue_iterator.hpp b/contrib/restricted/boost/boost/iterator/is_lvalue_iterator.hpp
deleted file mode 100644
index 46f0483e22c..00000000000
--- a/contrib/restricted/boost/boost/iterator/is_lvalue_iterator.hpp
+++ /dev/null
@@ -1,164 +0,0 @@
-// Copyright David Abrahams 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)
-#ifndef IS_LVALUE_ITERATOR_DWA2003112_HPP
-# define IS_LVALUE_ITERATOR_DWA2003112_HPP
-
-#include <boost/detail/workaround.hpp>
-
-#include <boost/type_traits/add_lvalue_reference.hpp>
-#include <boost/iterator/detail/any_conversion_eater.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-#include <iterator>
-
-// should be the last #includes
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/iterator/detail/config_def.hpp>
-
-#ifndef BOOST_NO_IS_CONVERTIBLE
-
-namespace boost {
-
-namespace iterators {
-
-namespace detail
-{
-#ifndef BOOST_NO_LVALUE_RETURN_DETECTION
- // Calling lvalue_preserver( <expression>, 0 ) returns a reference
- // to the expression's result if <expression> is an lvalue, or
- // not_an_lvalue() otherwise.
- struct not_an_lvalue {};
-
- template <class T>
- T& lvalue_preserver(T&, int);
-
- template <class U>
- not_an_lvalue lvalue_preserver(U const&, ...);
-
-# define BOOST_LVALUE_PRESERVER(expr) detail::lvalue_preserver(expr,0)
-
-#else
-
-# define BOOST_LVALUE_PRESERVER(expr) expr
-
-#endif
-
- // Guts of is_lvalue_iterator. Value is the iterator's value_type
- // and the result is computed in the nested rebind template.
- template <class Value>
- struct is_lvalue_iterator_impl
- {
- // Eat implicit conversions so we don't report true for things
- // convertible to Value const&
- struct conversion_eater
- {
- conversion_eater(typename add_lvalue_reference<Value>::type);
- };
-
- static char tester(conversion_eater, int);
- static char (& tester(any_conversion_eater, ...) )[2];
-
- template <class It>
- struct rebind
- {
- static It& x;
-
- BOOST_STATIC_CONSTANT(
- bool
- , value = (
- sizeof(
- is_lvalue_iterator_impl<Value>::tester(
- BOOST_LVALUE_PRESERVER(*x), 0
- )
- ) == 1
- )
- );
- };
- };
-
-#undef BOOST_LVALUE_PRESERVER
-
- //
- // void specializations to handle std input and output iterators
- //
- template <>
- struct is_lvalue_iterator_impl<void>
- {
- template <class It>
- struct rebind : boost::mpl::false_
- {};
- };
-
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
- template <>
- struct is_lvalue_iterator_impl<const void>
- {
- template <class It>
- struct rebind : boost::mpl::false_
- {};
- };
-
- template <>
- struct is_lvalue_iterator_impl<volatile void>
- {
- template <class It>
- struct rebind : boost::mpl::false_
- {};
- };
-
- template <>
- struct is_lvalue_iterator_impl<const volatile void>
- {
- template <class It>
- struct rebind : boost::mpl::false_
- {};
- };
-#endif
-
- //
- // This level of dispatching is required for Borland. We might save
- // an instantiation by removing it for others.
- //
- template <class It>
- struct is_readable_lvalue_iterator_impl
- : is_lvalue_iterator_impl<
- BOOST_DEDUCED_TYPENAME std::iterator_traits<It>::value_type const
- >::template rebind<It>
- {};
-
- template <class It>
- struct is_non_const_lvalue_iterator_impl
- : is_lvalue_iterator_impl<
- BOOST_DEDUCED_TYPENAME std::iterator_traits<It>::value_type
- >::template rebind<It>
- {};
-} // namespace detail
-
-template< typename T > struct is_lvalue_iterator
-: public ::boost::integral_constant<bool,::boost::iterators::detail::is_readable_lvalue_iterator_impl<T>::value>
-{
-public:
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_lvalue_iterator,(T))
-};
-
-template< typename T > struct is_non_const_lvalue_iterator
-: public ::boost::integral_constant<bool,::boost::iterators::detail::is_non_const_lvalue_iterator_impl<T>::value>
-{
-public:
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_non_const_lvalue_iterator,(T))
-};
-
-} // namespace iterators
-
-using iterators::is_lvalue_iterator;
-using iterators::is_non_const_lvalue_iterator;
-
-} // namespace boost
-
-#endif
-
-#include <boost/iterator/detail/config_undef.hpp>
-
-#endif // IS_LVALUE_ITERATOR_DWA2003112_HPP
diff --git a/contrib/restricted/boost/boost/iterator/is_readable_iterator.hpp b/contrib/restricted/boost/boost/iterator/is_readable_iterator.hpp
deleted file mode 100644
index 26827c4c5ad..00000000000
--- a/contrib/restricted/boost/boost/iterator/is_readable_iterator.hpp
+++ /dev/null
@@ -1,119 +0,0 @@
-// Copyright David Abrahams 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)
-#ifndef IS_READABLE_ITERATOR_DWA2003112_HPP
-# define IS_READABLE_ITERATOR_DWA2003112_HPP
-
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/type_traits/add_lvalue_reference.hpp>
-
-#include <boost/iterator/detail/any_conversion_eater.hpp>
-
-#include <iterator>
-
-// should be the last #include
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/iterator/detail/config_def.hpp>
-
-#ifndef BOOST_NO_IS_CONVERTIBLE
-
-namespace boost {
-
-namespace iterators {
-
-namespace detail
-{
- // Guts of is_readable_iterator. Value is the iterator's value_type
- // and the result is computed in the nested rebind template.
- template <class Value>
- struct is_readable_iterator_impl
- {
- static char tester(typename add_lvalue_reference<Value>::type, int);
- static char (& tester(any_conversion_eater, ...) )[2];
-
- template <class It>
- struct rebind
- {
- static It& x;
-
- BOOST_STATIC_CONSTANT(
- bool
- , value = (
- sizeof(
- is_readable_iterator_impl<Value>::tester(*x, 1)
- ) == 1
- )
- );
- };
- };
-
-#undef BOOST_READABLE_PRESERVER
-
- //
- // void specializations to handle std input and output iterators
- //
- template <>
- struct is_readable_iterator_impl<void>
- {
- template <class It>
- struct rebind : boost::mpl::false_
- {};
- };
-
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
- template <>
- struct is_readable_iterator_impl<const void>
- {
- template <class It>
- struct rebind : boost::mpl::false_
- {};
- };
-
- template <>
- struct is_readable_iterator_impl<volatile void>
- {
- template <class It>
- struct rebind : boost::mpl::false_
- {};
- };
-
- template <>
- struct is_readable_iterator_impl<const volatile void>
- {
- template <class It>
- struct rebind : boost::mpl::false_
- {};
- };
-#endif
-
- //
- // This level of dispatching is required for Borland. We might save
- // an instantiation by removing it for others.
- //
- template <class It>
- struct is_readable_iterator_impl2
- : is_readable_iterator_impl<
- BOOST_DEDUCED_TYPENAME std::iterator_traits<It>::value_type const
- >::template rebind<It>
- {};
-} // namespace detail
-
-template< typename T > struct is_readable_iterator
-: public ::boost::integral_constant<bool,::boost::iterators::detail::is_readable_iterator_impl2<T>::value>
-{
-public:
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_readable_iterator,(T))
-};
-
-} // namespace iterators
-
-using iterators::is_readable_iterator;
-
-} // namespace boost
-
-#endif
-
-#include <boost/iterator/detail/config_undef.hpp>
-
-#endif // IS_READABLE_ITERATOR_DWA2003112_HPP
diff --git a/contrib/restricted/boost/boost/iterator/iterator_archetypes.hpp b/contrib/restricted/boost/boost/iterator/iterator_archetypes.hpp
deleted file mode 100644
index 1d259152850..00000000000
--- a/contrib/restricted/boost/boost/iterator/iterator_archetypes.hpp
+++ /dev/null
@@ -1,509 +0,0 @@
-// (C) Copyright Jeremy Siek 2002.
-// 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)
-
-#ifndef BOOST_ITERATOR_ARCHETYPES_HPP
-#define BOOST_ITERATOR_ARCHETYPES_HPP
-
-#include <boost/iterator/iterator_categories.hpp>
-#include <boost/operators.hpp>
-#include <boost/static_assert.hpp>
-
-#include <boost/iterator/detail/facade_iterator_category.hpp>
-
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/remove_const.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-
-#include <boost/concept_archetype.hpp>
-
-#include <boost/mpl/bitand.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/equal_to.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/identity.hpp>
-
-#include <cstddef>
-
-namespace boost {
-namespace iterators {
-
-template <class Value, class AccessCategory>
-struct access_archetype;
-
-template <class Derived, class Value, class AccessCategory, class TraversalCategory>
-struct traversal_archetype;
-
-namespace archetypes
-{
- enum {
- readable_iterator_bit = 1
- , writable_iterator_bit = 2
- , swappable_iterator_bit = 4
- , lvalue_iterator_bit = 8
- };
-
- // Not quite tags, since dispatching wouldn't work.
- typedef mpl::int_<readable_iterator_bit>::type readable_iterator_t;
- typedef mpl::int_<writable_iterator_bit>::type writable_iterator_t;
-
- typedef mpl::int_<
- (readable_iterator_bit|writable_iterator_bit)
- >::type readable_writable_iterator_t;
-
- typedef mpl::int_<
- (readable_iterator_bit|lvalue_iterator_bit)
- >::type readable_lvalue_iterator_t;
-
- typedef mpl::int_<
- (lvalue_iterator_bit|writable_iterator_bit)
- >::type writable_lvalue_iterator_t;
-
- typedef mpl::int_<swappable_iterator_bit>::type swappable_iterator_t;
- typedef mpl::int_<lvalue_iterator_bit>::type lvalue_iterator_t;
-
- template <class Derived, class Base>
- struct has_access
- : mpl::equal_to<
- mpl::bitand_<Derived,Base>
- , Base
- >
- {};
-}
-
-namespace detail
-{
- template <class T>
- struct assign_proxy
- {
- assign_proxy& operator=(T) { return *this; }
- };
-
- template <class T>
- struct read_proxy
- {
- operator T() { return static_object<T>::get(); }
- };
-
- template <class T>
- struct read_write_proxy
- : read_proxy<T> // Use to inherit from assign_proxy, but that doesn't work. -JGS
- {
- read_write_proxy& operator=(T) { return *this; }
- };
-
- template <class T>
- struct arrow_proxy
- {
- T const* operator->() const { return 0; }
- };
-
- struct no_operator_brackets {};
-
- template <class ValueType>
- struct readable_operator_brackets
- {
- read_proxy<ValueType> operator[](std::ptrdiff_t n) const { return read_proxy<ValueType>(); }
- };
-
- template <class ValueType>
- struct writable_operator_brackets
- {
- read_write_proxy<ValueType> operator[](std::ptrdiff_t n) const { return read_write_proxy<ValueType>(); }
- };
-
- template <class Value, class AccessCategory, class TraversalCategory>
- struct operator_brackets
- : mpl::eval_if<
- is_convertible<TraversalCategory, random_access_traversal_tag>
- , mpl::eval_if<
- archetypes::has_access<
- AccessCategory
- , archetypes::writable_iterator_t
- >
- , mpl::identity<writable_operator_brackets<Value> >
- , mpl::if_<
- archetypes::has_access<
- AccessCategory
- , archetypes::readable_iterator_t
- >
- , readable_operator_brackets<Value>
- , no_operator_brackets
- >
- >
- , mpl::identity<no_operator_brackets>
- >::type
- {};
-
- template <class TraversalCategory>
- struct traversal_archetype_impl
- {
- template <class Derived,class Value> struct archetype;
- };
-
- // Constructor argument for those iterators that
- // are not default constructible
- struct ctor_arg {};
-
- template <class Derived, class Value, class TraversalCategory>
- struct traversal_archetype_
- : traversal_archetype_impl<TraversalCategory>::template archetype<Derived,Value>
- {
- typedef typename
- traversal_archetype_impl<TraversalCategory>::template archetype<Derived,Value>
- base;
-
- traversal_archetype_() {}
-
- traversal_archetype_(ctor_arg arg)
- : base(arg)
- {}
- };
-
- template <>
- struct traversal_archetype_impl<incrementable_traversal_tag>
- {
- template<class Derived, class Value>
- struct archetype
- {
- explicit archetype(ctor_arg) {}
-
- struct bogus { }; // This use to be void, but that causes trouble for iterator_facade. Need more research. -JGS
- typedef bogus difference_type;
-
- Derived& operator++() { return (Derived&)static_object<Derived>::get(); }
- Derived operator++(int) const { return (Derived&)static_object<Derived>::get(); }
- };
- };
-
- template <>
- struct traversal_archetype_impl<single_pass_traversal_tag>
- {
- template<class Derived, class Value>
- struct archetype
- : public equality_comparable< traversal_archetype_<Derived, Value, single_pass_traversal_tag> >,
- public traversal_archetype_<Derived, Value, incrementable_traversal_tag>
- {
- explicit archetype(ctor_arg arg)
- : traversal_archetype_<Derived, Value, incrementable_traversal_tag>(arg)
- {}
-
- typedef std::ptrdiff_t difference_type;
- };
- };
-
- template <class Derived, class Value>
- bool operator==(traversal_archetype_<Derived, Value, single_pass_traversal_tag> const&,
- traversal_archetype_<Derived, Value, single_pass_traversal_tag> const&) { return true; }
-
- template <>
- struct traversal_archetype_impl<forward_traversal_tag>
- {
- template<class Derived, class Value>
- struct archetype
- : public traversal_archetype_<Derived, Value, single_pass_traversal_tag>
- {
- archetype()
- : traversal_archetype_<Derived, Value, single_pass_traversal_tag>(ctor_arg())
- {}
- };
- };
-
- template <>
- struct traversal_archetype_impl<bidirectional_traversal_tag>
- {
- template<class Derived, class Value>
- struct archetype
- : public traversal_archetype_<Derived, Value, forward_traversal_tag>
- {
- Derived& operator--() { return static_object<Derived>::get(); }
- Derived operator--(int) const { return static_object<Derived>::get(); }
- };
- };
-
- template <>
- struct traversal_archetype_impl<random_access_traversal_tag>
- {
- template<class Derived, class Value>
- struct archetype
- : public traversal_archetype_<Derived, Value, bidirectional_traversal_tag>
- {
- Derived& operator+=(std::ptrdiff_t) { return static_object<Derived>::get(); }
- Derived& operator-=(std::ptrdiff_t) { return static_object<Derived>::get(); }
- };
- };
-
- template <class Derived, class Value>
- Derived& operator+(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,
- std::ptrdiff_t) { return static_object<Derived>::get(); }
-
- template <class Derived, class Value>
- Derived& operator+(std::ptrdiff_t,
- traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)
- { return static_object<Derived>::get(); }
-
- template <class Derived, class Value>
- Derived& operator-(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,
- std::ptrdiff_t)
- { return static_object<Derived>::get(); }
-
- template <class Derived, class Value>
- std::ptrdiff_t operator-(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,
- traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)
- { return 0; }
-
- template <class Derived, class Value>
- bool operator<(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,
- traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)
- { return true; }
-
- template <class Derived, class Value>
- bool operator>(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,
- traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)
- { return true; }
-
- template <class Derived, class Value>
- bool operator<=(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,
- traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)
- { return true; }
-
- template <class Derived, class Value>
- bool operator>=(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,
- traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)
- { return true; }
-
- struct bogus_type;
-
- template <class Value>
- struct convertible_type
- : mpl::if_< is_const<Value>,
- typename remove_const<Value>::type,
- bogus_type >
- {};
-
-} // namespace detail
-
-
-template <class> struct undefined;
-
-template <class AccessCategory>
-struct iterator_access_archetype_impl
-{
- template <class Value> struct archetype;
-};
-
-template <class Value, class AccessCategory>
-struct iterator_access_archetype
- : iterator_access_archetype_impl<
- AccessCategory
- >::template archetype<Value>
-{
-};
-
-template <>
-struct iterator_access_archetype_impl<
- archetypes::readable_iterator_t
->
-{
- template <class Value>
- struct archetype
- {
- typedef typename remove_cv<Value>::type value_type;
- typedef Value reference;
- typedef Value* pointer;
-
- value_type operator*() const { return static_object<value_type>::get(); }
-
- detail::arrow_proxy<Value> operator->() const { return detail::arrow_proxy<Value>(); }
- };
-};
-
-template <>
-struct iterator_access_archetype_impl<
- archetypes::writable_iterator_t
->
-{
- template <class Value>
- struct archetype
- {
- BOOST_STATIC_ASSERT(!is_const<Value>::value);
- typedef void value_type;
- typedef void reference;
- typedef void pointer;
-
- detail::assign_proxy<Value> operator*() const { return detail::assign_proxy<Value>(); }
- };
-};
-
-template <>
-struct iterator_access_archetype_impl<
- archetypes::readable_writable_iterator_t
->
-{
- template <class Value>
- struct archetype
- : public virtual iterator_access_archetype<
- Value, archetypes::readable_iterator_t
- >
- {
- typedef detail::read_write_proxy<Value> reference;
-
- detail::read_write_proxy<Value> operator*() const { return detail::read_write_proxy<Value>(); }
- };
-};
-
-template <>
-struct iterator_access_archetype_impl<archetypes::readable_lvalue_iterator_t>
-{
- template <class Value>
- struct archetype
- : public virtual iterator_access_archetype<
- Value, archetypes::readable_iterator_t
- >
- {
- typedef Value& reference;
-
- Value& operator*() const { return static_object<Value>::get(); }
- Value* operator->() const { return 0; }
- };
-};
-
-template <>
-struct iterator_access_archetype_impl<archetypes::writable_lvalue_iterator_t>
-{
- template <class Value>
- struct archetype
- : public virtual iterator_access_archetype<
- Value, archetypes::readable_lvalue_iterator_t
- >
- {
- BOOST_STATIC_ASSERT((!is_const<Value>::value));
- };
-};
-
-
-template <class Value, class AccessCategory, class TraversalCategory>
-struct iterator_archetype;
-
-template <class Value, class AccessCategory, class TraversalCategory>
-struct traversal_archetype_base
- : detail::operator_brackets<
- typename remove_cv<Value>::type
- , AccessCategory
- , TraversalCategory
- >
- , detail::traversal_archetype_<
- iterator_archetype<Value, AccessCategory, TraversalCategory>
- , Value
- , TraversalCategory
- >
-{
-};
-
-namespace detail
-{
- template <class Value, class AccessCategory, class TraversalCategory>
- struct iterator_archetype_base
- : iterator_access_archetype<Value, AccessCategory>
- , traversal_archetype_base<Value, AccessCategory, TraversalCategory>
- {
- typedef iterator_access_archetype<Value, AccessCategory> access;
-
- typedef typename detail::facade_iterator_category<
- TraversalCategory
- , typename mpl::eval_if<
- archetypes::has_access<
- AccessCategory, archetypes::writable_iterator_t
- >
- , remove_const<Value>
- , add_const<Value>
- >::type
- , typename access::reference
- >::type iterator_category;
-
- // Needed for some broken libraries (see below)
- struct workaround_iterator_base
- {
- typedef typename iterator_archetype_base::iterator_category iterator_category;
- typedef Value value_type;
- typedef typename traversal_archetype_base<
- Value, AccessCategory, TraversalCategory
- >::difference_type difference_type;
- typedef typename access::pointer pointer;
- typedef typename access::reference reference;
- };
- };
-}
-
-template <class Value, class AccessCategory, class TraversalCategory>
-struct iterator_archetype
- : public detail::iterator_archetype_base<Value, AccessCategory, TraversalCategory>
-
- // These broken libraries require derivation from std::iterator
- // (or related magic) in order to handle iter_swap and other
- // iterator operations
-# if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, < 310) \
- || BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(0x20101))
- , public detail::iterator_archetype_base<
- Value, AccessCategory, TraversalCategory
- >::workaround_iterator_base
-# endif
-{
- // Derivation from std::iterator above caused references to nested
- // types to be ambiguous, so now we have to redeclare them all
- // here.
-# if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, < 310) \
- || BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(0x20101))
-
- typedef detail::iterator_archetype_base<
- Value,AccessCategory,TraversalCategory
- > base;
-
- typedef typename base::value_type value_type;
- typedef typename base::reference reference;
- typedef typename base::pointer pointer;
- typedef typename base::difference_type difference_type;
- typedef typename base::iterator_category iterator_category;
-# endif
-
- iterator_archetype() { }
- iterator_archetype(iterator_archetype const& x)
- : detail::iterator_archetype_base<
- Value
- , AccessCategory
- , TraversalCategory
- >(x)
- {}
-
- iterator_archetype& operator=(iterator_archetype const&)
- { return *this; }
-
-# if 0
- // Optional conversion from mutable
- iterator_archetype(
- iterator_archetype<
- typename detail::convertible_type<Value>::type
- , AccessCategory
- , TraversalCategory> const&
- );
-# endif
-};
-
-} // namespace iterators
-
-// Backward compatibility names
-namespace iterator_archetypes = iterators::archetypes;
-using iterators::access_archetype;
-using iterators::traversal_archetype;
-using iterators::iterator_archetype;
-using iterators::undefined;
-using iterators::iterator_access_archetype_impl;
-using iterators::traversal_archetype_base;
-
-} // namespace boost
-
-#endif // BOOST_ITERATOR_ARCHETYPES_HPP
diff --git a/contrib/restricted/boost/boost/iterator/new_iterator_tests.hpp b/contrib/restricted/boost/boost/iterator/new_iterator_tests.hpp
deleted file mode 100644
index a1d3b2fbf27..00000000000
--- a/contrib/restricted/boost/boost/iterator/new_iterator_tests.hpp
+++ /dev/null
@@ -1,265 +0,0 @@
-#ifndef BOOST_NEW_ITERATOR_TESTS_HPP
-# define BOOST_NEW_ITERATOR_TESTS_HPP
-
-//
-// Copyright (c) David Abrahams 2001.
-// Copyright (c) Jeremy Siek 2001-2003.
-// Copyright (c) Thomas Witt 2002.
-//
-// 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)
-//
-
-// This is meant to be the beginnings of a comprehensive, generic
-// test suite for STL concepts such as iterators and containers.
-//
-// Revision History:
-// 28 Oct 2002 Started update for new iterator categories
-// (Jeremy Siek)
-// 28 Apr 2002 Fixed input iterator requirements.
-// For a == b a++ == b++ is no longer required.
-// See 24.1.1/3 for details.
-// (Thomas Witt)
-// 08 Feb 2001 Fixed bidirectional iterator test so that
-// --i is no longer a precondition.
-// (Jeremy Siek)
-// 04 Feb 2001 Added lvalue test, corrected preconditions
-// (David Abrahams)
-
-# include <iterator>
-# include <boost/static_assert.hpp>
-# include <boost/concept_archetype.hpp> // for detail::dummy_constructor
-# include <boost/pending/iterator_tests.hpp>
-# include <boost/iterator/is_readable_iterator.hpp>
-# include <boost/iterator/is_lvalue_iterator.hpp>
-# include <boost/type_traits/is_same.hpp>
-# include <boost/mpl/bool.hpp>
-# include <boost/mpl/and.hpp>
-
-# include <boost/iterator/detail/config_def.hpp>
-# include <boost/detail/is_incrementable.hpp>
-# include <boost/core/lightweight_test.hpp>
-
-namespace boost {
-
-
-// Do separate tests for *i++ so we can treat, e.g., smart pointers,
-// as readable and/or writable iterators.
-template <class Iterator, class T>
-void readable_iterator_traversal_test(Iterator i1, T v, mpl::true_)
-{
- T v2(*i1++);
- BOOST_TEST(v == v2);
-}
-
-template <class Iterator, class T>
-void readable_iterator_traversal_test(const Iterator i1, T v, mpl::false_)
-{}
-
-template <class Iterator, class T>
-void writable_iterator_traversal_test(Iterator i1, T v, mpl::true_)
-{
- ++i1; // we just wrote into that position
- *i1++ = v;
- Iterator x(i1++);
- (void)x;
-}
-
-template <class Iterator, class T>
-void writable_iterator_traversal_test(const Iterator i1, T v, mpl::false_)
-{}
-
-
-// Preconditions: *i == v
-template <class Iterator, class T>
-void readable_iterator_test(const Iterator i1, T v)
-{
- Iterator i2(i1); // Copy Constructible
- typedef typename std::iterator_traits<Iterator>::reference ref_t;
- ref_t r1 = *i1;
- ref_t r2 = *i2;
- T v1 = r1;
- T v2 = r2;
- BOOST_TEST(v1 == v);
- BOOST_TEST(v2 == v);
-
-# if !BOOST_WORKAROUND(__MWERKS__, <= 0x2407)
- readable_iterator_traversal_test(i1, v, detail::is_postfix_incrementable<Iterator>());
-
- // I think we don't really need this as it checks the same things as
- // the above code.
- BOOST_STATIC_ASSERT(is_readable_iterator<Iterator>::value);
-# endif
-}
-
-template <class Iterator, class T>
-void writable_iterator_test(Iterator i, T v, T v2)
-{
- Iterator i2(i); // Copy Constructible
- *i2 = v;
-
-# if !BOOST_WORKAROUND(__MWERKS__, <= 0x2407)
- writable_iterator_traversal_test(
- i, v2, mpl::and_<
- detail::is_incrementable<Iterator>
- , detail::is_postfix_incrementable<Iterator>
- >());
-# endif
-}
-
-template <class Iterator>
-void swappable_iterator_test(Iterator i, Iterator j)
-{
- Iterator i2(i), j2(j);
- typename std::iterator_traits<Iterator>::value_type bi = *i, bj = *j;
- iter_swap(i2, j2);
- typename std::iterator_traits<Iterator>::value_type ai = *i, aj = *j;
- BOOST_TEST(bi == aj && bj == ai);
-}
-
-template <class Iterator, class T>
-void constant_lvalue_iterator_test(Iterator i, T v1)
-{
- Iterator i2(i);
- typedef typename std::iterator_traits<Iterator>::value_type value_type;
- typedef typename std::iterator_traits<Iterator>::reference reference;
- BOOST_STATIC_ASSERT((is_same<const value_type&, reference>::value));
- const T& v2 = *i2;
- BOOST_TEST(v1 == v2);
-# ifndef BOOST_NO_LVALUE_RETURN_DETECTION
- BOOST_STATIC_ASSERT(is_lvalue_iterator<Iterator>::value);
- BOOST_STATIC_ASSERT(!is_non_const_lvalue_iterator<Iterator>::value);
-# endif
-}
-
-template <class Iterator, class T>
-void non_const_lvalue_iterator_test(Iterator i, T v1, T v2)
-{
- Iterator i2(i);
- typedef typename std::iterator_traits<Iterator>::value_type value_type;
- typedef typename std::iterator_traits<Iterator>::reference reference;
- BOOST_STATIC_ASSERT((is_same<value_type&, reference>::value));
- T& v3 = *i2;
- BOOST_TEST(v1 == v3);
-
- // A non-const lvalue iterator is not neccessarily writable, but we
- // are assuming the value_type is assignable here
- *i = v2;
-
- T& v4 = *i2;
- BOOST_TEST(v2 == v4);
-# ifndef BOOST_NO_LVALUE_RETURN_DETECTION
- BOOST_STATIC_ASSERT(is_lvalue_iterator<Iterator>::value);
- BOOST_STATIC_ASSERT(is_non_const_lvalue_iterator<Iterator>::value);
-# endif
-}
-
-template <class Iterator, class T>
-void forward_readable_iterator_test(Iterator i, Iterator j, T val1, T val2)
-{
- Iterator i2;
- Iterator i3(i);
- i2 = i;
- BOOST_TEST(i2 == i3);
- BOOST_TEST(i != j);
- BOOST_TEST(i2 != j);
- readable_iterator_test(i, val1);
- readable_iterator_test(i2, val1);
- readable_iterator_test(i3, val1);
-
- BOOST_TEST(i == i2++);
- BOOST_TEST(i != ++i3);
-
- readable_iterator_test(i2, val2);
- readable_iterator_test(i3, val2);
-
- readable_iterator_test(i, val1);
-}
-
-template <class Iterator, class T>
-void forward_swappable_iterator_test(Iterator i, Iterator j, T val1, T val2)
-{
- forward_readable_iterator_test(i, j, val1, val2);
- Iterator i2 = i;
- ++i2;
- swappable_iterator_test(i, i2);
-}
-
-// bidirectional
-// Preconditions: *i == v1, *++i == v2
-template <class Iterator, class T>
-void bidirectional_readable_iterator_test(Iterator i, T v1, T v2)
-{
- Iterator j(i);
- ++j;
- forward_readable_iterator_test(i, j, v1, v2);
- ++i;
-
- Iterator i1 = i, i2 = i;
-
- BOOST_TEST(i == i1--);
- BOOST_TEST(i != --i2);
-
- readable_iterator_test(i, v2);
- readable_iterator_test(i1, v1);
- readable_iterator_test(i2, v1);
-
- --i;
- BOOST_TEST(i == i1);
- BOOST_TEST(i == i2);
- ++i1;
- ++i2;
-
- readable_iterator_test(i, v1);
- readable_iterator_test(i1, v2);
- readable_iterator_test(i2, v2);
-}
-
-// random access
-// Preconditions: [i,i+N) is a valid range
-template <class Iterator, class TrueVals>
-void random_access_readable_iterator_test(Iterator i, int N, TrueVals vals)
-{
- bidirectional_readable_iterator_test(i, vals[0], vals[1]);
- const Iterator j = i;
- int c;
-
- for (c = 0; c < N-1; ++c)
- {
- BOOST_TEST(i == j + c);
- BOOST_TEST(*i == vals[c]);
- typename std::iterator_traits<Iterator>::value_type x = j[c];
- BOOST_TEST(*i == x);
- BOOST_TEST(*i == *(j + c));
- BOOST_TEST(*i == *(c + j));
- ++i;
- BOOST_TEST(i > j);
- BOOST_TEST(i >= j);
- BOOST_TEST(j <= i);
- BOOST_TEST(j < i);
- }
-
- Iterator k = j + N - 1;
- for (c = 0; c < N-1; ++c)
- {
- BOOST_TEST(i == k - c);
- BOOST_TEST(*i == vals[N - 1 - c]);
- typename std::iterator_traits<Iterator>::value_type x = j[N - 1 - c];
- BOOST_TEST(*i == x);
- Iterator q = k - c;
- BOOST_TEST(*i == *q);
- BOOST_TEST(i > j);
- BOOST_TEST(i >= j);
- BOOST_TEST(j <= i);
- BOOST_TEST(j < i);
- --i;
- }
-}
-
-} // namespace boost
-
-# include <boost/iterator/detail/config_undef.hpp>
-
-#endif // BOOST_NEW_ITERATOR_TESTS_HPP
diff --git a/contrib/restricted/boost/boost/iterator/permutation_iterator.hpp b/contrib/restricted/boost/boost/iterator/permutation_iterator.hpp
deleted file mode 100644
index 3876f3d929d..00000000000
--- a/contrib/restricted/boost/boost/iterator/permutation_iterator.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-// (C) Copyright Toon Knapen 2001.
-// (C) Copyright David Abrahams 2003.
-// (C) Copyright Roland Richter 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)
-
-#ifndef BOOST_PERMUTATION_ITERATOR_HPP
-#define BOOST_PERMUTATION_ITERATOR_HPP
-
-#include <iterator>
-
-#include <boost/iterator/iterator_adaptor.hpp>
-
-
-namespace boost {
-namespace iterators {
-
-template< class ElementIterator
- , class IndexIterator>
-class permutation_iterator
- : public iterator_adaptor<
- permutation_iterator<ElementIterator, IndexIterator>
- , IndexIterator, typename std::iterator_traits<ElementIterator>::value_type
- , use_default, typename std::iterator_traits<ElementIterator>::reference>
-{
- typedef iterator_adaptor<
- permutation_iterator<ElementIterator, IndexIterator>
- , IndexIterator, typename std::iterator_traits<ElementIterator>::value_type
- , use_default, typename std::iterator_traits<ElementIterator>::reference> super_t;
-
- friend class iterator_core_access;
-
-public:
- permutation_iterator() : m_elt_iter() {}
-
- explicit permutation_iterator(ElementIterator x, IndexIterator y)
- : super_t(y), m_elt_iter(x) {}
-
- template<class OtherElementIterator, class OtherIndexIterator>
- permutation_iterator(
- permutation_iterator<OtherElementIterator, OtherIndexIterator> const& r
- , typename enable_if_convertible<OtherElementIterator, ElementIterator>::type* = 0
- , typename enable_if_convertible<OtherIndexIterator, IndexIterator>::type* = 0
- )
- : super_t(r.base()), m_elt_iter(r.m_elt_iter)
- {}
-
-private:
- typename super_t::reference dereference() const
- { return *(m_elt_iter + *this->base()); }
-
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
- template <class,class> friend class permutation_iterator;
-#else
- public:
-#endif
- ElementIterator m_elt_iter;
-};
-
-
-template <class ElementIterator, class IndexIterator>
-inline permutation_iterator<ElementIterator, IndexIterator>
-make_permutation_iterator( ElementIterator e, IndexIterator i )
-{
- return permutation_iterator<ElementIterator, IndexIterator>( e, i );
-}
-
-} // namespace iterators
-
-using iterators::permutation_iterator;
-using iterators::make_permutation_iterator;
-
-} // namespace boost
-
-#endif
diff --git a/contrib/restricted/boost/boost/pending/detail/int_iterator.hpp b/contrib/restricted/boost/boost/pending/detail/int_iterator.hpp
deleted file mode 100644
index dcc7024df3c..00000000000
--- a/contrib/restricted/boost/boost/pending/detail/int_iterator.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-// (C) Copyright Jeremy Siek 1999.
-// 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)
-
-#ifndef BOOST_INT_ITERATOR_H
-#define BOOST_INT_ITERATOR_H
-
-#if !defined BOOST_MSVC
-#include <boost/operators.hpp>
-#endif
-#include <iostream>
-#include <iterator>
-#include <cstddef>
-//using namespace std;
-
-#ifndef BOOST_NO_OPERATORS_IN_NAMESPACE
-namespace boost {
-namespace iterators {
-#endif
-
-// this should use random_access_iterator_helper but I've had
-// VC++ portablility problems with that. -JGS
-template <class IntT>
-class int_iterator
-{
- typedef int_iterator self;
-public:
- typedef std::random_access_iterator_tag iterator_category;
- typedef IntT value_type;
- typedef IntT& reference;
- typedef IntT* pointer;
- typedef std::ptrdiff_t difference_type;
-
- inline int_iterator() : _i(0) { }
- inline int_iterator(IntT i) : _i(i) { }
- inline int_iterator(const self& x) : _i(x._i) { }
- inline self& operator=(const self& x) { _i = x._i; return *this; }
- inline IntT operator*() { return _i; }
- inline IntT operator[](IntT n) { return _i + n; }
- inline self& operator++() { ++_i; return *this; }
- inline self operator++(int) { self t = *this; ++_i; return t; }
- inline self& operator+=(IntT n) { _i += n; return *this; }
- inline self operator+(IntT n) { self t = *this; t += n; return t; }
- inline self& operator--() { --_i; return *this; }
- inline self operator--(int) { self t = *this; --_i; return t; }
- inline self& operator-=(IntT n) { _i -= n; return *this; }
- inline IntT operator-(const self& x) const { return _i - x._i; }
- inline bool operator==(const self& x) const { return _i == x._i; }
- // vc++ had a problem finding != in random_access_iterator_helper
- // need to look into this... for now implementing everything here -JGS
- inline bool operator!=(const self& x) const { return _i != x._i; }
- inline bool operator<(const self& x) const { return _i < x._i; }
- inline bool operator<=(const self& x) const { return _i <= x._i; }
- inline bool operator>(const self& x) const { return _i > x._i; }
- inline bool operator>=(const self& x) const { return _i >= x._i; }
-protected:
- IntT _i;
-};
-
-template <class IntT>
-inline int_iterator<IntT>
-operator+(IntT n, int_iterator<IntT> t) { t += n; return t; }
-
-#ifndef BOOST_NO_OPERATORS_IN_NAMESPACE
-} /* namespace iterators */
-
-using iterators::int_iterator;
-
-} /* namespace boost */
-#endif
-
-#ifdef BOOST_NO_OPERATORS_IN_NAMESPACE
-namespace boost {
-using ::int_iterator;
-namespace iterators {
-using ::int_iterator;
-}}
-#endif
-
-
-#endif /* BOOST_INT_ITERATOR_H */
diff --git a/contrib/restricted/boost/boost/pending/iterator_adaptors.hpp b/contrib/restricted/boost/boost/pending/iterator_adaptors.hpp
deleted file mode 100644
index 2256e81240f..00000000000
--- a/contrib/restricted/boost/boost/pending/iterator_adaptors.hpp
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright David Abrahams 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)
-
-#include <boost/iterator_adaptors.hpp>
diff --git a/contrib/restricted/boost/boost/pending/iterator_tests.hpp b/contrib/restricted/boost/boost/pending/iterator_tests.hpp
deleted file mode 100644
index b4d2efa877d..00000000000
--- a/contrib/restricted/boost/boost/pending/iterator_tests.hpp
+++ /dev/null
@@ -1,288 +0,0 @@
-// Copyright David Abrahams and Jeremy Siek 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)
-#ifndef BOOST_ITERATOR_TESTS_HPP
-# define BOOST_ITERATOR_TESTS_HPP
-
-// This is meant to be the beginnings of a comprehensive, generic
-// test suite for STL concepts such as iterators and containers.
-//
-// Revision History:
-// 28 Apr 2002 Fixed input iterator requirements.
-// For a == b a++ == b++ is no longer required.
-// See 24.1.1/3 for details.
-// (Thomas Witt)
-// 08 Feb 2001 Fixed bidirectional iterator test so that
-// --i is no longer a precondition.
-// (Jeremy Siek)
-// 04 Feb 2001 Added lvalue test, corrected preconditions
-// (David Abrahams)
-
-# include <iterator>
-# include <boost/static_assert.hpp>
-# include <boost/concept_archetype.hpp> // for detail::dummy_constructor
-# include <boost/implicit_cast.hpp>
-# include <boost/core/ignore_unused.hpp>
-# include <boost/core/lightweight_test.hpp>
-# include <boost/type_traits/is_same.hpp>
-# include <boost/type_traits/is_pointer.hpp>
-# include <boost/type_traits/is_reference.hpp>
-
-namespace boost {
-
- // use this for the value type
-struct dummyT {
- dummyT() { }
- dummyT(detail::dummy_constructor) { }
- dummyT(int x) : m_x(x) { }
- int foo() const { return m_x; }
- bool operator==(const dummyT& d) const { return m_x == d.m_x; }
- int m_x;
-};
-
-}
-
-namespace boost {
-namespace iterators {
-
-// Tests whether type Iterator satisfies the requirements for a
-// TrivialIterator.
-// Preconditions: i != j, *i == val
-template <class Iterator, class T>
-void trivial_iterator_test(const Iterator i, const Iterator j, T val)
-{
- Iterator k;
- BOOST_TEST(i == i);
- BOOST_TEST(j == j);
- BOOST_TEST(i != j);
-#ifdef BOOST_NO_STD_ITERATOR_TRAITS
- T v = *i;
-#else
- typename std::iterator_traits<Iterator>::value_type v = *i;
-#endif
- BOOST_TEST(v == val);
- boost::ignore_unused(v);
-#if 0
- // hmm, this will give a warning for transform_iterator... perhaps
- // this should be separated out into a stand-alone test since there
- // are several situations where it can't be used, like for
- // integer_range::iterator.
- BOOST_TEST(v == i->foo());
-#endif
- k = i;
- BOOST_TEST(k == k);
- BOOST_TEST(k == i);
- BOOST_TEST(k != j);
- BOOST_TEST(*k == val);
- boost::ignore_unused(k);
-}
-
-
-// Preconditions: i != j
-template <class Iterator, class T>
-void mutable_trivial_iterator_test(const Iterator i, const Iterator j, T val)
-{
- *i = val;
- trivial_iterator_test(i, j, val);
-}
-
-
-// Preconditions: *i == v1, *++i == v2
-template <class Iterator, class T>
-void input_iterator_test(Iterator i, T v1, T v2)
-{
- Iterator i1(i);
-
- BOOST_TEST(i == i1);
- BOOST_TEST(!(i != i1));
-
- // I can see no generic way to create an input iterator
- // that is in the domain of== of i and != i.
- // The following works for istream_iterator but is not
- // guaranteed to work for arbitrary input iterators.
- //
- // Iterator i2;
- //
- // BOOST_TEST(i != i2);
- // BOOST_TEST(!(i == i2));
-
- BOOST_TEST(*i1 == v1);
- BOOST_TEST(*i == v1);
-
- // we cannot test for equivalence of (void)++i & (void)i++
- // as i is only guaranteed to be single pass.
- BOOST_TEST(*i++ == v1);
- boost::ignore_unused(i1);
-
- i1 = i;
-
- BOOST_TEST(i == i1);
- BOOST_TEST(!(i != i1));
-
- BOOST_TEST(*i1 == v2);
- BOOST_TEST(*i == v2);
- boost::ignore_unused(i1);
-
- // i is dereferencable, so it must be incrementable.
- ++i;
-
- // how to test for operator-> ?
-}
-
-// how to test output iterator?
-
-
-template <bool is_pointer> struct lvalue_test
-{
- template <class Iterator> static void check(Iterator)
- {
-# ifndef BOOST_NO_STD_ITERATOR_TRAITS
- typedef typename std::iterator_traits<Iterator>::reference reference;
- typedef typename std::iterator_traits<Iterator>::value_type value_type;
-# else
- typedef typename Iterator::reference reference;
- typedef typename Iterator::value_type value_type;
-# endif
- BOOST_STATIC_ASSERT(boost::is_reference<reference>::value);
- BOOST_STATIC_ASSERT((boost::is_same<reference,value_type&>::value
- || boost::is_same<reference,const value_type&>::value
- ));
- }
-};
-
-# ifdef BOOST_NO_STD_ITERATOR_TRAITS
-template <> struct lvalue_test<true> {
- template <class T> static void check(T) {}
-};
-#endif
-
-template <class Iterator, class T>
-void forward_iterator_test(Iterator i, T v1, T v2)
-{
- input_iterator_test(i, v1, v2);
-
- Iterator i1 = i, i2 = i;
-
- BOOST_TEST(i == i1++);
- BOOST_TEST(i != ++i2);
-
- trivial_iterator_test(i, i1, v1);
- trivial_iterator_test(i, i2, v1);
-
- ++i;
- BOOST_TEST(i == i1);
- BOOST_TEST(i == i2);
- ++i1;
- ++i2;
-
- trivial_iterator_test(i, i1, v2);
- trivial_iterator_test(i, i2, v2);
-
- // borland doesn't allow non-type template parameters
-# if !defined(__BORLANDC__) || (__BORLANDC__ > 0x551)
- lvalue_test<(boost::is_pointer<Iterator>::value)>::check(i);
-#endif
-}
-
-// Preconditions: *i == v1, *++i == v2
-template <class Iterator, class T>
-void bidirectional_iterator_test(Iterator i, T v1, T v2)
-{
- forward_iterator_test(i, v1, v2);
- ++i;
-
- Iterator i1 = i, i2 = i;
-
- BOOST_TEST(i == i1--);
- BOOST_TEST(i != --i2);
-
- trivial_iterator_test(i, i1, v2);
- trivial_iterator_test(i, i2, v2);
-
- --i;
- BOOST_TEST(i == i1);
- BOOST_TEST(i == i2);
- ++i1;
- ++i2;
-
- trivial_iterator_test(i, i1, v1);
- trivial_iterator_test(i, i2, v1);
-}
-
-// mutable_bidirectional_iterator_test
-
-template <class U> struct undefined;
-
-// Preconditions: [i,i+N) is a valid range
-template <class Iterator, class TrueVals>
-void random_access_iterator_test(Iterator i, int N, TrueVals vals)
-{
- bidirectional_iterator_test(i, vals[0], vals[1]);
- const Iterator j = i;
- int c;
-
- typedef typename std::iterator_traits<Iterator>::value_type value_type;
- boost::ignore_unused<value_type>();
-
- for (c = 0; c < N-1; ++c) {
- BOOST_TEST(i == j + c);
- BOOST_TEST(*i == vals[c]);
- BOOST_TEST(*i == boost::implicit_cast<value_type>(j[c]));
- BOOST_TEST(*i == *(j + c));
- BOOST_TEST(*i == *(c + j));
- ++i;
- BOOST_TEST(i > j);
- BOOST_TEST(i >= j);
- BOOST_TEST(j <= i);
- BOOST_TEST(j < i);
- }
-
- Iterator k = j + N - 1;
- for (c = 0; c < N-1; ++c) {
- BOOST_TEST(i == k - c);
- BOOST_TEST(*i == vals[N - 1 - c]);
- BOOST_TEST(*i == boost::implicit_cast<value_type>(j[N - 1 - c]));
- Iterator q = k - c;
- boost::ignore_unused(q);
- BOOST_TEST(*i == *q);
- BOOST_TEST(i > j);
- BOOST_TEST(i >= j);
- BOOST_TEST(j <= i);
- BOOST_TEST(j < i);
- --i;
- }
-}
-
-// Precondition: i != j
-template <class Iterator, class ConstIterator>
-void const_nonconst_iterator_test(Iterator i, ConstIterator j)
-{
- BOOST_TEST(i != j);
- BOOST_TEST(j != i);
-
- ConstIterator k(i);
- BOOST_TEST(k == i);
- BOOST_TEST(i == k);
-
- k = i;
- BOOST_TEST(k == i);
- BOOST_TEST(i == k);
- boost::ignore_unused(k);
-}
-
-} // namespace iterators
-
-using iterators::undefined;
-using iterators::trivial_iterator_test;
-using iterators::mutable_trivial_iterator_test;
-using iterators::input_iterator_test;
-using iterators::lvalue_test;
-using iterators::forward_iterator_test;
-using iterators::bidirectional_iterator_test;
-using iterators::random_access_iterator_test;
-using iterators::const_nonconst_iterator_test;
-
-} // namespace boost
-
-#endif // BOOST_ITERATOR_TESTS_HPP
diff --git a/contrib/restricted/boost/boost/shared_container_iterator.hpp b/contrib/restricted/boost/boost/shared_container_iterator.hpp
deleted file mode 100644
index e803bd654e5..00000000000
--- a/contrib/restricted/boost/boost/shared_container_iterator.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-// (C) Copyright Ronald Garcia 2002. Permission to copy, use, modify, sell and
-// distribute this software is granted provided this copyright notice appears
-// in all copies. This software is provided "as is" without express or implied
-// warranty, and with no claim as to its suitability for any purpose.
-
-// See http://www.boost.org/libs/utility/shared_container_iterator.html for documentation.
-
-#ifndef SHARED_CONTAINER_ITERATOR_RG08102002_HPP
-#define SHARED_CONTAINER_ITERATOR_RG08102002_HPP
-
-#include "boost/iterator_adaptors.hpp"
-#include "boost/shared_ptr.hpp"
-#include <utility>
-
-namespace boost {
-namespace iterators {
-
-template <typename Container>
-class shared_container_iterator : public iterator_adaptor<
- shared_container_iterator<Container>,
- typename Container::iterator> {
-
- typedef iterator_adaptor<
- shared_container_iterator<Container>,
- typename Container::iterator> super_t;
-
- typedef typename Container::iterator iterator_t;
- typedef boost::shared_ptr<Container> container_ref_t;
-
- container_ref_t container_ref;
-public:
- shared_container_iterator() { }
-
- shared_container_iterator(iterator_t const& x,container_ref_t const& c) :
- super_t(x), container_ref(c) { }
-
-
-};
-
-template <typename Container>
-inline shared_container_iterator<Container>
-make_shared_container_iterator(typename Container::iterator iter,
- boost::shared_ptr<Container> const& container) {
- typedef shared_container_iterator<Container> iterator;
- return iterator(iter,container);
-}
-
-
-
-template <typename Container>
-inline std::pair<
- shared_container_iterator<Container>,
- shared_container_iterator<Container> >
-make_shared_container_range(boost::shared_ptr<Container> const& container) {
- return
- std::make_pair(
- make_shared_container_iterator(container->begin(),container),
- make_shared_container_iterator(container->end(),container));
-}
-
-} // namespace iterators
-
-using iterators::shared_container_iterator;
-using iterators::make_shared_container_iterator;
-using iterators::make_shared_container_range;
-
-} // namespace boost
-
-#endif // SHARED_CONTAINER_ITERATOR_RG08102002_HPP
diff --git a/contrib/restricted/boost/iterator/CMakeLists.txt b/contrib/restricted/boost/iterator/CMakeLists.txt
new file mode 100644
index 00000000000..c3c46f70c29
--- /dev/null
+++ b/contrib/restricted/boost/iterator/CMakeLists.txt
@@ -0,0 +1,31 @@
+
+# This file was gererated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-iterator INTERFACE)
+target_include_directories(restricted-boost-iterator INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/iterator/include
+)
+target_link_libraries(restricted-boost-iterator INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ restricted-boost-assert
+ restricted-boost-concept_check
+ restricted-boost-config
+ restricted-boost-conversion
+ restricted-boost-core
+ restricted-boost-detail
+ restricted-boost-function_types
+ restricted-boost-fusion
+ restricted-boost-mpl
+ restricted-boost-optional
+ restricted-boost-smart_ptr
+ restricted-boost-static_assert
+ restricted-boost-type_traits
+ restricted-boost-utility
+)
diff --git a/contrib/restricted/boost/boost/indirect_reference.hpp b/contrib/restricted/boost/iterator/include/boost/indirect_reference.hpp
index 3279cd052c8..3279cd052c8 100644
--- a/contrib/restricted/boost/boost/indirect_reference.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/indirect_reference.hpp
diff --git a/contrib/restricted/boost/boost/iterator/advance.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/advance.hpp
index 6f81cdb6b19..6f81cdb6b19 100644
--- a/contrib/restricted/boost/boost/iterator/advance.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/advance.hpp
diff --git a/contrib/restricted/boost/boost/iterator/counting_iterator.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/counting_iterator.hpp
index 80108f15061..80108f15061 100644
--- a/contrib/restricted/boost/boost/iterator/counting_iterator.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/counting_iterator.hpp
diff --git a/contrib/restricted/boost/boost/iterator/detail/config_def.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/detail/config_def.hpp
index 117e75a76d4..117e75a76d4 100644
--- a/contrib/restricted/boost/boost/iterator/detail/config_def.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/detail/config_def.hpp
diff --git a/contrib/restricted/boost/boost/iterator/detail/config_undef.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/detail/config_undef.hpp
index bf1b8d708c5..bf1b8d708c5 100644
--- a/contrib/restricted/boost/boost/iterator/detail/config_undef.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/detail/config_undef.hpp
diff --git a/contrib/restricted/boost/boost/iterator/detail/enable_if.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/detail/enable_if.hpp
index 071f5fe81d4..071f5fe81d4 100644
--- a/contrib/restricted/boost/boost/iterator/detail/enable_if.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/detail/enable_if.hpp
diff --git a/contrib/restricted/boost/boost/iterator/detail/facade_iterator_category.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/detail/facade_iterator_category.hpp
index 67fdf446b0d..67fdf446b0d 100644
--- a/contrib/restricted/boost/boost/iterator/detail/facade_iterator_category.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/detail/facade_iterator_category.hpp
diff --git a/contrib/restricted/boost/boost/iterator/filter_iterator.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/filter_iterator.hpp
index b87c02b0aba..b87c02b0aba 100644
--- a/contrib/restricted/boost/boost/iterator/filter_iterator.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/filter_iterator.hpp
diff --git a/contrib/restricted/boost/boost/iterator/indirect_iterator.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/indirect_iterator.hpp
index 7449d621bbf..7449d621bbf 100644
--- a/contrib/restricted/boost/boost/iterator/indirect_iterator.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/indirect_iterator.hpp
diff --git a/contrib/restricted/boost/boost/iterator/interoperable.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/interoperable.hpp
index 6f3c872a27b..6f3c872a27b 100644
--- a/contrib/restricted/boost/boost/iterator/interoperable.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/interoperable.hpp
diff --git a/contrib/restricted/boost/boost/iterator/iterator_adaptor.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/iterator_adaptor.hpp
index f803fc65ed6..f803fc65ed6 100644
--- a/contrib/restricted/boost/boost/iterator/iterator_adaptor.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/iterator_adaptor.hpp
diff --git a/contrib/restricted/boost/boost/iterator/iterator_categories.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/iterator_categories.hpp
index baf805af6e3..baf805af6e3 100644
--- a/contrib/restricted/boost/boost/iterator/iterator_categories.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/iterator_categories.hpp
diff --git a/contrib/restricted/boost/boost/iterator/iterator_concepts.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/iterator_concepts.hpp
index 415cc496a02..415cc496a02 100644
--- a/contrib/restricted/boost/boost/iterator/iterator_concepts.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/iterator_concepts.hpp
diff --git a/contrib/restricted/boost/boost/iterator/iterator_facade.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/iterator_facade.hpp
index 225c53a231d..225c53a231d 100644
--- a/contrib/restricted/boost/boost/iterator/iterator_facade.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/iterator_facade.hpp
diff --git a/contrib/restricted/boost/boost/iterator/iterator_traits.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/iterator_traits.hpp
index 6582a68f507..6582a68f507 100644
--- a/contrib/restricted/boost/boost/iterator/iterator_traits.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/iterator_traits.hpp
diff --git a/contrib/restricted/boost/boost/iterator/minimum_category.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/minimum_category.hpp
index 15679bc77d5..15679bc77d5 100644
--- a/contrib/restricted/boost/boost/iterator/minimum_category.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/minimum_category.hpp
diff --git a/contrib/restricted/boost/boost/iterator/reverse_iterator.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/reverse_iterator.hpp
index 03b7925ca72..03b7925ca72 100644
--- a/contrib/restricted/boost/boost/iterator/reverse_iterator.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/reverse_iterator.hpp
diff --git a/contrib/restricted/boost/boost/iterator/transform_iterator.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/transform_iterator.hpp
index 2281df877f1..2281df877f1 100644
--- a/contrib/restricted/boost/boost/iterator/transform_iterator.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/transform_iterator.hpp
diff --git a/contrib/restricted/boost/boost/iterator/zip_iterator.hpp b/contrib/restricted/boost/iterator/include/boost/iterator/zip_iterator.hpp
index f5780aeb8e4..f5780aeb8e4 100644
--- a/contrib/restricted/boost/boost/iterator/zip_iterator.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator/zip_iterator.hpp
diff --git a/contrib/restricted/boost/boost/iterator_adaptors.hpp b/contrib/restricted/boost/iterator/include/boost/iterator_adaptors.hpp
index ed9579c5140..ed9579c5140 100644
--- a/contrib/restricted/boost/boost/iterator_adaptors.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/iterator_adaptors.hpp
diff --git a/contrib/restricted/boost/boost/next_prior.hpp b/contrib/restricted/boost/iterator/include/boost/next_prior.hpp
index 5de705f591b..5de705f591b 100644
--- a/contrib/restricted/boost/boost/next_prior.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/next_prior.hpp
diff --git a/contrib/restricted/boost/boost/pointee.hpp b/contrib/restricted/boost/iterator/include/boost/pointee.hpp
index f3bcf446b4b..f3bcf446b4b 100644
--- a/contrib/restricted/boost/boost/pointee.hpp
+++ b/contrib/restricted/boost/iterator/include/boost/pointee.hpp