summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbugaevskiy <[email protected]>2022-07-23 10:15:54 +0300
committerbugaevskiy <[email protected]>2022-07-23 10:15:54 +0300
commit5764e2a8718a138e1caac2e052c977e83ab950a4 (patch)
treee4a11b72993c53e9c6a83539bdd2f6385258272c
parent51865ab4525ff201ea60b093ffab0f72cc9694a2 (diff)
Reimport boost/core 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/core/allocator_access.hpp601
-rw-r--r--contrib/restricted/boost/boost/core/empty_value.hpp146
-rw-r--r--contrib/restricted/boost/boost/core/lightweight_test.hpp465
-rw-r--r--contrib/restricted/boost/boost/core/lightweight_test_trait.hpp56
-rw-r--r--contrib/restricted/boost/boost/core/underlying_type.hpp79
-rw-r--r--contrib/restricted/boost/boost/detail/lightweight_test.hpp17
-rw-r--r--contrib/restricted/boost/boost/utility/explicit_operator_bool.hpp17
-rw-r--r--contrib/restricted/boost/core/CMakeLists.txt19
-rw-r--r--contrib/restricted/boost/core/README.md32
-rw-r--r--contrib/restricted/boost/core/include/boost/checked_delete.hpp (renamed from contrib/restricted/boost/boost/checked_delete.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/core/addressof.hpp (renamed from contrib/restricted/boost/boost/core/addressof.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/core/checked_delete.hpp (renamed from contrib/restricted/boost/boost/core/checked_delete.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/core/demangle.hpp (renamed from contrib/restricted/boost/boost/core/demangle.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/core/enable_if.hpp (renamed from contrib/restricted/boost/boost/core/enable_if.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/core/explicit_operator_bool.hpp (renamed from contrib/restricted/boost/boost/core/explicit_operator_bool.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/core/ignore_unused.hpp (renamed from contrib/restricted/boost/boost/core/ignore_unused.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/core/is_same.hpp (renamed from contrib/restricted/boost/boost/core/is_same.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/core/no_exceptions_support.hpp (renamed from contrib/restricted/boost/boost/core/no_exceptions_support.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/core/noncopyable.hpp (renamed from contrib/restricted/boost/boost/core/noncopyable.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/core/null_deleter.hpp (renamed from contrib/restricted/boost/boost/core/null_deleter.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/core/pointer_traits.hpp (renamed from contrib/restricted/boost/boost/core/pointer_traits.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/core/ref.hpp (renamed from contrib/restricted/boost/boost/core/ref.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/core/scoped_enum.hpp (renamed from contrib/restricted/boost/boost/core/scoped_enum.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/core/swap.hpp (renamed from contrib/restricted/boost/boost/core/swap.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/core/typeinfo.hpp (renamed from contrib/restricted/boost/boost/core/typeinfo.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/detail/iterator.hpp (renamed from contrib/restricted/boost/boost/detail/iterator.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/detail/no_exceptions_support.hpp (renamed from contrib/restricted/boost/boost/detail/no_exceptions_support.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/detail/scoped_enum_emulation.hpp (renamed from contrib/restricted/boost/boost/detail/scoped_enum_emulation.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/detail/sp_typeinfo.hpp (renamed from contrib/restricted/boost/boost/detail/sp_typeinfo.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/get_pointer.hpp (renamed from contrib/restricted/boost/boost/get_pointer.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/iterator.hpp (renamed from contrib/restricted/boost/boost/iterator.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/non_type.hpp (renamed from contrib/restricted/boost/boost/non_type.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/noncopyable.hpp (renamed from contrib/restricted/boost/boost/noncopyable.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/ref.hpp (renamed from contrib/restricted/boost/boost/ref.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/swap.hpp (renamed from contrib/restricted/boost/boost/swap.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/type.hpp (renamed from contrib/restricted/boost/boost/type.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/utility/addressof.hpp (renamed from contrib/restricted/boost/boost/utility/addressof.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/utility/enable_if.hpp (renamed from contrib/restricted/boost/boost/utility/enable_if.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/utility/swap.hpp (renamed from contrib/restricted/boost/boost/utility/swap.hpp)0
-rw-r--r--contrib/restricted/boost/core/include/boost/visit_each.hpp (renamed from contrib/restricted/boost/boost/visit_each.hpp)0
43 files changed, 54 insertions, 1381 deletions
diff --git a/CMakeLists.darwin.txt b/CMakeLists.darwin.txt
index ed4c6390df8..f86c6f2c578 100644
--- a/CMakeLists.darwin.txt
+++ b/CMakeLists.darwin.txt
@@ -135,6 +135,7 @@ add_subdirectory(contrib/libs/utf8proc)
add_subdirectory(contrib/restricted/boost)
add_subdirectory(contrib/restricted/boost/assert)
add_subdirectory(contrib/restricted/boost/config)
+add_subdirectory(contrib/restricted/boost/core)
add_subdirectory(contrib/restricted/boost/io)
add_subdirectory(contrib/restricted/boost/mp11)
add_subdirectory(contrib/restricted/boost/predef)
diff --git a/CMakeLists.linux.txt b/CMakeLists.linux.txt
index 78abe677c77..682afa8f392 100644
--- a/CMakeLists.linux.txt
+++ b/CMakeLists.linux.txt
@@ -213,6 +213,7 @@ add_subdirectory(contrib/libs/utf8proc)
add_subdirectory(contrib/restricted/boost)
add_subdirectory(contrib/restricted/boost/assert)
add_subdirectory(contrib/restricted/boost/config)
+add_subdirectory(contrib/restricted/boost/core)
add_subdirectory(contrib/restricted/boost/io)
add_subdirectory(contrib/restricted/boost/mp11)
add_subdirectory(contrib/restricted/boost/predef)
diff --git a/contrib/restricted/boost/CMakeLists.txt b/contrib/restricted/boost/CMakeLists.txt
index 79f295c8c93..03836504b69 100644
--- a/contrib/restricted/boost/CMakeLists.txt
+++ b/contrib/restricted/boost/CMakeLists.txt
@@ -15,6 +15,7 @@ target_link_libraries(contrib-restricted-boost INTERFACE
contrib-libs-cxxsupp
restricted-boost-assert
restricted-boost-config
+ restricted-boost-core
restricted-boost-io
restricted-boost-mp11
restricted-boost-predef
diff --git a/contrib/restricted/boost/boost/core/allocator_access.hpp b/contrib/restricted/boost/boost/core/allocator_access.hpp
deleted file mode 100644
index 764c1222dde..00000000000
--- a/contrib/restricted/boost/boost/core/allocator_access.hpp
+++ /dev/null
@@ -1,601 +0,0 @@
-/*
-Copyright 2020-2021 Glen Joseph Fernandes
-
-Distributed under the Boost Software License, Version 1.0.
-(http://www.boost.org/LICENSE_1_0.txt)
-*/
-#ifndef BOOST_CORE_ALLOCATOR_ACCESS_HPP
-#define BOOST_CORE_ALLOCATOR_ACCESS_HPP
-
-#include <boost/config.hpp>
-#if !defined(BOOST_NO_CXX11_ALLOCATOR)
-#include <boost/core/pointer_traits.hpp>
-#include <limits>
-#include <type_traits>
-#endif
-#include <new>
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-#include <utility>
-#endif
-
-#if defined(_LIBCPP_SUPPRESS_DEPRECATED_PUSH)
-_LIBCPP_SUPPRESS_DEPRECATED_PUSH
-#endif
-#if defined(_STL_DISABLE_DEPRECATED_WARNING)
-_STL_DISABLE_DEPRECATED_WARNING
-#endif
-#if defined(_MSC_VER)
-#pragma warning(push)
-#pragma warning(disable:4996)
-#endif
-
-namespace boost {
-
-template<class A>
-struct allocator_value_type {
- typedef typename A::value_type type;
-};
-
-#if defined(BOOST_NO_CXX11_ALLOCATOR)
-template<class A>
-struct allocator_pointer {
- typedef typename A::pointer type;
-};
-#else
-template<class A, class = void>
-struct allocator_pointer {
- typedef typename A::value_type* type;
-};
-
-namespace detail {
-
-template<class>
-struct alloc_void {
- typedef void type;
-};
-
-} /* detail */
-
-template<class A>
-struct allocator_pointer<A,
- typename detail::alloc_void<typename A::pointer>::type> {
- typedef typename A::pointer type;
-};
-#endif
-
-#if defined(BOOST_NO_CXX11_ALLOCATOR)
-template<class A>
-struct allocator_const_pointer {
- typedef typename A::const_pointer type;
-};
-#else
-template<class A, class = void>
-struct allocator_const_pointer {
- typedef typename pointer_traits<typename
- allocator_pointer<A>::type>::template
- rebind_to<const typename A::value_type>::type type;
-};
-
-template<class A>
-struct allocator_const_pointer<A,
- typename detail::alloc_void<typename A::const_pointer>::type> {
- typedef typename A::const_pointer type;
-};
-#endif
-
-#if defined(BOOST_NO_CXX11_ALLOCATOR)
-template<class A>
-struct allocator_void_pointer {
- typedef typename A::template rebind<void>::other::pointer type;
-};
-#else
-template<class A, class = void>
-struct allocator_void_pointer {
- typedef typename pointer_traits<typename
- allocator_pointer<A>::type>::template
- rebind_to<void>::type type;
-};
-
-template<class A>
-struct allocator_void_pointer<A,
- typename detail::alloc_void<typename A::void_pointer>::type> {
- typedef typename A::void_pointer type;
-};
-#endif
-
-#if defined(BOOST_NO_CXX11_ALLOCATOR)
-template<class A>
-struct allocator_const_void_pointer {
- typedef typename A::template rebind<void>::other::const_pointer type;
-};
-#else
-template<class A, class = void>
-struct allocator_const_void_pointer {
- typedef typename pointer_traits<typename
- allocator_pointer<A>::type>::template
- rebind_to<const void>::type type;
-};
-
-template<class A>
-struct allocator_const_void_pointer<A,
- typename detail::alloc_void<typename A::const_void_pointer>::type> {
- typedef typename A::const_void_pointer type;
-};
-#endif
-
-#if defined(BOOST_NO_CXX11_ALLOCATOR)
-template<class A>
-struct allocator_difference_type {
- typedef typename A::difference_type type;
-};
-#else
-template<class A, class = void>
-struct allocator_difference_type {
- typedef typename pointer_traits<typename
- allocator_pointer<A>::type>::difference_type type;
-};
-
-template<class A>
-struct allocator_difference_type<A,
- typename detail::alloc_void<typename A::difference_type>::type> {
- typedef typename A::difference_type type;
-};
-#endif
-
-#if defined(BOOST_NO_CXX11_ALLOCATOR)
-template<class A>
-struct allocator_size_type {
- typedef typename A::size_type type;
-};
-#else
-template<class A, class = void>
-struct allocator_size_type {
- typedef typename std::make_unsigned<typename
- allocator_difference_type<A>::type>::type type;
-};
-
-template<class A>
-struct allocator_size_type<A,
- typename detail::alloc_void<typename A::size_type>::type> {
- typedef typename A::size_type type;
-};
-#endif
-
-#if defined(BOOST_NO_CXX11_ALLOCATOR)
-namespace detail {
-
-struct alloc_false {
- BOOST_STATIC_CONSTEXPR bool value = false;
-};
-
-} /* detail */
-
-template<class A>
-struct allocator_propagate_on_container_copy_assignment {
- typedef detail::alloc_false type;
-};
-#else
-template<class A, class = void>
-struct allocator_propagate_on_container_copy_assignment {
- typedef std::false_type type;
-};
-
-template<class A>
-struct allocator_propagate_on_container_copy_assignment<A,
- typename detail::alloc_void<typename
- A::propagate_on_container_copy_assignment>::type> {
- typedef typename A::propagate_on_container_copy_assignment type;
-};
-#endif
-
-#if defined(BOOST_NO_CXX11_ALLOCATOR)
-template<class A>
-struct allocator_propagate_on_container_move_assignment {
- typedef detail::alloc_false type;
-};
-#else
-template<class A, class = void>
-struct allocator_propagate_on_container_move_assignment {
- typedef std::false_type type;
-};
-
-template<class A>
-struct allocator_propagate_on_container_move_assignment<A,
- typename detail::alloc_void<typename
- A::propagate_on_container_move_assignment>::type> {
- typedef typename A::propagate_on_container_move_assignment type;
-};
-#endif
-
-#if defined(BOOST_NO_CXX11_ALLOCATOR)
-template<class A>
-struct allocator_propagate_on_container_swap {
- typedef detail::alloc_false type;
-};
-#else
-template<class A, class = void>
-struct allocator_propagate_on_container_swap {
- typedef std::false_type type;
-};
-
-template<class A>
-struct allocator_propagate_on_container_swap<A,
- typename detail::alloc_void<typename
- A::propagate_on_container_swap>::type> {
- typedef typename A::propagate_on_container_swap type;
-};
-#endif
-
-#if defined(BOOST_NO_CXX11_ALLOCATOR)
-template<class A>
-struct allocator_is_always_equal {
- typedef detail::alloc_false type;
-};
-#else
-template<class A, class = void>
-struct allocator_is_always_equal {
- typedef typename std::is_empty<A>::type type;
-};
-
-template<class A>
-struct allocator_is_always_equal<A,
- typename detail::alloc_void<typename A::is_always_equal>::type> {
- typedef typename A::is_always_equal type;
-};
-#endif
-
-#if defined(BOOST_NO_CXX11_ALLOCATOR)
-template<class A, class T>
-struct allocator_rebind {
- typedef typename A::template rebind<T>::other type;
-};
-#else
-namespace detail {
-
-template<class, class>
-struct alloc_to { };
-
-template<template<class, class...> class A, class T, class U, class... V>
-struct alloc_to<A<U, V...>, T> {
- typedef A<T, V...> type;
-};
-
-} /* detail */
-
-template<class A, class T, class = void>
-struct allocator_rebind {
- typedef typename detail::alloc_to<A, T>::type type;
-};
-
-template<class A, class T>
-struct allocator_rebind<A, T,
- typename detail::alloc_void<typename A::template rebind<T>::other>::type> {
- typedef typename A::template rebind<T>::other type;
-};
-#endif
-
-template<class A>
-inline typename allocator_pointer<A>::type
-allocator_allocate(A& a, typename allocator_size_type<A>::type n)
-{
- return a.allocate(n);
-}
-
-template<class A>
-inline void
-allocator_deallocate(A& a, typename allocator_pointer<A>::type p,
- typename allocator_size_type<A>::type n)
-{
- a.deallocate(p, n);
-}
-
-#if defined(BOOST_NO_CXX11_ALLOCATOR)
-template<class A>
-inline typename allocator_pointer<A>::type
-allocator_allocate(A& a, typename allocator_size_type<A>::type n,
- typename allocator_const_void_pointer<A>::type h)
-{
- return a.allocate(n, h);
-}
-#else
-namespace detail {
-
-struct alloc_none { };
-
-template<class A>
-class alloc_has_allocate {
- template<class O>
- static auto check(int) -> decltype(std::declval<O&>().allocate(
- std::declval<typename allocator_size_type<A>::type>(),
- std::declval<typename allocator_const_void_pointer<A>::type>()));
-
- template<class>
- static alloc_none check(long);
-
-public:
- BOOST_STATIC_CONSTEXPR bool value =
- !std::is_same<decltype(check<A>(0)), alloc_none>::value;
-};
-
-} /* detail */
-
-template<class A>
-inline typename std::enable_if<detail::alloc_has_allocate<A>::value,
- typename allocator_pointer<A>::type>::type
-allocator_allocate(A& a, typename allocator_size_type<A>::type n,
- typename allocator_const_void_pointer<A>::type h)
-{
- return a.allocate(n, h);
-}
-
-template<class A>
-inline typename std::enable_if<!detail::alloc_has_allocate<A>::value,
- typename allocator_pointer<A>::type>::type
-allocator_allocate(A& a, typename allocator_size_type<A>::type n,
- typename allocator_const_void_pointer<A>::type)
-{
- return a.allocate(n);
-}
-#endif
-
-#if defined(BOOST_NO_CXX11_ALLOCATOR)
-template<class A, class T>
-inline void
-allocator_construct(A&, T* p)
-{
- ::new((void*)p) T();
-}
-
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
-template<class A, class T, class V, class... Args>
-inline void
-allocator_construct(A&, T* p, V&& v, Args&&... args)
-{
- ::new((void*)p) T(std::forward<V>(v), std::forward<Args>(args)...);
-}
-#else
-template<class A, class T, class V>
-inline void
-allocator_construct(A&, T* p, V&& v)
-{
- ::new((void*)p) T(std::forward<V>(v));
-}
-#endif
-#else
-template<class A, class T, class V>
-inline void
-allocator_construct(A&, T* p, const V& v)
-{
- ::new((void*)p) T(v);
-}
-
-template<class A, class T, class V>
-inline void
-allocator_construct(A&, T* p, V& v)
-{
- ::new((void*)p) T(v);
-}
-#endif
-#else
-namespace detail {
-
-template<class A, class T, class... Args>
-class alloc_has_construct {
- template<class O>
- static auto check(int)
- -> decltype(std::declval<O&>().construct(std::declval<T*>(),
- std::declval<Args&&>()...));
-
- template<class>
- static alloc_none check(long);
-
-public:
- BOOST_STATIC_CONSTEXPR bool value =
- !std::is_same<decltype(check<A>(0)), alloc_none>::value;
-};
-
-} /* detail */
-
-template<class A, class T, class... Args>
-inline typename std::enable_if<detail::alloc_has_construct<A, T,
- Args...>::value>::type
-allocator_construct(A& a, T* p, Args&&... args)
-{
- a.construct(p, std::forward<Args>(args)...);
-}
-
-template<class A, class T, class... Args>
-inline typename std::enable_if<!detail::alloc_has_construct<A, T,
- Args...>::value>::type
-allocator_construct(A&, T* p, Args&&... args)
-{
- ::new((void*)p) T(std::forward<Args>(args)...);
-}
-#endif
-
-#if defined(BOOST_NO_CXX11_ALLOCATOR)
-template<class A, class T>
-inline void
-allocator_destroy(A&, T* p)
-{
- p->~T();
- (void)p;
-}
-#else
-namespace detail {
-
-template<class A, class T>
-class alloc_has_destroy {
- template<class O>
- static auto check(int)
- -> decltype(std::declval<O&>().destroy(std::declval<T*>()));
-
- template<class>
- static alloc_none check(long);
-
-public:
- BOOST_STATIC_CONSTEXPR bool value =
- !std::is_same<decltype(check<A>(0)), alloc_none>::value;
-};
-
-} /* detail */
-
-template<class A, class T>
-inline typename std::enable_if<detail::alloc_has_destroy<A, T>::value>::type
-allocator_destroy(A& a, T* p)
-{
- a.destroy(p);
-}
-
-template<class A, class T>
-inline typename std::enable_if<!detail::alloc_has_destroy<A, T>::value>::type
-allocator_destroy(A&, T* p)
-{
- p->~T();
- (void)p;
-}
-#endif
-
-#if defined(BOOST_NO_CXX11_ALLOCATOR)
-template<class A>
-inline typename allocator_size_type<A>::type
-allocator_max_size(const A& a)
-{
- return a.max_size();
-}
-#else
-namespace detail {
-
-template<class A>
-class alloc_has_max_size {
- template<class O>
- static auto check(int) -> decltype(std::declval<O&>().max_size());
-
- template<class>
- static alloc_none check(long);
-
-public:
- BOOST_STATIC_CONSTEXPR bool value =
- !std::is_same<decltype(check<A>(0)), alloc_none>::value;
-};
-
-} /* detail */
-
-template<class A>
-inline typename std::enable_if<detail::alloc_has_max_size<A>::value,
- typename allocator_size_type<A>::type>::type
-allocator_max_size(const A& a)
-{
- return a.max_size();
-}
-
-template<class A>
-inline typename std::enable_if<!detail::alloc_has_max_size<A>::value,
- typename allocator_size_type<A>::type>::type
-allocator_max_size(const A&)
-{
- return (std::numeric_limits<typename
- allocator_size_type<A>::type>::max)() / sizeof(typename A::value_type);
-}
-#endif
-
-#if defined(BOOST_NO_CXX11_ALLOCATOR)
-template<class A>
-inline A
-allocator_select_on_container_copy_construction(const A& a)
-{
- return a;
-}
-#else
-namespace detail {
-
-template<class A>
-class alloc_has_soccc {
- template<class O>
- static auto check(int)
- -> decltype(std::declval<O&>().select_on_container_copy_construction());
-
- template<class>
- static alloc_none check(long);
-
-public:
- BOOST_STATIC_CONSTEXPR bool value =
- !std::is_same<decltype(check<A>(0)), alloc_none>::value;
-};
-
-} /* detail */
-
-template<class A>
-inline typename std::enable_if<detail::alloc_has_soccc<A>::value, A>::type
-allocator_select_on_container_copy_construction(const A& a)
-{
- return a.select_on_container_copy_construction();
-}
-
-template<class A>
-inline typename std::enable_if<!detail::alloc_has_soccc<A>::value, A>::type
-allocator_select_on_container_copy_construction(const A& a)
-{
- return a;
-}
-#endif
-
-#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES)
-template<class A>
-using allocator_value_type_t = typename allocator_value_type<A>::type;
-
-template<class A>
-using allocator_pointer_t = typename allocator_pointer<A>::type;
-
-template<class A>
-using allocator_const_pointer_t = typename allocator_const_pointer<A>::type;
-
-template<class A>
-using allocator_void_pointer_t = typename allocator_void_pointer<A>::type;
-
-template<class A>
-using allocator_const_void_pointer_t =
- typename allocator_const_void_pointer<A>::type;
-
-template<class A>
-using allocator_difference_type_t =
- typename allocator_difference_type<A>::type;
-
-template<class A>
-using allocator_size_type_t = typename allocator_size_type<A>::type;
-
-template<class A>
-using allocator_propagate_on_container_copy_assignment_t =
- typename allocator_propagate_on_container_copy_assignment<A>::type;
-
-template<class A>
-using allocator_propagate_on_container_move_assignment_t =
- typename allocator_propagate_on_container_move_assignment<A>::type;
-
-template<class A>
-using allocator_propagate_on_container_swap_t =
- typename allocator_propagate_on_container_swap<A>::type;
-
-template<class A>
-using allocator_is_always_equal_t =
- typename allocator_is_always_equal<A>::type;
-
-template<class A, class T>
-using allocator_rebind_t = typename allocator_rebind<A, T>::type;
-#endif
-
-} /* boost */
-
-#if defined(_LIBCPP_SUPPRESS_DEPRECATED_POP)
-_LIBCPP_SUPPRESS_DEPRECATED_POP
-#endif
-#if defined(_STL_RESTORE_DEPRECATED_WARNING)
-_STL_RESTORE_DEPRECATED_WARNING
-#endif
-#if defined(_MSC_VER)
-#pragma warning(pop)
-#endif
-
-#endif
diff --git a/contrib/restricted/boost/boost/core/empty_value.hpp b/contrib/restricted/boost/boost/core/empty_value.hpp
deleted file mode 100644
index 2ac2331d1f9..00000000000
--- a/contrib/restricted/boost/boost/core/empty_value.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
-Copyright 2018 Glen Joseph Fernandes
-
-Distributed under the Boost Software License, Version 1.0.
-(http://www.boost.org/LICENSE_1_0.txt)
-*/
-#ifndef BOOST_CORE_EMPTY_VALUE_HPP
-#define BOOST_CORE_EMPTY_VALUE_HPP
-
-#include <boost/config.hpp>
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-#include <utility>
-#endif
-
-#if defined(BOOST_GCC_VERSION) && (BOOST_GCC_VERSION >= 40700)
-#define BOOST_DETAIL_EMPTY_VALUE_BASE
-#elif defined(BOOST_INTEL) && defined(_MSC_VER) && (_MSC_VER >= 1800)
-#define BOOST_DETAIL_EMPTY_VALUE_BASE
-#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1800)
-#define BOOST_DETAIL_EMPTY_VALUE_BASE
-#elif defined(BOOST_CLANG) && !defined(__CUDACC__)
-#if __has_feature(is_empty) && __has_feature(is_final)
-#define BOOST_DETAIL_EMPTY_VALUE_BASE
-#endif
-#endif
-
-namespace boost {
-
-template<class T>
-struct use_empty_value_base {
- enum {
-#if defined(BOOST_DETAIL_EMPTY_VALUE_BASE)
- value = __is_empty(T) && !__is_final(T)
-#else
- value = false
-#endif
- };
-};
-
-struct empty_init_t { };
-
-namespace empty_ {
-
-template<class T, unsigned N = 0,
- bool E = boost::use_empty_value_base<T>::value>
-class empty_value {
-public:
- typedef T type;
-
-#if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS)
- empty_value() = default;
-#else
- empty_value() { }
-#endif
-
- empty_value(boost::empty_init_t)
- : value_() { }
-
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
- template<class U, class... Args>
- empty_value(boost::empty_init_t, U&& value, Args&&... args)
- : value_(std::forward<U>(value), std::forward<Args>(args)...) { }
-#else
- template<class U>
- empty_value(boost::empty_init_t, U&& value)
- : value_(std::forward<U>(value)) { }
-#endif
-#else
- template<class U>
- empty_value(boost::empty_init_t, const U& value)
- : value_(value) { }
-
- template<class U>
- empty_value(boost::empty_init_t, U& value)
- : value_(value) { }
-#endif
-
- const T& get() const BOOST_NOEXCEPT {
- return value_;
- }
-
- T& get() BOOST_NOEXCEPT {
- return value_;
- }
-
-private:
- T value_;
-};
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-template<class T, unsigned N>
-class empty_value<T, N, true>
- : T {
-public:
- typedef T type;
-
-#if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS)
- empty_value() = default;
-#else
- empty_value() { }
-#endif
-
- empty_value(boost::empty_init_t)
- : T() { }
-
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
- template<class U, class... Args>
- empty_value(boost::empty_init_t, U&& value, Args&&... args)
- : T(std::forward<U>(value), std::forward<Args>(args)...) { }
-#else
- template<class U>
- empty_value(boost::empty_init_t, U&& value)
- : T(std::forward<U>(value)) { }
-#endif
-#else
- template<class U>
- empty_value(boost::empty_init_t, const U& value)
- : T(value) { }
-
- template<class U>
- empty_value(boost::empty_init_t, U& value)
- : T(value) { }
-#endif
-
- const T& get() const BOOST_NOEXCEPT {
- return *this;
- }
-
- T& get() BOOST_NOEXCEPT {
- return *this;
- }
-};
-#endif
-
-} /* empty_ */
-
-using empty_::empty_value;
-
-BOOST_INLINE_CONSTEXPR empty_init_t empty_init = empty_init_t();
-
-} /* boost */
-
-#endif
diff --git a/contrib/restricted/boost/boost/core/lightweight_test.hpp b/contrib/restricted/boost/boost/core/lightweight_test.hpp
deleted file mode 100644
index 73557be21fb..00000000000
--- a/contrib/restricted/boost/boost/core/lightweight_test.hpp
+++ /dev/null
@@ -1,465 +0,0 @@
-#ifndef BOOST_CORE_LIGHTWEIGHT_TEST_HPP
-#define BOOST_CORE_LIGHTWEIGHT_TEST_HPP
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER)
-# pragma once
-#endif
-
-//
-// boost/core/lightweight_test.hpp - lightweight test library
-//
-// Copyright (c) 2002, 2009, 2014 Peter Dimov
-// Copyright (2) Beman Dawes 2010, 2011
-// Copyright (3) Ion Gaztanaga 2013
-//
-// 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/core/no_exceptions_support.hpp>
-#include <boost/assert.hpp>
-#include <boost/current_function.hpp>
-#include <iostream>
-#include <iterator>
-#include <cstring>
-#include <cstddef>
-
-// IDE's like Visual Studio perform better if output goes to std::cout or
-// some other stream, so allow user to configure output stream:
-#ifndef BOOST_LIGHTWEIGHT_TEST_OSTREAM
-# define BOOST_LIGHTWEIGHT_TEST_OSTREAM std::cerr
-#endif
-
-namespace boost
-{
-
-namespace detail
-{
-
-struct report_errors_reminder
-{
- bool called_report_errors_function;
-
- report_errors_reminder() : called_report_errors_function(false) {}
-
- ~report_errors_reminder()
- {
- BOOST_ASSERT(called_report_errors_function); // verify report_errors() was called
- }
-};
-
-inline report_errors_reminder& report_errors_remind()
-{
- static report_errors_reminder r;
- return r;
-}
-
-inline int & test_errors()
-{
- static int x = 0;
- report_errors_remind();
- return x;
-}
-
-inline void test_failed_impl(char const * expr, char const * file, int line, char const * function)
-{
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
- << file << "(" << line << "): test '" << expr << "' failed in function '"
- << function << "'" << std::endl;
- ++test_errors();
-}
-
-inline void error_impl(char const * msg, char const * file, int line, char const * function)
-{
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
- << file << "(" << line << "): " << msg << " in function '"
- << function << "'" << std::endl;
- ++test_errors();
-}
-
-inline void throw_failed_impl(char const * excep, char const * file, int line, char const * function)
-{
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
- << file << "(" << line << "): Exception '" << excep << "' not thrown in function '"
- << function << "'" << std::endl;
- ++test_errors();
-}
-
-// In the comparisons below, it is possible that T and U are signed and unsigned integer types, which generates warnings in some compilers.
-// A cleaner fix would require common_type trait or some meta-programming, which would introduce a dependency on Boost.TypeTraits. To avoid
-// the dependency we just disable the warnings.
-#if defined(_MSC_VER)
-# pragma warning(push)
-# pragma warning(disable: 4389)
-#elif defined(__clang__) && defined(__has_warning)
-# if __has_warning("-Wsign-compare")
-# pragma clang diagnostic push
-# pragma clang diagnostic ignored "-Wsign-compare"
-# endif
-#elif defined(__GNUC__) && !(defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 406
-# pragma GCC diagnostic push
-# pragma GCC diagnostic ignored "-Wsign-compare"
-#endif
-
-// specialize test output for char pointers to avoid printing as cstring
-template <class T> inline const T& test_output_impl(const T& v) { return v; }
-inline const void* test_output_impl(const char* v) { return v; }
-inline const void* test_output_impl(const unsigned char* v) { return v; }
-inline const void* test_output_impl(const signed char* v) { return v; }
-inline const void* test_output_impl(char* v) { return v; }
-inline const void* test_output_impl(unsigned char* v) { return v; }
-inline const void* test_output_impl(signed char* v) { return v; }
-template<class T> inline const void* test_output_impl(T volatile* v) { return const_cast<T*>(v); }
-
-#if !defined( BOOST_NO_CXX11_NULLPTR )
-inline const void* test_output_impl(std::nullptr_t) { return nullptr; }
-#endif
-
-template<class T, class U> inline void test_eq_impl( char const * expr1, char const * expr2,
- char const * file, int line, char const * function, T const & t, U const & u )
-{
- if( t == u )
- {
- report_errors_remind();
- }
- else
- {
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
- << file << "(" << line << "): test '" << expr1 << " == " << expr2
- << "' failed in function '" << function << "': "
- << "'" << test_output_impl(t) << "' != '" << test_output_impl(u) << "'" << std::endl;
- ++test_errors();
- }
-}
-
-template<class T, class U> inline void test_ne_impl( char const * expr1, char const * expr2,
- char const * file, int line, char const * function, T const & t, U const & u )
-{
- if( t != u )
- {
- report_errors_remind();
- }
- else
- {
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
- << file << "(" << line << "): test '" << expr1 << " != " << expr2
- << "' failed in function '" << function << "': "
- << "'" << test_output_impl(t) << "' == '" << test_output_impl(u) << "'" << std::endl;
- ++test_errors();
- }
-}
-
-template<class T, class U> inline void test_lt_impl( char const * expr1, char const * expr2,
- char const * file, int line, char const * function, T const & t, U const & u )
-{
- if( t < u )
- {
- report_errors_remind();
- }
- else
- {
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
- << file << "(" << line << "): test '" << expr1 << " < " << expr2
- << "' failed in function '" << function << "': "
- << "'" << test_output_impl(t) << "' >= '" << test_output_impl(u) << "'" << std::endl;
- ++test_errors();
- }
-}
-
-template<class T, class U> inline void test_le_impl( char const * expr1, char const * expr2,
- char const * file, int line, char const * function, T const & t, U const & u )
-{
- if( t <= u )
- {
- report_errors_remind();
- }
- else
- {
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
- << file << "(" << line << "): test '" << expr1 << " <= " << expr2
- << "' failed in function '" << function << "': "
- << "'" << test_output_impl(t) << "' > '" << test_output_impl(u) << "'" << std::endl;
- ++test_errors();
- }
-}
-
-template<class T, class U> inline void test_gt_impl( char const * expr1, char const * expr2,
- char const * file, int line, char const * function, T const & t, U const & u )
-{
- if( t > u )
- {
- report_errors_remind();
- }
- else
- {
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
- << file << "(" << line << "): test '" << expr1 << " > " << expr2
- << "' failed in function '" << function << "': "
- << "'" << test_output_impl(t) << "' <= '" << test_output_impl(u) << "'" << std::endl;
- ++test_errors();
- }
-}
-
-template<class T, class U> inline void test_ge_impl( char const * expr1, char const * expr2,
- char const * file, int line, char const * function, T const & t, U const & u )
-{
- if( t >= u )
- {
- report_errors_remind();
- }
- else
- {
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
- << file << "(" << line << "): test '" << expr1 << " >= " << expr2
- << "' failed in function '" << function << "': "
- << "'" << test_output_impl(t) << "' < '" << test_output_impl(u) << "'" << std::endl;
- ++test_errors();
- }
-}
-
-inline void test_cstr_eq_impl( char const * expr1, char const * expr2,
- char const * file, int line, char const * function, char const * const t, char const * const u )
-{
- if( std::strcmp(t, u) == 0 )
- {
- report_errors_remind();
- }
- else
- {
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
- << file << "(" << line << "): test '" << expr1 << " == " << expr2
- << "' failed in function '" << function << "': "
- << "'" << t << "' != '" << u << "'" << std::endl;
- ++test_errors();
- }
-}
-
-inline void test_cstr_ne_impl( char const * expr1, char const * expr2,
- char const * file, int line, char const * function, char const * const t, char const * const u )
-{
- if( std::strcmp(t, u) != 0 )
- {
- report_errors_remind();
- }
- else
- {
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
- << file << "(" << line << "): test '" << expr1 << " == " << expr2
- << "' failed in function '" << function << "': "
- << "'" << t << "' == '" << u << "'" << std::endl;
- ++test_errors();
- }
-}
-
-template<class FormattedOutputFunction, class InputIterator1, class InputIterator2>
-void test_all_eq_impl(FormattedOutputFunction& output,
- char const * file, int line, char const * function,
- InputIterator1 first_begin, InputIterator1 first_end,
- InputIterator2 second_begin, InputIterator2 second_end)
-{
- InputIterator1 first_it = first_begin;
- InputIterator2 second_it = second_begin;
- typename std::iterator_traits<InputIterator1>::difference_type first_index = 0;
- typename std::iterator_traits<InputIterator2>::difference_type second_index = 0;
- std::size_t error_count = 0;
- const std::size_t max_count = 8;
- do
- {
- while ((first_it != first_end) && (second_it != second_end) && (*first_it == *second_it))
- {
- ++first_it;
- ++second_it;
- ++first_index;
- ++second_index;
- }
- if ((first_it == first_end) || (second_it == second_end))
- {
- break; // do-while
- }
- if (error_count == 0)
- {
- output << file << "(" << line << "): Container contents differ in function '" << function << "':";
- }
- else if (error_count >= max_count)
- {
- output << " ...";
- break;
- }
- output << " [" << first_index << "] '" << test_output_impl(*first_it) << "' != '" << test_output_impl(*second_it) << "'";
- ++first_it;
- ++second_it;
- ++first_index;
- ++second_index;
- ++error_count;
- } while (first_it != first_end);
-
- first_index += std::distance(first_it, first_end);
- second_index += std::distance(second_it, second_end);
- if (first_index != second_index)
- {
- if (error_count == 0)
- {
- output << file << "(" << line << "): Container sizes differ in function '" << function << "': size(" << first_index << ") != size(" << second_index << ")";
- }
- else
- {
- output << " [*] size(" << first_index << ") != size(" << second_index << ")";
- }
- ++error_count;
- }
-
- if (error_count == 0)
- {
- boost::detail::report_errors_remind();
- }
- else
- {
- output << std::endl;
- ++boost::detail::test_errors();
- }
-}
-
-template<class FormattedOutputFunction, class InputIterator1, class InputIterator2, typename BinaryPredicate>
-void test_all_with_impl(FormattedOutputFunction& output,
- char const * file, int line, char const * function,
- InputIterator1 first_begin, InputIterator1 first_end,
- InputIterator2 second_begin, InputIterator2 second_end,
- BinaryPredicate predicate)
-{
- InputIterator1 first_it = first_begin;
- InputIterator2 second_it = second_begin;
- typename std::iterator_traits<InputIterator1>::difference_type first_index = 0;
- typename std::iterator_traits<InputIterator2>::difference_type second_index = 0;
- std::size_t error_count = 0;
- const std::size_t max_count = 8;
- do
- {
- while ((first_it != first_end) && (second_it != second_end) && predicate(*first_it, *second_it))
- {
- ++first_it;
- ++second_it;
- ++first_index;
- ++second_index;
- }
- if ((first_it == first_end) || (second_it == second_end))
- {
- break; // do-while
- }
- if (error_count == 0)
- {
- output << file << "(" << line << "): Container contents differ in function '" << function << "':";
- }
- else if (error_count >= max_count)
- {
- output << " ...";
- break;
- }
- output << " [" << first_index << "]";
- ++first_it;
- ++second_it;
- ++first_index;
- ++second_index;
- ++error_count;
- } while (first_it != first_end);
-
- first_index += std::distance(first_it, first_end);
- second_index += std::distance(second_it, second_end);
- if (first_index != second_index)
- {
- if (error_count == 0)
- {
- output << file << "(" << line << "): Container sizes differ in function '" << function << "': size(" << first_index << ") != size(" << second_index << ")";
- }
- else
- {
- output << " [*] size(" << first_index << ") != size(" << second_index << ")";
- }
- ++error_count;
- }
-
- if (error_count == 0)
- {
- report_errors_remind();
- }
- else
- {
- output << std::endl;
- ++test_errors();
- }
-}
-
-#if defined(_MSC_VER)
-# pragma warning(pop)
-#elif defined(__clang__) && defined(__has_warning)
-# if __has_warning("-Wsign-compare")
-# pragma clang diagnostic pop
-# endif
-#elif defined(__GNUC__) && !(defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 406
-# pragma GCC diagnostic pop
-#endif
-
-} // namespace detail
-
-inline int report_errors()
-{
- boost::detail::report_errors_remind().called_report_errors_function = true;
-
- int errors = boost::detail::test_errors();
-
- if( errors == 0 )
- {
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
- << "No errors detected." << std::endl;
- return 0;
- }
- else
- {
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
- << errors << " error" << (errors == 1? "": "s") << " detected." << std::endl;
- return 1;
- }
-}
-
-} // namespace boost
-
-#define BOOST_TEST(expr) ((expr)? (void)0: ::boost::detail::test_failed_impl(#expr, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION))
-#define BOOST_TEST_NOT(expr) BOOST_TEST(!(expr))
-
-#define BOOST_ERROR(msg) ( ::boost::detail::error_impl(msg, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION) )
-
-#define BOOST_TEST_EQ(expr1,expr2) ( ::boost::detail::test_eq_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
-#define BOOST_TEST_NE(expr1,expr2) ( ::boost::detail::test_ne_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
-
-#define BOOST_TEST_LT(expr1,expr2) ( ::boost::detail::test_lt_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
-#define BOOST_TEST_LE(expr1,expr2) ( ::boost::detail::test_le_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
-#define BOOST_TEST_GT(expr1,expr2) ( ::boost::detail::test_gt_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
-#define BOOST_TEST_GE(expr1,expr2) ( ::boost::detail::test_ge_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
-
-#define BOOST_TEST_CSTR_EQ(expr1,expr2) ( ::boost::detail::test_cstr_eq_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
-#define BOOST_TEST_CSTR_NE(expr1,expr2) ( ::boost::detail::test_cstr_ne_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
-
-#define BOOST_TEST_ALL_EQ(begin1, end1, begin2, end2) ( ::boost::detail::test_all_eq_impl(BOOST_LIGHTWEIGHT_TEST_OSTREAM, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, begin1, end1, begin2, end2) )
-#define BOOST_TEST_ALL_WITH(begin1, end1, begin2, end2, predicate) ( ::boost::detail::test_all_with_impl(BOOST_LIGHTWEIGHT_TEST_OSTREAM, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, begin1, end1, begin2, end2, predicate) )
-
-#ifndef BOOST_NO_EXCEPTIONS
- #define BOOST_TEST_THROWS( EXPR, EXCEP ) \
- try { \
- EXPR; \
- ::boost::detail::throw_failed_impl \
- (#EXCEP, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION); \
- } \
- catch(EXCEP const&) { \
- } \
- catch(...) { \
- ::boost::detail::throw_failed_impl \
- (#EXCEP, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION); \
- } \
- //
-#else
- #define BOOST_TEST_THROWS( EXPR, EXCEP )
-#endif
-
-#endif // #ifndef BOOST_CORE_LIGHTWEIGHT_TEST_HPP
diff --git a/contrib/restricted/boost/boost/core/lightweight_test_trait.hpp b/contrib/restricted/boost/boost/core/lightweight_test_trait.hpp
deleted file mode 100644
index 0e2aab4435d..00000000000
--- a/contrib/restricted/boost/boost/core/lightweight_test_trait.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef BOOST_CORE_LIGHTWEIGHT_TEST_TRAIT_HPP
-#define BOOST_CORE_LIGHTWEIGHT_TEST_TRAIT_HPP
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER)
-# pragma once
-#endif
-
-// boost/core/lightweight_test_trait.hpp
-//
-// BOOST_TEST_TRAIT_TRUE, BOOST_TEST_TRAIT_FALSE
-//
-// Copyright 2014 Peter Dimov
-//
-// 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/core/lightweight_test.hpp>
-#include <boost/core/typeinfo.hpp>
-
-namespace boost
-{
-
-namespace detail
-{
-
-template< class T > inline void test_trait_impl( char const * trait, void (*)( T ),
- bool expected, char const * file, int line, char const * function )
-{
- if( T::value == expected )
- {
- report_errors_remind();
- }
- else
- {
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
- << file << "(" << line << "): predicate '" << trait << "' ["
- << boost::core::demangled_name( BOOST_CORE_TYPEID(T) ) << "]"
- << " test failed in function '" << function
- << "' (should have been " << ( expected? "true": "false" ) << ")"
- << std::endl;
-
- ++test_errors();
- }
-}
-
-} // namespace detail
-
-} // namespace boost
-
-#define BOOST_TEST_TRAIT_TRUE(type) ( ::boost::detail::test_trait_impl(#type, (void(*)type)0, true, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION) )
-#define BOOST_TEST_TRAIT_FALSE(type) ( ::boost::detail::test_trait_impl(#type, (void(*)type)0, false, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION) )
-
-#endif // #ifndef BOOST_CORE_LIGHTWEIGHT_TEST_TRAIT_HPP
diff --git a/contrib/restricted/boost/boost/core/underlying_type.hpp b/contrib/restricted/boost/boost/core/underlying_type.hpp
deleted file mode 100644
index 7ecba313f45..00000000000
--- a/contrib/restricted/boost/boost/core/underlying_type.hpp
+++ /dev/null
@@ -1,79 +0,0 @@
-// underlying_type.hpp ---------------------------------------------------------//
-
-// Copyright Beman Dawes, 2009
-// Copyright (C) 2011-2012 Vicente J. Botet Escriba
-// Copyright (C) 2012 Anthony Williams
-// Copyright (C) 2014 Andrey Semashev
-
-// Distributed under the Boost Software License, Version 1.0.
-// See http://www.boost.org/LICENSE_1_0.txt
-
-#ifndef BOOST_CORE_UNDERLYING_TYPE_HPP
-#define BOOST_CORE_UNDERLYING_TYPE_HPP
-
-#include <boost/config.hpp>
-
-// GCC 4.7 and later seem to provide std::underlying_type
-#if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) || (defined(BOOST_GCC) && BOOST_GCC >= 40700 && defined(__GXX_EXPERIMENTAL_CXX0X__))
-#include <type_traits>
-#define BOOST_DETAIL_HAS_STD_UNDERLYING_TYPE
-#endif
-
-#ifdef BOOST_HAS_PRAGMA_ONCE
-#pragma once
-#endif
-
-namespace boost {
-
-namespace detail {
-
-template< typename EnumType, typename Void = void >
-struct underlying_type_impl;
-
-#if defined(BOOST_NO_CXX11_SCOPED_ENUMS)
-
-// Support for boost/core/scoped_enum.hpp
-template< typename EnumType >
-struct underlying_type_impl< EnumType, typename EnumType::is_boost_scoped_enum_tag >
-{
- /**
- * The member typedef type names the underlying type of EnumType. It is EnumType::underlying_type when the EnumType is an emulated scoped enum,
- */
- typedef typename EnumType::underlying_type type;
-};
-
-#endif
-
-#if defined(BOOST_DETAIL_HAS_STD_UNDERLYING_TYPE)
-
-template< typename EnumType, typename Void >
-struct underlying_type_impl
-{
- typedef typename std::underlying_type< EnumType >::type type;
-};
-
-#endif
-
-} // namespace detail
-
-#if !defined(BOOST_NO_CXX11_SCOPED_ENUMS) && !defined(BOOST_DETAIL_HAS_STD_UNDERLYING_TYPE)
-#define BOOST_NO_UNDERLYING_TYPE
-#endif
-
-/**
- * Meta-function to get the underlying type of a scoped enum.
- *
- * Requires EnumType must be an enum type or the emulation of a scoped enum.
- * If BOOST_NO_UNDERLYING_TYPE is defined, the implementation will not be able
- * to deduce the underlying type of enums. The user is expected to specialize
- * this trait in this case.
- */
-template< typename EnumType >
-struct underlying_type :
- public detail::underlying_type_impl< EnumType >
-{
-};
-
-} // namespace boost
-
-#endif // BOOST_CORE_UNDERLYING_TYPE_HPP
diff --git a/contrib/restricted/boost/boost/detail/lightweight_test.hpp b/contrib/restricted/boost/boost/detail/lightweight_test.hpp
deleted file mode 100644
index 9fece8ab7ea..00000000000
--- a/contrib/restricted/boost/boost/detail/lightweight_test.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright (c) 2014 Glen Fernandes
- *
- * 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_DETAIL_LIGHTWEIGHT_TEST_HPP
-#define BOOST_DETAIL_LIGHTWEIGHT_TEST_HPP
-
-// The header file at this path is deprecated;
-// use boost/core/lightweight_test.hpp instead.
-
-#include <boost/core/lightweight_test.hpp>
-
-#endif
diff --git a/contrib/restricted/boost/boost/utility/explicit_operator_bool.hpp b/contrib/restricted/boost/boost/utility/explicit_operator_bool.hpp
deleted file mode 100644
index 9b625cd6897..00000000000
--- a/contrib/restricted/boost/boost/utility/explicit_operator_bool.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright (c) 2014 Glen Fernandes
- *
- * 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_UTILITY_EXPLICIT_OPERATOR_BOOL_HPP
-#define BOOST_UTILITY_EXPLICIT_OPERATOR_BOOL_HPP
-
-// The header file at this path is deprecated;
-// use boost/core/explicit_operator_bool.hpp instead.
-
-#include <boost/core/explicit_operator_bool.hpp>
-
-#endif
diff --git a/contrib/restricted/boost/core/CMakeLists.txt b/contrib/restricted/boost/core/CMakeLists.txt
new file mode 100644
index 00000000000..0ed21cae085
--- /dev/null
+++ b/contrib/restricted/boost/core/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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-core INTERFACE)
+target_include_directories(restricted-boost-core INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/core/include
+)
+target_link_libraries(restricted-boost-core INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ restricted-boost-assert
+ restricted-boost-config
+)
diff --git a/contrib/restricted/boost/core/README.md b/contrib/restricted/boost/core/README.md
new file mode 100644
index 00000000000..52bd71b472e
--- /dev/null
+++ b/contrib/restricted/boost/core/README.md
@@ -0,0 +1,32 @@
+Boost.Core
+==========
+
+Boost.Core, part of collection of the [Boost C++ Libraries](http://github.com/boostorg), is a collection of core utilities used by other Boost libraries.
+The criteria for inclusion is that the utility component be:
+
+* simple,
+* used by other Boost libraries, and
+* not dependent on any other Boost modules except Core itself, Config, Assert, Static Assert, or Predef.
+
+### CI Status
+
+Branch | Travis | Appveyor
+---------|--------|---------
+Develop | [![Build Status](https://travis-ci.org/boostorg/core.svg?branch=develop)](https://travis-ci.org/boostorg/core) | [![Build Status](https://ci.appveyor.com/api/projects/status/github/boostorg/core?branch=develop&svg=true)](https://ci.appveyor.com/project/pdimov/core)
+Master | [![Build Status](https://travis-ci.org/boostorg/core.svg?branch=master)](https://travis-ci.org/boostorg/core) | [![Build Status](https://ci.appveyor.com/api/projects/status/github/boostorg/core?branch=master&svg=true)](https://ci.appveyor.com/project/pdimov/core)
+
+### Directories
+
+* **doc** - Documentation of the components
+* **include** - Interface headers
+* **test** - Unit tests
+
+### More information
+
+* [Documentation](http://boost.org/libs/core)
+* [Report bugs](https://svn.boost.org/trac/boost/newticket?component=core;version=Boost%20Release%20Branch). Be sure to mention Boost version, platform and compiler you're using. A small compilable code sample to reproduce the problem is always good as well.
+* Submit your patches as pull requests against **develop** branch. Note that by submitting patches you agree to license your modifications under the [Boost Software License, Version 1.0](http://www.boost.org/LICENSE_1_0.txt).
+
+### License
+
+Distributed under the [Boost Software License, Version 1.0](http://boost.org/LICENSE_1_0.txt).
diff --git a/contrib/restricted/boost/boost/checked_delete.hpp b/contrib/restricted/boost/core/include/boost/checked_delete.hpp
index fb71c789c8d..fb71c789c8d 100644
--- a/contrib/restricted/boost/boost/checked_delete.hpp
+++ b/contrib/restricted/boost/core/include/boost/checked_delete.hpp
diff --git a/contrib/restricted/boost/boost/core/addressof.hpp b/contrib/restricted/boost/core/include/boost/core/addressof.hpp
index f7eab06ba75..f7eab06ba75 100644
--- a/contrib/restricted/boost/boost/core/addressof.hpp
+++ b/contrib/restricted/boost/core/include/boost/core/addressof.hpp
diff --git a/contrib/restricted/boost/boost/core/checked_delete.hpp b/contrib/restricted/boost/core/include/boost/core/checked_delete.hpp
index b086e03e88a..b086e03e88a 100644
--- a/contrib/restricted/boost/boost/core/checked_delete.hpp
+++ b/contrib/restricted/boost/core/include/boost/core/checked_delete.hpp
diff --git a/contrib/restricted/boost/boost/core/demangle.hpp b/contrib/restricted/boost/core/include/boost/core/demangle.hpp
index 5c996931ce0..5c996931ce0 100644
--- a/contrib/restricted/boost/boost/core/demangle.hpp
+++ b/contrib/restricted/boost/core/include/boost/core/demangle.hpp
diff --git a/contrib/restricted/boost/boost/core/enable_if.hpp b/contrib/restricted/boost/core/include/boost/core/enable_if.hpp
index 5dcef1e0354..5dcef1e0354 100644
--- a/contrib/restricted/boost/boost/core/enable_if.hpp
+++ b/contrib/restricted/boost/core/include/boost/core/enable_if.hpp
diff --git a/contrib/restricted/boost/boost/core/explicit_operator_bool.hpp b/contrib/restricted/boost/core/include/boost/core/explicit_operator_bool.hpp
index a8936e2cd67..a8936e2cd67 100644
--- a/contrib/restricted/boost/boost/core/explicit_operator_bool.hpp
+++ b/contrib/restricted/boost/core/include/boost/core/explicit_operator_bool.hpp
diff --git a/contrib/restricted/boost/boost/core/ignore_unused.hpp b/contrib/restricted/boost/core/include/boost/core/ignore_unused.hpp
index 994e5f64763..994e5f64763 100644
--- a/contrib/restricted/boost/boost/core/ignore_unused.hpp
+++ b/contrib/restricted/boost/core/include/boost/core/ignore_unused.hpp
diff --git a/contrib/restricted/boost/boost/core/is_same.hpp b/contrib/restricted/boost/core/include/boost/core/is_same.hpp
index f373c654d5e..f373c654d5e 100644
--- a/contrib/restricted/boost/boost/core/is_same.hpp
+++ b/contrib/restricted/boost/core/include/boost/core/is_same.hpp
diff --git a/contrib/restricted/boost/boost/core/no_exceptions_support.hpp b/contrib/restricted/boost/core/include/boost/core/no_exceptions_support.hpp
index e2453d084ba..e2453d084ba 100644
--- a/contrib/restricted/boost/boost/core/no_exceptions_support.hpp
+++ b/contrib/restricted/boost/core/include/boost/core/no_exceptions_support.hpp
diff --git a/contrib/restricted/boost/boost/core/noncopyable.hpp b/contrib/restricted/boost/core/include/boost/core/noncopyable.hpp
index 6ae8c244dd4..6ae8c244dd4 100644
--- a/contrib/restricted/boost/boost/core/noncopyable.hpp
+++ b/contrib/restricted/boost/core/include/boost/core/noncopyable.hpp
diff --git a/contrib/restricted/boost/boost/core/null_deleter.hpp b/contrib/restricted/boost/core/include/boost/core/null_deleter.hpp
index f0af59034ef..f0af59034ef 100644
--- a/contrib/restricted/boost/boost/core/null_deleter.hpp
+++ b/contrib/restricted/boost/core/include/boost/core/null_deleter.hpp
diff --git a/contrib/restricted/boost/boost/core/pointer_traits.hpp b/contrib/restricted/boost/core/include/boost/core/pointer_traits.hpp
index e0ebfb0769d..e0ebfb0769d 100644
--- a/contrib/restricted/boost/boost/core/pointer_traits.hpp
+++ b/contrib/restricted/boost/core/include/boost/core/pointer_traits.hpp
diff --git a/contrib/restricted/boost/boost/core/ref.hpp b/contrib/restricted/boost/core/include/boost/core/ref.hpp
index 7d768ffc758..7d768ffc758 100644
--- a/contrib/restricted/boost/boost/core/ref.hpp
+++ b/contrib/restricted/boost/core/include/boost/core/ref.hpp
diff --git a/contrib/restricted/boost/boost/core/scoped_enum.hpp b/contrib/restricted/boost/core/include/boost/core/scoped_enum.hpp
index 56dd0ede439..56dd0ede439 100644
--- a/contrib/restricted/boost/boost/core/scoped_enum.hpp
+++ b/contrib/restricted/boost/core/include/boost/core/scoped_enum.hpp
diff --git a/contrib/restricted/boost/boost/core/swap.hpp b/contrib/restricted/boost/core/include/boost/core/swap.hpp
index baa1be970df..baa1be970df 100644
--- a/contrib/restricted/boost/boost/core/swap.hpp
+++ b/contrib/restricted/boost/core/include/boost/core/swap.hpp
diff --git a/contrib/restricted/boost/boost/core/typeinfo.hpp b/contrib/restricted/boost/core/include/boost/core/typeinfo.hpp
index e67b4a3198b..e67b4a3198b 100644
--- a/contrib/restricted/boost/boost/core/typeinfo.hpp
+++ b/contrib/restricted/boost/core/include/boost/core/typeinfo.hpp
diff --git a/contrib/restricted/boost/boost/detail/iterator.hpp b/contrib/restricted/boost/core/include/boost/detail/iterator.hpp
index 2498ef448ff..2498ef448ff 100644
--- a/contrib/restricted/boost/boost/detail/iterator.hpp
+++ b/contrib/restricted/boost/core/include/boost/detail/iterator.hpp
diff --git a/contrib/restricted/boost/boost/detail/no_exceptions_support.hpp b/contrib/restricted/boost/core/include/boost/detail/no_exceptions_support.hpp
index 7d17454a732..7d17454a732 100644
--- a/contrib/restricted/boost/boost/detail/no_exceptions_support.hpp
+++ b/contrib/restricted/boost/core/include/boost/detail/no_exceptions_support.hpp
diff --git a/contrib/restricted/boost/boost/detail/scoped_enum_emulation.hpp b/contrib/restricted/boost/core/include/boost/detail/scoped_enum_emulation.hpp
index 1c7bc23c1c3..1c7bc23c1c3 100644
--- a/contrib/restricted/boost/boost/detail/scoped_enum_emulation.hpp
+++ b/contrib/restricted/boost/core/include/boost/detail/scoped_enum_emulation.hpp
diff --git a/contrib/restricted/boost/boost/detail/sp_typeinfo.hpp b/contrib/restricted/boost/core/include/boost/detail/sp_typeinfo.hpp
index 4e4de55b05c..4e4de55b05c 100644
--- a/contrib/restricted/boost/boost/detail/sp_typeinfo.hpp
+++ b/contrib/restricted/boost/core/include/boost/detail/sp_typeinfo.hpp
diff --git a/contrib/restricted/boost/boost/get_pointer.hpp b/contrib/restricted/boost/core/include/boost/get_pointer.hpp
index 36e2cd7d0fb..36e2cd7d0fb 100644
--- a/contrib/restricted/boost/boost/get_pointer.hpp
+++ b/contrib/restricted/boost/core/include/boost/get_pointer.hpp
diff --git a/contrib/restricted/boost/boost/iterator.hpp b/contrib/restricted/boost/core/include/boost/iterator.hpp
index c9c6197950b..c9c6197950b 100644
--- a/contrib/restricted/boost/boost/iterator.hpp
+++ b/contrib/restricted/boost/core/include/boost/iterator.hpp
diff --git a/contrib/restricted/boost/boost/non_type.hpp b/contrib/restricted/boost/core/include/boost/non_type.hpp
index 896aed4d34b..896aed4d34b 100644
--- a/contrib/restricted/boost/boost/non_type.hpp
+++ b/contrib/restricted/boost/core/include/boost/non_type.hpp
diff --git a/contrib/restricted/boost/boost/noncopyable.hpp b/contrib/restricted/boost/core/include/boost/noncopyable.hpp
index e998ee864a8..e998ee864a8 100644
--- a/contrib/restricted/boost/boost/noncopyable.hpp
+++ b/contrib/restricted/boost/core/include/boost/noncopyable.hpp
diff --git a/contrib/restricted/boost/boost/ref.hpp b/contrib/restricted/boost/core/include/boost/ref.hpp
index 17b56ec0078..17b56ec0078 100644
--- a/contrib/restricted/boost/boost/ref.hpp
+++ b/contrib/restricted/boost/core/include/boost/ref.hpp
diff --git a/contrib/restricted/boost/boost/swap.hpp b/contrib/restricted/boost/core/include/boost/swap.hpp
index 55cafa4fdd8..55cafa4fdd8 100644
--- a/contrib/restricted/boost/boost/swap.hpp
+++ b/contrib/restricted/boost/core/include/boost/swap.hpp
diff --git a/contrib/restricted/boost/boost/type.hpp b/contrib/restricted/boost/core/include/boost/type.hpp
index ab81c916d77..ab81c916d77 100644
--- a/contrib/restricted/boost/boost/type.hpp
+++ b/contrib/restricted/boost/core/include/boost/type.hpp
diff --git a/contrib/restricted/boost/boost/utility/addressof.hpp b/contrib/restricted/boost/core/include/boost/utility/addressof.hpp
index db4da804218..db4da804218 100644
--- a/contrib/restricted/boost/boost/utility/addressof.hpp
+++ b/contrib/restricted/boost/core/include/boost/utility/addressof.hpp
diff --git a/contrib/restricted/boost/boost/utility/enable_if.hpp b/contrib/restricted/boost/core/include/boost/utility/enable_if.hpp
index 803bfca5e25..803bfca5e25 100644
--- a/contrib/restricted/boost/boost/utility/enable_if.hpp
+++ b/contrib/restricted/boost/core/include/boost/utility/enable_if.hpp
diff --git a/contrib/restricted/boost/boost/utility/swap.hpp b/contrib/restricted/boost/core/include/boost/utility/swap.hpp
index dd9ecd90701..dd9ecd90701 100644
--- a/contrib/restricted/boost/boost/utility/swap.hpp
+++ b/contrib/restricted/boost/core/include/boost/utility/swap.hpp
diff --git a/contrib/restricted/boost/boost/visit_each.hpp b/contrib/restricted/boost/core/include/boost/visit_each.hpp
index 6463ca9c2f6..6463ca9c2f6 100644
--- a/contrib/restricted/boost/boost/visit_each.hpp
+++ b/contrib/restricted/boost/core/include/boost/visit_each.hpp