diff options
author | bugaevskiy <bugaevskiy@yandex-team.com> | 2022-08-10 20:01:27 +0300 |
---|---|---|
committer | bugaevskiy <bugaevskiy@yandex-team.com> | 2022-08-10 20:01:27 +0300 |
commit | 90861f3b86acca8c6f4e2eb85a1ab72ea3962a71 (patch) | |
tree | e0673322ab5ebc380c8f211de9954556f1e13901 | |
parent | 8766c8a0c9eff15893c1963e5f83f294a6dce1eb (diff) | |
download | ydb-90861f3b86acca8c6f4e2eb85a1ab72ea3962a71.tar.gz |
Reimport boost/iterator as a separate project
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 |