summaryrefslogtreecommitdiff
path: root/src/third_party/boost-1.69.0/boost/detail
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/boost-1.69.0/boost/detail')
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/allocator_utilities.hpp193
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/atomic_count.hpp21
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/basic_pointerbuf.hpp139
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/bitmask.hpp58
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/call_traits.hpp172
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/compressed_pair.hpp452
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/container_fwd.hpp157
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/endian.hpp11
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/fenv.hpp101
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/indirect_traits.hpp195
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/interlocked.hpp220
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/is_incrementable.hpp121
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/iterator.hpp39
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/lcast_precision.hpp185
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/lightweight_main.hpp36
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/lightweight_mutex.hpp22
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/lightweight_test.hpp17
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/lightweight_test_report.hpp56
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/lightweight_thread.hpp188
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/no_exceptions_support.hpp17
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/numeric_traits.hpp160
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/quick_allocator.hpp23
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/reference_content.hpp120
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/scoped_enum_emulation.hpp17
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/select_type.hpp36
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/sp_typeinfo.hpp36
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/utf8_codecvt_facet.hpp219
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/utf8_codecvt_facet.ipp292
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/winapi/detail/deprecated_namespace.hpp28
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/winapi/get_current_process.hpp20
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/winapi/get_current_thread.hpp20
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/winapi/get_last_error.hpp20
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/winapi/get_process_times.hpp20
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/winapi/get_thread_times.hpp20
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/winapi/time.hpp20
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/winapi/timers.hpp20
-rw-r--r--src/third_party/boost-1.69.0/boost/detail/workaround.hpp10
37 files changed, 0 insertions, 3481 deletions
diff --git a/src/third_party/boost-1.69.0/boost/detail/allocator_utilities.hpp b/src/third_party/boost-1.69.0/boost/detail/allocator_utilities.hpp
deleted file mode 100644
index b9778a92e77..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/allocator_utilities.hpp
+++ /dev/null
@@ -1,193 +0,0 @@
-/* Copyright 2003-2013 Joaquin M Lopez Munoz.
- * Distributed under the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See Boost website at http://www.boost.org/
- */
-
-#ifndef BOOST_DETAIL_ALLOCATOR_UTILITIES_HPP
-#define BOOST_DETAIL_ALLOCATOR_UTILITIES_HPP
-
-#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */
-#include <boost/detail/workaround.hpp>
-#include <boost/detail/select_type.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <cstddef>
-#include <memory>
-#include <new>
-
-namespace boost{
-
-namespace detail{
-
-/* Allocator adaption layer. Some stdlibs provide allocators without rebind
- * and template ctors. These facilities are simulated with the external
- * template class rebind_to and the aid of partial_std_allocator_wrapper.
- */
-
-namespace allocator{
-
-/* partial_std_allocator_wrapper inherits the functionality of a std
- * allocator while providing a templatized ctor and other bits missing
- * in some stdlib implementation or another.
- */
-
-template<typename Type>
-class partial_std_allocator_wrapper:public std::allocator<Type>
-{
-public:
- /* Oddly enough, STLport does not define std::allocator<void>::value_type
- * when configured to work without partial template specialization.
- * No harm in supplying the definition here unconditionally.
- */
-
- typedef Type value_type;
-
- partial_std_allocator_wrapper(){};
-
- template<typename Other>
- partial_std_allocator_wrapper(const partial_std_allocator_wrapper<Other>&){}
-
- partial_std_allocator_wrapper(const std::allocator<Type>& x):
- std::allocator<Type>(x)
- {
- };
-
-#if defined(BOOST_DINKUMWARE_STDLIB)
- /* Dinkumware guys didn't provide a means to call allocate() without
- * supplying a hint, in disagreement with the standard.
- */
-
- Type* allocate(std::size_t n,const void* hint=0)
- {
- std::allocator<Type>& a=*this;
- return a.allocate(n,hint);
- }
-#endif
-
-};
-
-/* Detects whether a given allocator belongs to a defective stdlib not
- * having the required member templates.
- * Note that it does not suffice to check the Boost.Config stdlib
- * macros, as the user might have passed a custom, compliant allocator.
- * The checks also considers partial_std_allocator_wrapper to be
- * a standard defective allocator.
- */
-
-#if defined(BOOST_NO_STD_ALLOCATOR)&&\
- (defined(BOOST_HAS_PARTIAL_STD_ALLOCATOR)||defined(BOOST_DINKUMWARE_STDLIB))
-
-template<typename Allocator>
-struct is_partial_std_allocator
-{
- BOOST_STATIC_CONSTANT(bool,
- value=
- (is_same<
- std::allocator<BOOST_DEDUCED_TYPENAME Allocator::value_type>,
- Allocator
- >::value)||
- (is_same<
- partial_std_allocator_wrapper<
- BOOST_DEDUCED_TYPENAME Allocator::value_type>,
- Allocator
- >::value));
-};
-
-#else
-
-template<typename Allocator>
-struct is_partial_std_allocator
-{
- BOOST_STATIC_CONSTANT(bool,value=false);
-};
-
-#endif
-
-/* rebind operations for defective std allocators */
-
-template<typename Allocator,typename Type>
-struct partial_std_allocator_rebind_to
-{
- typedef partial_std_allocator_wrapper<Type> type;
-};
-
-/* rebind operation in all other cases */
-
-template<typename Allocator>
-struct rebinder
-{
- template<typename Type>
- struct result
- {
-#ifdef BOOST_NO_CXX11_ALLOCATOR
- typedef typename Allocator::BOOST_NESTED_TEMPLATE
- rebind<Type>::other other;
-#else
- typedef typename std::allocator_traits<Allocator>::BOOST_NESTED_TEMPLATE
- rebind_alloc<Type> other;
-#endif
- };
-};
-
-template<typename Allocator,typename Type>
-struct compliant_allocator_rebind_to
-{
- typedef typename rebinder<Allocator>::
- BOOST_NESTED_TEMPLATE result<Type>::other type;
-};
-
-/* rebind front-end */
-
-template<typename Allocator,typename Type>
-struct rebind_to:
- boost::detail::if_true<
- is_partial_std_allocator<Allocator>::value
- >::template then<
- partial_std_allocator_rebind_to<Allocator,Type>,
- compliant_allocator_rebind_to<Allocator,Type>
- >::type
-{
-};
-
-/* allocator-independent versions of construct and destroy */
-
-template<typename Type>
-void construct(void* p,const Type& t)
-{
- new (p) Type(t);
-}
-
-#if BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1500))
-/* MSVC++ issues spurious warnings about unreferencend formal parameters
- * in destroy<Type> when Type is a class with trivial dtor.
- */
-
-#pragma warning(push)
-#pragma warning(disable:4100)
-#endif
-
-template<typename Type>
-void destroy(const Type* p)
-{
-
-#if BOOST_WORKAROUND(__SUNPRO_CC,BOOST_TESTED_AT(0x590))
- const_cast<Type*>(p)->~Type();
-#else
- p->~Type();
-#endif
-
-}
-
-#if BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1500))
-#pragma warning(pop)
-#endif
-
-} /* namespace boost::detail::allocator */
-
-} /* namespace boost::detail */
-
-} /* namespace boost */
-
-#endif
diff --git a/src/third_party/boost-1.69.0/boost/detail/atomic_count.hpp b/src/third_party/boost-1.69.0/boost/detail/atomic_count.hpp
deleted file mode 100644
index 5411c7ae990..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/atomic_count.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef BOOST_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
-#define BOOST_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-// boost/detail/atomic_count.hpp - thread/SMP safe reference counter
-//
-// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
-//
-// 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/smart_ptr/detail/atomic_count.hpp>
-
-#endif // #ifndef BOOST_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
diff --git a/src/third_party/boost-1.69.0/boost/detail/basic_pointerbuf.hpp b/src/third_party/boost-1.69.0/boost/detail/basic_pointerbuf.hpp
deleted file mode 100644
index 85618f92abe..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/basic_pointerbuf.hpp
+++ /dev/null
@@ -1,139 +0,0 @@
-//-----------------------------------------------------------------------------
-// boost detail/templated_streams.hpp header file
-// See http://www.boost.org for updates, documentation, and revision history.
-//-----------------------------------------------------------------------------
-//
-// Copyright (c) 2013 John Maddock, Antony Polukhin
-//
-//
-// 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_BASIC_POINTERBUF_HPP
-#define BOOST_DETAIL_BASIC_POINTERBUF_HPP
-
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER)
-# pragma once
-#endif
-
-#include "boost/config.hpp"
-#include <streambuf>
-
-namespace boost { namespace detail {
-
-//
-// class basic_pointerbuf:
-// acts as a stream buffer which wraps around a pair of pointers:
-//
-template <class charT, class BufferT >
-class basic_pointerbuf : public BufferT {
-protected:
- typedef BufferT base_type;
- typedef basic_pointerbuf<charT, BufferT> this_type;
- typedef typename base_type::int_type int_type;
- typedef typename base_type::char_type char_type;
- typedef typename base_type::pos_type pos_type;
- typedef ::std::streamsize streamsize;
- typedef typename base_type::off_type off_type;
-
-public:
- basic_pointerbuf() : base_type() { this_type::setbuf(0, 0); }
- const charT* getnext() { return this->gptr(); }
-
-#ifndef BOOST_NO_USING_TEMPLATE
- using base_type::pptr;
- using base_type::pbase;
-#else
- charT* pptr() const { return base_type::pptr(); }
- charT* pbase() const { return base_type::pbase(); }
-#endif
-
-protected:
- // VC mistakenly assumes that `setbuf` and other functions are not referenced.
- // Marking those functions with `inline` suppresses the warnings.
- // There must be no harm from marking virtual functions as inline: inline virtual
- // call can be inlined ONLY when the compiler knows the "exact class".
- inline base_type* setbuf(char_type* s, streamsize n);
- inline typename this_type::pos_type seekpos(pos_type sp, ::std::ios_base::openmode which);
- inline typename this_type::pos_type seekoff(off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which);
-
-private:
- basic_pointerbuf& operator=(const basic_pointerbuf&);
- basic_pointerbuf(const basic_pointerbuf&);
-};
-
-template<class charT, class BufferT>
-BufferT*
-basic_pointerbuf<charT, BufferT>::setbuf(char_type* s, streamsize n)
-{
- this->setg(s, s, s + n);
- return this;
-}
-
-template<class charT, class BufferT>
-typename basic_pointerbuf<charT, BufferT>::pos_type
-basic_pointerbuf<charT, BufferT>::seekoff(off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which)
-{
- typedef typename boost::int_t<sizeof(way) * CHAR_BIT>::least cast_type;
-
- if(which & ::std::ios_base::out)
- return pos_type(off_type(-1));
- std::ptrdiff_t size = this->egptr() - this->eback();
- std::ptrdiff_t pos = this->gptr() - this->eback();
- charT* g = this->eback();
- switch(static_cast<cast_type>(way))
- {
- case ::std::ios_base::beg:
- if((off < 0) || (off > size))
- return pos_type(off_type(-1));
- else
- this->setg(g, g + off, g + size);
- break;
- case ::std::ios_base::end:
- if((off < 0) || (off > size))
- return pos_type(off_type(-1));
- else
- this->setg(g, g + size - off, g + size);
- break;
- case ::std::ios_base::cur:
- {
- std::ptrdiff_t newpos = static_cast<std::ptrdiff_t>(pos + off);
- if((newpos < 0) || (newpos > size))
- return pos_type(off_type(-1));
- else
- this->setg(g, g + newpos, g + size);
- break;
- }
- default: ;
- }
-#ifdef BOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4244)
-#endif
- return static_cast<pos_type>(this->gptr() - this->eback());
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template<class charT, class BufferT>
-typename basic_pointerbuf<charT, BufferT>::pos_type
-basic_pointerbuf<charT, BufferT>::seekpos(pos_type sp, ::std::ios_base::openmode which)
-{
- if(which & ::std::ios_base::out)
- return pos_type(off_type(-1));
- off_type size = static_cast<off_type>(this->egptr() - this->eback());
- charT* g = this->eback();
- if(off_type(sp) <= size)
- {
- this->setg(g, g + off_type(sp), g + size);
- }
- return pos_type(off_type(-1));
-}
-
-}} // namespace boost::detail
-
-#endif // BOOST_DETAIL_BASIC_POINTERBUF_HPP
-
diff --git a/src/third_party/boost-1.69.0/boost/detail/bitmask.hpp b/src/third_party/boost-1.69.0/boost/detail/bitmask.hpp
deleted file mode 100644
index 63d4fac0c26..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/bitmask.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-// boost/detail/bitmask.hpp ------------------------------------------------//
-
-// Copyright Beman Dawes 2006
-
-// Distributed under the Boost Software License, Version 1.0
-// http://www.boost.org/LICENSE_1_0.txt
-
-// Usage: enum foo { a=1, b=2, c=4 };
-// BOOST_BITMASK( foo )
-//
-// void f( foo arg );
-// ...
-// f( a | c );
-//
-// See [bitmask.types] in the C++ standard for the formal specification
-
-#ifndef BOOST_BITMASK_HPP
-#define BOOST_BITMASK_HPP
-
-#include <boost/config.hpp>
-#include <boost/cstdint.hpp>
-
-#define BOOST_BITMASK(Bitmask) \
- \
- inline BOOST_CONSTEXPR Bitmask operator| (Bitmask x , Bitmask y ) \
- { return static_cast<Bitmask>( static_cast<boost::int_least32_t>(x) \
- | static_cast<boost::int_least32_t>(y)); } \
- \
- inline BOOST_CONSTEXPR Bitmask operator& (Bitmask x , Bitmask y ) \
- { return static_cast<Bitmask>( static_cast<boost::int_least32_t>(x) \
- & static_cast<boost::int_least32_t>(y)); } \
- \
- inline BOOST_CONSTEXPR Bitmask operator^ (Bitmask x , Bitmask y ) \
- { return static_cast<Bitmask>( static_cast<boost::int_least32_t>(x) \
- ^ static_cast<boost::int_least32_t>(y)); } \
- \
- inline BOOST_CONSTEXPR Bitmask operator~ (Bitmask x ) \
- { return static_cast<Bitmask>(~static_cast<boost::int_least32_t>(x)); } \
- \
- inline Bitmask & operator&=(Bitmask& x , Bitmask y) \
- { x = x & y ; return x ; } \
- \
- inline Bitmask & operator|=(Bitmask& x , Bitmask y) \
- { x = x | y ; return x ; } \
- \
- inline Bitmask & operator^=(Bitmask& x , Bitmask y) \
- { x = x ^ y ; return x ; } \
- \
- /* Boost extensions to [bitmask.types] */ \
- \
- inline BOOST_CONSTEXPR bool operator!(Bitmask x) \
- { return !static_cast<int>(x); } \
- \
- inline BOOST_CONSTEXPR bool bitmask_set(Bitmask x) \
- { return !!x; }
-
-#endif // BOOST_BITMASK_HPP
-
diff --git a/src/third_party/boost-1.69.0/boost/detail/call_traits.hpp b/src/third_party/boost-1.69.0/boost/detail/call_traits.hpp
deleted file mode 100644
index 36dea0003a8..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/call_traits.hpp
+++ /dev/null
@@ -1,172 +0,0 @@
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-//
-// See http://www.boost.org/libs/utility for most recent version including documentation.
-
-// call_traits: defines typedefs for function usage
-// (see libs/utility/call_traits.htm)
-
-/* Release notes:
- 23rd July 2000:
- Fixed array specialization. (JM)
- Added Borland specific fixes for reference types
- (issue raised by Steve Cleary).
-*/
-
-#ifndef BOOST_DETAIL_CALL_TRAITS_HPP
-#define BOOST_DETAIL_CALL_TRAITS_HPP
-
-#ifndef BOOST_CONFIG_HPP
-#include <boost/config.hpp>
-#endif
-#include <cstddef>
-
-#include <boost/type_traits/is_arithmetic.hpp>
-#include <boost/type_traits/is_enum.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/detail/workaround.hpp>
-
-namespace boost{
-
-namespace detail{
-
-template <typename T, bool small_>
-struct ct_imp2
-{
- typedef const T& param_type;
-};
-
-template <typename T>
-struct ct_imp2<T, true>
-{
- typedef const T param_type;
-};
-
-template <typename T, bool isp, bool b1, bool b2>
-struct ct_imp
-{
- typedef const T& param_type;
-};
-
-template <typename T, bool isp, bool b2>
-struct ct_imp<T, isp, true, b2>
-{
- typedef typename ct_imp2<T, sizeof(T) <= sizeof(void*)>::param_type param_type;
-};
-
-template <typename T, bool isp, bool b1>
-struct ct_imp<T, isp, b1, true>
-{
- typedef typename ct_imp2<T, sizeof(T) <= sizeof(void*)>::param_type param_type;
-};
-
-template <typename T, bool b1, bool b2>
-struct ct_imp<T, true, b1, b2>
-{
- typedef const T param_type;
-};
-
-}
-
-template <typename T>
-struct call_traits
-{
-public:
- typedef T value_type;
- typedef T& reference;
- typedef const T& const_reference;
- //
- // C++ Builder workaround: we should be able to define a compile time
- // constant and pass that as a single template parameter to ct_imp<T,bool>,
- // however compiler bugs prevent this - instead pass three bool's to
- // ct_imp<T,bool,bool,bool> and add an extra partial specialisation
- // of ct_imp to handle the logic. (JM)
- typedef typename boost::detail::ct_imp<
- T,
- ::boost::is_pointer<T>::value,
- ::boost::is_arithmetic<T>::value,
- ::boost::is_enum<T>::value
- >::param_type param_type;
-};
-
-template <typename T>
-struct call_traits<T&>
-{
- typedef T& value_type;
- typedef T& reference;
- typedef const T& const_reference;
- typedef T& param_type; // hh removed const
-};
-
-#if BOOST_WORKAROUND( __BORLANDC__, < 0x5A0 )
-// these are illegal specialisations; cv-qualifies applied to
-// references have no effect according to [8.3.2p1],
-// C++ Builder requires them though as it treats cv-qualified
-// references as distinct types...
-template <typename T>
-struct call_traits<T&const>
-{
- typedef T& value_type;
- typedef T& reference;
- typedef const T& const_reference;
- typedef T& param_type; // hh removed const
-};
-template <typename T>
-struct call_traits<T&volatile>
-{
- typedef T& value_type;
- typedef T& reference;
- typedef const T& const_reference;
- typedef T& param_type; // hh removed const
-};
-template <typename T>
-struct call_traits<T&const volatile>
-{
- typedef T& value_type;
- typedef T& reference;
- typedef const T& const_reference;
- typedef T& param_type; // hh removed const
-};
-
-template <typename T>
-struct call_traits< T * >
-{
- typedef T * value_type;
- typedef T * & reference;
- typedef T * const & const_reference;
- typedef T * const param_type; // hh removed const
-};
-#endif
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-template <typename T, std::size_t N>
-struct call_traits<T [N]>
-{
-private:
- typedef T array_type[N];
-public:
- // degrades array to pointer:
- typedef const T* value_type;
- typedef array_type& reference;
- typedef const array_type& const_reference;
- typedef const T* const param_type;
-};
-
-template <typename T, std::size_t N>
-struct call_traits<const T [N]>
-{
-private:
- typedef const T array_type[N];
-public:
- // degrades array to pointer:
- typedef const T* value_type;
- typedef array_type& reference;
- typedef const array_type& const_reference;
- typedef const T* const param_type;
-};
-#endif
-
-}
-
-#endif // BOOST_DETAIL_CALL_TRAITS_HPP
diff --git a/src/third_party/boost-1.69.0/boost/detail/compressed_pair.hpp b/src/third_party/boost-1.69.0/boost/detail/compressed_pair.hpp
deleted file mode 100644
index b090a727dee..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/compressed_pair.hpp
+++ /dev/null
@@ -1,452 +0,0 @@
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-//
-// See http://www.boost.org/libs/utility for most recent version including documentation.
-
-// compressed_pair: pair that "compresses" empty members
-// (see libs/utility/doc/html/compressed_pair.html)
-//
-// JM changes 25 Jan 2004:
-// For the case where T1 == T2 and both are empty, then first() and second()
-// should return different objects.
-// JM changes 25 Jan 2000:
-// Removed default arguments from compressed_pair_switch to get
-// C++ Builder 4 to accept them
-// rewriten swap to get gcc and C++ builder to compile.
-// added partial specialisations for case T1 == T2 to avoid duplicate constructor defs.
-
-#ifndef BOOST_DETAIL_COMPRESSED_PAIR_HPP
-#define BOOST_DETAIL_COMPRESSED_PAIR_HPP
-
-#include <algorithm>
-
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/is_empty.hpp>
-#include <boost/type_traits/is_final.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/call_traits.hpp>
-
-#ifdef BOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable:4512)
-#endif
-namespace boost
-{
-
-template <class T1, class T2>
-class compressed_pair;
-
-
-// compressed_pair
-
-namespace details
-{
- template<class T, bool E = boost::is_final<T>::value>
- struct compressed_pair_empty
- : ::boost::false_type { };
-
- template<class T>
- struct compressed_pair_empty<T, false>
- : ::boost::is_empty<T> { };
-
- // JM altered 26 Jan 2000:
- template <class T1, class T2, bool IsSame, bool FirstEmpty, bool SecondEmpty>
- struct compressed_pair_switch;
-
- template <class T1, class T2>
- struct compressed_pair_switch<T1, T2, false, false, false>
- {static const int value = 0;};
-
- template <class T1, class T2>
- struct compressed_pair_switch<T1, T2, false, true, true>
- {static const int value = 3;};
-
- template <class T1, class T2>
- struct compressed_pair_switch<T1, T2, false, true, false>
- {static const int value = 1;};
-
- template <class T1, class T2>
- struct compressed_pair_switch<T1, T2, false, false, true>
- {static const int value = 2;};
-
- template <class T1, class T2>
- struct compressed_pair_switch<T1, T2, true, true, true>
- {static const int value = 4;};
-
- template <class T1, class T2>
- struct compressed_pair_switch<T1, T2, true, false, false>
- {static const int value = 5;};
-
- template <class T1, class T2, int Version> class compressed_pair_imp;
-
-#ifdef __GNUC__
- // workaround for GCC (JM):
- using std::swap;
-#endif
- //
- // can't call unqualified swap from within classname::swap
- // as Koenig lookup rules will find only the classname::swap
- // member function not the global declaration, so use cp_swap
- // as a forwarding function (JM):
- template <typename T>
- inline void cp_swap(T& t1, T& t2)
- {
-#ifndef __GNUC__
- using std::swap;
-#endif
- swap(t1, t2);
- }
-
- // 0 derive from neither
-
- template <class T1, class T2>
- class compressed_pair_imp<T1, T2, 0>
- {
- public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_imp() {}
-
- compressed_pair_imp(first_param_type x, second_param_type y)
- : first_(x), second_(y) {}
-
- compressed_pair_imp(first_param_type x)
- : first_(x) {}
-
- compressed_pair_imp(second_param_type y)
- : second_(y) {}
-
- first_reference first() {return first_;}
- first_const_reference first() const {return first_;}
-
- second_reference second() {return second_;}
- second_const_reference second() const {return second_;}
-
- void swap(::boost::compressed_pair<T1, T2>& y)
- {
- cp_swap(first_, y.first());
- cp_swap(second_, y.second());
- }
- private:
- first_type first_;
- second_type second_;
- };
-
- // 1 derive from T1
-
- template <class T1, class T2>
- class compressed_pair_imp<T1, T2, 1>
- : protected ::boost::remove_cv<T1>::type
- {
- public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_imp() {}
-
- compressed_pair_imp(first_param_type x, second_param_type y)
- : first_type(x), second_(y) {}
-
- compressed_pair_imp(first_param_type x)
- : first_type(x) {}
-
- compressed_pair_imp(second_param_type y)
- : second_(y) {}
-
- first_reference first() {return *this;}
- first_const_reference first() const {return *this;}
-
- second_reference second() {return second_;}
- second_const_reference second() const {return second_;}
-
- void swap(::boost::compressed_pair<T1,T2>& y)
- {
- // no need to swap empty base class:
- cp_swap(second_, y.second());
- }
- private:
- second_type second_;
- };
-
- // 2 derive from T2
-
- template <class T1, class T2>
- class compressed_pair_imp<T1, T2, 2>
- : protected ::boost::remove_cv<T2>::type
- {
- public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_imp() {}
-
- compressed_pair_imp(first_param_type x, second_param_type y)
- : second_type(y), first_(x) {}
-
- compressed_pair_imp(first_param_type x)
- : first_(x) {}
-
- compressed_pair_imp(second_param_type y)
- : second_type(y) {}
-
- first_reference first() {return first_;}
- first_const_reference first() const {return first_;}
-
- second_reference second() {return *this;}
- second_const_reference second() const {return *this;}
-
- void swap(::boost::compressed_pair<T1,T2>& y)
- {
- // no need to swap empty base class:
- cp_swap(first_, y.first());
- }
-
- private:
- first_type first_;
- };
-
- // 3 derive from T1 and T2
-
- template <class T1, class T2>
- class compressed_pair_imp<T1, T2, 3>
- : protected ::boost::remove_cv<T1>::type,
- protected ::boost::remove_cv<T2>::type
- {
- public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_imp() {}
-
- compressed_pair_imp(first_param_type x, second_param_type y)
- : first_type(x), second_type(y) {}
-
- compressed_pair_imp(first_param_type x)
- : first_type(x) {}
-
- compressed_pair_imp(second_param_type y)
- : second_type(y) {}
-
- first_reference first() {return *this;}
- first_const_reference first() const {return *this;}
-
- second_reference second() {return *this;}
- second_const_reference second() const {return *this;}
- //
- // no need to swap empty bases:
- void swap(::boost::compressed_pair<T1,T2>&) {}
- };
-
- // JM
- // 4 T1 == T2, T1 and T2 both empty
- // Originally this did not store an instance of T2 at all
- // but that led to problems beause it meant &x.first() == &x.second()
- // which is not true for any other kind of pair, so now we store an instance
- // of T2 just in case the user is relying on first() and second() returning
- // different objects (albeit both empty).
- template <class T1, class T2>
- class compressed_pair_imp<T1, T2, 4>
- : protected ::boost::remove_cv<T1>::type
- {
- public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_imp() {}
-
- compressed_pair_imp(first_param_type x, second_param_type y)
- : first_type(x), m_second(y) {}
-
- compressed_pair_imp(first_param_type x)
- : first_type(x), m_second(x) {}
-
- first_reference first() {return *this;}
- first_const_reference first() const {return *this;}
-
- second_reference second() {return m_second;}
- second_const_reference second() const {return m_second;}
-
- void swap(::boost::compressed_pair<T1,T2>&) {}
- private:
- T2 m_second;
- };
-
- // 5 T1 == T2 and are not empty: //JM
-
- template <class T1, class T2>
- class compressed_pair_imp<T1, T2, 5>
- {
- public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair_imp() {}
-
- compressed_pair_imp(first_param_type x, second_param_type y)
- : first_(x), second_(y) {}
-
- compressed_pair_imp(first_param_type x)
- : first_(x), second_(x) {}
-
- first_reference first() {return first_;}
- first_const_reference first() const {return first_;}
-
- second_reference second() {return second_;}
- second_const_reference second() const {return second_;}
-
- void swap(::boost::compressed_pair<T1, T2>& y)
- {
- cp_swap(first_, y.first());
- cp_swap(second_, y.second());
- }
- private:
- first_type first_;
- second_type second_;
- };
-
-} // details
-
-template <class T1, class T2>
-class compressed_pair
- : private ::boost::details::compressed_pair_imp<T1, T2,
- ::boost::details::compressed_pair_switch<
- T1,
- T2,
- ::boost::is_same<typename remove_cv<T1>::type, typename remove_cv<T2>::type>::value,
- ::boost::details::compressed_pair_empty<T1>::value,
- ::boost::details::compressed_pair_empty<T2>::value>::value>
-{
-private:
- typedef details::compressed_pair_imp<T1, T2,
- ::boost::details::compressed_pair_switch<
- T1,
- T2,
- ::boost::is_same<typename remove_cv<T1>::type, typename remove_cv<T2>::type>::value,
- ::boost::details::compressed_pair_empty<T1>::value,
- ::boost::details::compressed_pair_empty<T2>::value>::value> base;
-public:
- typedef T1 first_type;
- typedef T2 second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair() : base() {}
- compressed_pair(first_param_type x, second_param_type y) : base(x, y) {}
- explicit compressed_pair(first_param_type x) : base(x) {}
- explicit compressed_pair(second_param_type y) : base(y) {}
-
- first_reference first() {return base::first();}
- first_const_reference first() const {return base::first();}
-
- second_reference second() {return base::second();}
- second_const_reference second() const {return base::second();}
-
- void swap(compressed_pair& y) { base::swap(y); }
-};
-
-// JM
-// Partial specialisation for case where T1 == T2:
-//
-template <class T>
-class compressed_pair<T, T>
- : private details::compressed_pair_imp<T, T,
- ::boost::details::compressed_pair_switch<
- T,
- T,
- ::boost::is_same<typename remove_cv<T>::type, typename remove_cv<T>::type>::value,
- ::boost::details::compressed_pair_empty<T>::value,
- ::boost::details::compressed_pair_empty<T>::value>::value>
-{
-private:
- typedef details::compressed_pair_imp<T, T,
- ::boost::details::compressed_pair_switch<
- T,
- T,
- ::boost::is_same<typename remove_cv<T>::type, typename remove_cv<T>::type>::value,
- ::boost::details::compressed_pair_empty<T>::value,
- ::boost::details::compressed_pair_empty<T>::value>::value> base;
-public:
- typedef T first_type;
- typedef T second_type;
- typedef typename call_traits<first_type>::param_type first_param_type;
- typedef typename call_traits<second_type>::param_type second_param_type;
- typedef typename call_traits<first_type>::reference first_reference;
- typedef typename call_traits<second_type>::reference second_reference;
- typedef typename call_traits<first_type>::const_reference first_const_reference;
- typedef typename call_traits<second_type>::const_reference second_const_reference;
-
- compressed_pair() : base() {}
- compressed_pair(first_param_type x, second_param_type y) : base(x, y) {}
-#if !(defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x530))
- explicit
-#endif
- compressed_pair(first_param_type x) : base(x) {}
-
- first_reference first() {return base::first();}
- first_const_reference first() const {return base::first();}
-
- second_reference second() {return base::second();}
- second_const_reference second() const {return base::second();}
-
- void swap(::boost::compressed_pair<T,T>& y) { base::swap(y); }
-};
-
-template <class T1, class T2>
-inline
-void
-swap(compressed_pair<T1, T2>& x, compressed_pair<T1, T2>& y)
-{
- x.swap(y);
-}
-
-} // boost
-
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
-
-#endif // BOOST_DETAIL_COMPRESSED_PAIR_HPP
-
diff --git a/src/third_party/boost-1.69.0/boost/detail/container_fwd.hpp b/src/third_party/boost-1.69.0/boost/detail/container_fwd.hpp
deleted file mode 100644
index 04ce972738e..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/container_fwd.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-
-// Copyright 2005-2011 Daniel James.
-// 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)
-
-// Note: if you change this include guard, you also need to change
-// container_fwd_compile_fail.cpp
-#if !defined(BOOST_DETAIL_CONTAINER_FWD_HPP)
-#define BOOST_DETAIL_CONTAINER_FWD_HPP
-
-#if defined(_MSC_VER) && \
- !defined(BOOST_DETAIL_TEST_CONFIG_ONLY)
-# pragma once
-#endif
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-////////////////////////////////////////////////////////////////////////////////
-// //
-// Define BOOST_DETAIL_NO_CONTAINER_FWD if you don't want this header to //
-// forward declare standard containers. //
-// //
-// BOOST_DETAIL_CONTAINER_FWD to make it foward declare containers even if it //
-// normally doesn't. //
-// //
-// BOOST_DETAIL_NO_CONTAINER_FWD overrides BOOST_DETAIL_CONTAINER_FWD. //
-// //
-////////////////////////////////////////////////////////////////////////////////
-
-#if !defined(BOOST_DETAIL_NO_CONTAINER_FWD)
-# if defined(BOOST_DETAIL_CONTAINER_FWD)
- // Force forward declarations.
-# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
- // STLport
-# define BOOST_DETAIL_NO_CONTAINER_FWD
-# elif defined(__LIBCOMO__)
- // Comeau STL:
-# define BOOST_DETAIL_NO_CONTAINER_FWD
-# elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
- // Rogue Wave library:
-# define BOOST_DETAIL_NO_CONTAINER_FWD
-# elif defined(_LIBCPP_VERSION)
- // libc++
-# define BOOST_DETAIL_NO_CONTAINER_FWD
-# elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
- // GNU libstdc++ 3
- //
- // Disable forwarding for all recent versions, as the library has a
- // versioned namespace mode, and I don't know how to detect it.
-# if __GLIBCXX__ >= 20070513 \
- || defined(_GLIBCXX_DEBUG) \
- || defined(_GLIBCXX_PARALLEL) \
- || defined(_GLIBCXX_PROFILE)
-# define BOOST_DETAIL_NO_CONTAINER_FWD
-# else
-# if defined(__GLIBCXX__) && __GLIBCXX__ >= 20040530
-# define BOOST_CONTAINER_FWD_COMPLEX_STRUCT
-# endif
-# endif
-# elif defined(__STL_CONFIG_H)
- // generic SGI STL
- //
- // Forward declaration seems to be okay, but it has a couple of odd
- // implementations.
-# define BOOST_CONTAINER_FWD_BAD_BITSET
-# if !defined(__STL_NON_TYPE_TMPL_PARAM_BUG)
-# define BOOST_CONTAINER_FWD_BAD_DEQUE
-# endif
-# elif defined(__MSL_CPP__)
- // MSL standard lib:
-# define BOOST_DETAIL_NO_CONTAINER_FWD
-# elif defined(__IBMCPP__)
- // The default VACPP std lib, forward declaration seems to be fine.
-# elif defined(MSIPL_COMPILE_H)
- // Modena C++ standard library
-# define BOOST_DETAIL_NO_CONTAINER_FWD
-# elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
- // Dinkumware Library (this has to appear after any possible replacement
- // libraries)
-# else
-# define BOOST_DETAIL_NO_CONTAINER_FWD
-# endif
-#endif
-
-#if !defined(BOOST_DETAIL_TEST_CONFIG_ONLY)
-
-#if defined(BOOST_DETAIL_NO_CONTAINER_FWD) && \
- !defined(BOOST_DETAIL_TEST_FORCE_CONTAINER_FWD)
-
-#include <deque>
-#include <list>
-#include <vector>
-#include <map>
-#include <set>
-#include <bitset>
-#include <string>
-#include <complex>
-
-#else
-
-#include <cstddef>
-
-#if defined(BOOST_CONTAINER_FWD_BAD_DEQUE)
-#include <deque>
-#endif
-
-#if defined(BOOST_CONTAINER_FWD_BAD_BITSET)
-#include <bitset>
-#endif
-
-#if defined(BOOST_MSVC)
-#pragma warning(push)
-#pragma warning(disable:4099) // struct/class mismatch in fwd declarations
-#endif
-
-namespace std
-{
- template <class T> class allocator;
- template <class charT, class traits, class Allocator> class basic_string;
-
- template <class charT> struct char_traits;
-
-#if defined(BOOST_CONTAINER_FWD_COMPLEX_STRUCT)
- template <class T> struct complex;
-#else
- template <class T> class complex;
-#endif
-
-#if !defined(BOOST_CONTAINER_FWD_BAD_DEQUE)
- template <class T, class Allocator> class deque;
-#endif
-
- template <class T, class Allocator> class list;
- template <class T, class Allocator> class vector;
- template <class Key, class T, class Compare, class Allocator> class map;
- template <class Key, class T, class Compare, class Allocator>
- class multimap;
- template <class Key, class Compare, class Allocator> class set;
- template <class Key, class Compare, class Allocator> class multiset;
-
-#if !defined(BOOST_CONTAINER_FWD_BAD_BITSET)
- template <size_t N> class bitset;
-#endif
- template <class T1, class T2> struct pair;
-}
-
-#if defined(BOOST_MSVC)
-#pragma warning(pop)
-#endif
-
-#endif // BOOST_DETAIL_NO_CONTAINER_FWD &&
- // !defined(BOOST_DETAIL_TEST_FORCE_CONTAINER_FWD)
-
-#endif // BOOST_DETAIL_TEST_CONFIG_ONLY
-
-#endif
diff --git a/src/third_party/boost-1.69.0/boost/detail/endian.hpp b/src/third_party/boost-1.69.0/boost/detail/endian.hpp
deleted file mode 100644
index f576c26b89a..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/endian.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2013 Rene Rivera
-// Distributed under the Boost Software License, Version 1.0. (See accompany-
-// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_DETAIL_ENDIAN_HPP
-#define BOOST_DETAIL_ENDIAN_HPP
-
-// Use the Predef library for the detection of endianess.
-#include <boost/predef/detail/endian_compat.h>
-
-#endif
diff --git a/src/third_party/boost-1.69.0/boost/detail/fenv.hpp b/src/third_party/boost-1.69.0/boost/detail/fenv.hpp
deleted file mode 100644
index b268f5c1ccd..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/fenv.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/*=============================================================================
- Copyright (c) 2010 Bryce Lelbach
-
- 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/config.hpp>
-
-#if defined(BOOST_NO_FENV_H)
- #error This platform does not have a floating point environment
-#endif
-
-#if !defined(BOOST_DETAIL_FENV_HPP)
-#define BOOST_DETAIL_FENV_HPP
-
-/* If we're using clang + glibc, we have to get hacky.
- * See http://llvm.org/bugs/show_bug.cgi?id=6907 */
-#if defined(__clang__) && (__clang_major__ < 3) && \
- defined(__GNU_LIBRARY__) && /* up to version 5 */ \
- defined(__GLIBC__) && /* version 6 + */ \
- !defined(_FENV_H)
- #define _FENV_H
-
- #include <features.h>
- #include <bits/fenv.h>
-
- extern "C" {
- extern int fegetexceptflag (fexcept_t*, int) __THROW;
- extern int fesetexceptflag (__const fexcept_t*, int) __THROW;
- extern int feclearexcept (int) __THROW;
- extern int feraiseexcept (int) __THROW;
- extern int fetestexcept (int) __THROW;
- extern int fegetround (void) __THROW;
- extern int fesetround (int) __THROW;
- extern int fegetenv (fenv_t*) __THROW;
- extern int fesetenv (__const fenv_t*) __THROW;
- extern int feupdateenv (__const fenv_t*) __THROW;
- extern int feholdexcept (fenv_t*) __THROW;
-
- #ifdef __USE_GNU
- extern int feenableexcept (int) __THROW;
- extern int fedisableexcept (int) __THROW;
- extern int fegetexcept (void) __THROW;
- #endif
- }
-
- namespace std { namespace tr1 {
- using ::fenv_t;
- using ::fexcept_t;
- using ::fegetexceptflag;
- using ::fesetexceptflag;
- using ::feclearexcept;
- using ::feraiseexcept;
- using ::fetestexcept;
- using ::fegetround;
- using ::fesetround;
- using ::fegetenv;
- using ::fesetenv;
- using ::feupdateenv;
- using ::feholdexcept;
- } }
-
-#elif defined(__MINGW32__) && defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 408
-
- // MinGW (32-bit) has a bug in mingw32/bits/c++config.h, it does not define _GLIBCXX_HAVE_FENV_H,
- // which prevents the C fenv.h header contents to be included in the C++ wrapper header fenv.h. This is at least
- // the case with gcc 4.8.1 packages tested so far, up to 4.8.1-4. Note that there is no issue with
- // MinGW-w64.
- // To work around the bug we avoid including the C++ wrapper header and include the C header directly
- // and import all relevant symbols into std:: ourselves.
-
- #include <../include/fenv.h>
-
- namespace std {
- using ::fenv_t;
- using ::fexcept_t;
- using ::fegetexceptflag;
- using ::fesetexceptflag;
- using ::feclearexcept;
- using ::feraiseexcept;
- using ::fetestexcept;
- using ::fegetround;
- using ::fesetround;
- using ::fegetenv;
- using ::fesetenv;
- using ::feupdateenv;
- using ::feholdexcept;
- }
-
-#else /* if we're not using GNU's C stdlib, fenv.h should work with clang */
-
- #if defined(__SUNPRO_CC) /* lol suncc */
- #include <stdio.h>
- #endif
-
- #include <fenv.h>
-
-#endif
-
-#endif /* BOOST_DETAIL_FENV_HPP */
diff --git a/src/third_party/boost-1.69.0/boost/detail/indirect_traits.hpp b/src/third_party/boost-1.69.0/boost/detail/indirect_traits.hpp
deleted file mode 100644
index 94e9b34dc2f..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/indirect_traits.hpp
+++ /dev/null
@@ -1,195 +0,0 @@
-// Copyright David Abrahams 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 INDIRECT_TRAITS_DWA2002131_HPP
-# define INDIRECT_TRAITS_DWA2002131_HPP
-# include <boost/type_traits/integral_constant.hpp>
-# include <boost/type_traits/is_function.hpp>
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/is_pointer.hpp>
-# include <boost/type_traits/is_class.hpp>
-# include <boost/type_traits/is_const.hpp>
-# include <boost/type_traits/is_volatile.hpp>
-# include <boost/type_traits/is_member_function_pointer.hpp>
-# include <boost/type_traits/is_member_pointer.hpp>
-# include <boost/type_traits/remove_cv.hpp>
-# include <boost/type_traits/remove_reference.hpp>
-# include <boost/type_traits/remove_pointer.hpp>
-
-# include <boost/detail/workaround.hpp>
-# include <boost/detail/select_type.hpp>
-
-
-namespace boost { namespace detail {
-
-namespace indirect_traits {
-
-template <class T>
-struct is_reference_to_const : boost::false_type
-{
-};
-
-template <class T>
-struct is_reference_to_const<T const&> : boost::true_type
-{
-};
-
-# if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround
-template<class T>
-struct is_reference_to_const<T const volatile&> : boost::true_type
-{
-};
-# endif
-
-template <class T>
-struct is_reference_to_function : boost::false_type
-{
-};
-
-template <class T>
-struct is_reference_to_function<T&> : is_function<T>
-{
-};
-
-template <class T>
-struct is_pointer_to_function : boost::false_type
-{
-};
-
-// There's no such thing as a pointer-to-cv-function, so we don't need
-// specializations for those
-template <class T>
-struct is_pointer_to_function<T*> : is_function<T>
-{
-};
-
-template <class T>
-struct is_reference_to_member_function_pointer_impl : boost::false_type
-{
-};
-
-template <class T>
-struct is_reference_to_member_function_pointer_impl<T&>
- : is_member_function_pointer<typename remove_cv<T>::type>
-{
-};
-
-
-template <class T>
-struct is_reference_to_member_function_pointer
- : is_reference_to_member_function_pointer_impl<T>
-{
-};
-
-template <class T>
-struct is_reference_to_function_pointer_aux
- : boost::integral_constant<bool,
- is_reference<T>::value &&
- is_pointer_to_function<
- typename remove_cv<
- typename remove_reference<T>::type
- >::type
- >::value
- >
-{
- // There's no such thing as a pointer-to-cv-function, so we don't need specializations for those
-};
-
-template <class T>
-struct is_reference_to_function_pointer
- : boost::detail::if_true<
- is_reference_to_function<T>::value
- >::template then<
- boost::false_type
- , is_reference_to_function_pointer_aux<T>
- >::type
-{
-};
-
-template <class T>
-struct is_reference_to_non_const
- : boost::integral_constant<bool,
- is_reference<T>::value &&
- !is_reference_to_const<T>::value
- >
-{
-};
-
-template <class T>
-struct is_reference_to_volatile : boost::false_type
-{
-};
-
-template <class T>
-struct is_reference_to_volatile<T volatile&> : boost::true_type
-{
-};
-
-# if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround
-template <class T>
-struct is_reference_to_volatile<T const volatile&> : boost::true_type
-{
-};
-# endif
-
-
-template <class T>
-struct is_reference_to_pointer : boost::false_type
-{
-};
-
-template <class T>
-struct is_reference_to_pointer<T*&> : boost::true_type
-{
-};
-
-template <class T>
-struct is_reference_to_pointer<T* const&> : boost::true_type
-{
-};
-
-template <class T>
-struct is_reference_to_pointer<T* volatile&> : boost::true_type
-{
-};
-
-template <class T>
-struct is_reference_to_pointer<T* const volatile&> : boost::true_type
-{
-};
-
-template <class T>
-struct is_reference_to_class
- : boost::integral_constant<bool,
- is_reference<T>::value &&
- is_class<
- typename remove_cv<
- typename remove_reference<T>::type
- >::type
- >::value
- >
-{
-};
-
-template <class T>
-struct is_pointer_to_class
- : boost::integral_constant<bool,
- is_pointer<T>::value &&
- is_class<
- typename remove_cv<
- typename remove_pointer<T>::type
- >::type
- >::value
- >
-{
-};
-
-
-}
-
-using namespace indirect_traits;
-
-}} // namespace boost::python::detail
-
-#endif // INDIRECT_TRAITS_DWA2002131_HPP
diff --git a/src/third_party/boost-1.69.0/boost/detail/interlocked.hpp b/src/third_party/boost-1.69.0/boost/detail/interlocked.hpp
deleted file mode 100644
index b746cccff18..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/interlocked.hpp
+++ /dev/null
@@ -1,220 +0,0 @@
-#ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
-#define BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
-
-//
-// boost/detail/interlocked.hpp
-//
-// Copyright 2005 Peter Dimov
-// Copyright 2018 Andrey Semashev
-//
-// 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/config.hpp>
-
-#ifdef BOOST_HAS_PRAGMA_ONCE
-#pragma once
-#endif
-
-// BOOST_INTERLOCKED_HAS_INTRIN_H
-
-// VC9 has intrin.h, but it collides with <utility>
-#if defined( BOOST_MSVC ) && BOOST_MSVC >= 1600
-
-# define BOOST_INTERLOCKED_HAS_INTRIN_H
-
-// Unlike __MINGW64__, __MINGW64_VERSION_MAJOR is defined by MinGW-w64 for both 32 and 64-bit targets.
-#elif defined( __MINGW64_VERSION_MAJOR )
-
-// MinGW-w64 provides intrin.h for both 32 and 64-bit targets.
-# define BOOST_INTERLOCKED_HAS_INTRIN_H
-
-#elif defined( __CYGWIN__ ) && defined( __LP64__ )
-
-// We have to use intrin.h on Cygwin 64
-# define BOOST_INTERLOCKED_HAS_INTRIN_H
-
-// Intel C++ on Windows on VC10+ stdlib
-#elif defined( BOOST_INTEL_WIN ) && defined( _CPPLIB_VER ) && _CPPLIB_VER >= 520
-
-# define BOOST_INTERLOCKED_HAS_INTRIN_H
-
-// clang-cl on Windows on VC10+ stdlib
-#elif defined( __clang__ ) && defined( _MSC_VER ) && defined( _CPPLIB_VER ) && _CPPLIB_VER >= 520
-
-# define BOOST_INTERLOCKED_HAS_INTRIN_H
-
-#endif
-
-#if defined( BOOST_USE_WINDOWS_H )
-
-# include <windows.h>
-
-# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER InterlockedCompareExchangePointer
-# define BOOST_INTERLOCKED_EXCHANGE_POINTER InterlockedExchangePointer
-
-#elif defined( BOOST_USE_INTRIN_H ) || defined( BOOST_INTERLOCKED_HAS_INTRIN_H )
-
-#include <intrin.h>
-
-# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
-
-# if defined(_M_IA64) || defined(_M_AMD64) || defined(__x86_64__) || defined(__x86_64)
-
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer
-# define BOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer
-
-# else
-
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
- ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare)))
-# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
- ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
-
-# endif
-
-#elif defined(_WIN32_WCE)
-
-#if _WIN32_WCE >= 0x600
-
-extern "C" long __cdecl _InterlockedIncrement( long volatile * );
-extern "C" long __cdecl _InterlockedDecrement( long volatile * );
-extern "C" long __cdecl _InterlockedCompareExchange( long volatile *, long, long );
-extern "C" long __cdecl _InterlockedExchange( long volatile *, long );
-extern "C" long __cdecl _InterlockedExchangeAdd( long volatile *, long );
-
-# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
-
-#else // _WIN32_WCE >= 0x600
-
-// under Windows CE we still have old-style Interlocked* functions
-
-extern "C" long __cdecl InterlockedIncrement( long * );
-extern "C" long __cdecl InterlockedDecrement( long * );
-extern "C" long __cdecl InterlockedCompareExchange( long *, long, long );
-extern "C" long __cdecl InterlockedExchange( long *, long );
-extern "C" long __cdecl InterlockedExchangeAdd( long *, long );
-
-# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd
-
-#endif // _WIN32_WCE >= 0x600
-
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
- ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long*)(dest),(long)(exchange),(long)(compare)))
-# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
- ((void*)BOOST_INTERLOCKED_EXCHANGE((long*)(dest),(long)(exchange)))
-
-#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN )
-
-# if defined( __CLRCALL_PURE_OR_CDECL )
-# define BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL __CLRCALL_PURE_OR_CDECL
-# else
-# define BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL __cdecl
-# endif
-
-extern "C" long BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL _InterlockedIncrement( long volatile * );
-extern "C" long BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL _InterlockedDecrement( long volatile * );
-extern "C" long BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL _InterlockedCompareExchange( long volatile *, long, long );
-extern "C" long BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL _InterlockedExchange( long volatile *, long );
-extern "C" long BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL _InterlockedExchangeAdd( long volatile *, long );
-
-# undef BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL
-
-# if defined( BOOST_MSVC ) && BOOST_MSVC >= 1310
-# pragma intrinsic( _InterlockedIncrement )
-# pragma intrinsic( _InterlockedDecrement )
-# pragma intrinsic( _InterlockedCompareExchange )
-# pragma intrinsic( _InterlockedExchange )
-# pragma intrinsic( _InterlockedExchangeAdd )
-# endif
-
-# if defined(_M_IA64) || defined(_M_AMD64)
-
-extern "C" void* __cdecl _InterlockedCompareExchangePointer( void* volatile *, void*, void* );
-extern "C" void* __cdecl _InterlockedExchangePointer( void* volatile *, void* );
-
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer
-# define BOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer
-
-# else
-
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
- ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare)))
-# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
- ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
-
-# endif
-
-# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
-
-#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )
-
-#define BOOST_INTERLOCKED_IMPORT __declspec(dllimport)
-
-namespace boost
-{
-
-namespace detail
-{
-
-extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedIncrement( long volatile * );
-extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedDecrement( long volatile * );
-extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedCompareExchange( long volatile *, long, long );
-extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchange( long volatile *, long );
-extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchangeAdd( long volatile *, long );
-
-# if defined(_M_IA64) || defined(_M_AMD64)
-extern "C" BOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedCompareExchangePointer( void* volatile *, void*, void* );
-extern "C" BOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedExchangePointer( void* volatile *, void* );
-# endif
-
-} // namespace detail
-
-} // namespace boost
-
-# define BOOST_INTERLOCKED_INCREMENT ::boost::detail::InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT ::boost::detail::InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE ::boost::detail::InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE ::boost::detail::InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD ::boost::detail::InterlockedExchangeAdd
-
-# if defined(_M_IA64) || defined(_M_AMD64)
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER ::boost::detail::InterlockedCompareExchangePointer
-# define BOOST_INTERLOCKED_EXCHANGE_POINTER ::boost::detail::InterlockedExchangePointer
-# else
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
- ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare)))
-# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
- ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
-# endif
-
-#else
-
-# error "Interlocked intrinsics not available"
-
-#endif
-
-#endif // #ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
diff --git a/src/third_party/boost-1.69.0/boost/detail/is_incrementable.hpp b/src/third_party/boost-1.69.0/boost/detail/is_incrementable.hpp
deleted file mode 100644
index fa70cf2ed79..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/is_incrementable.hpp
+++ /dev/null
@@ -1,121 +0,0 @@
-// Copyright David Abrahams 2004. Use, modification and distribution is
-// subject to the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef IS_INCREMENTABLE_DWA200415_HPP
-# define IS_INCREMENTABLE_DWA200415_HPP
-
-# include <boost/type_traits/integral_constant.hpp>
-# include <boost/type_traits/remove_cv.hpp>
-# include <boost/detail/workaround.hpp>
-
-namespace boost { namespace detail {
-
-// is_incrementable<T> metafunction
-//
-// Requires: Given x of type T&, if the expression ++x is well-formed
-// it must have complete type; otherwise, it must neither be ambiguous
-// nor violate access.
-
-// This namespace ensures that ADL doesn't mess things up.
-namespace is_incrementable_
-{
- // a type returned from operator++ when no increment is found in the
- // type's own namespace
- struct tag {};
-
- // any soaks up implicit conversions and makes the following
- // operator++ less-preferred than any other such operator that
- // might be found via ADL.
- struct any { template <class T> any(T const&); };
-
- // This is a last-resort operator++ for when none other is found
-# if BOOST_WORKAROUND(__GNUC__, == 4) && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 2
-
-}
-
-namespace is_incrementable_2
-{
- is_incrementable_::tag operator++(is_incrementable_::any const&);
- is_incrementable_::tag operator++(is_incrementable_::any const&,int);
-}
-using namespace is_incrementable_2;
-
-namespace is_incrementable_
-{
-
-# else
-
- tag operator++(any const&);
- tag operator++(any const&,int);
-
-# endif
-
-# if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202))
-# define BOOST_comma(a,b) (a)
-# else
- // In case an operator++ is found that returns void, we'll use ++x,0
- tag operator,(tag,int);
-# define BOOST_comma(a,b) (a,b)
-# endif
-
-# if defined(BOOST_MSVC)
-# pragma warning(push)
-# pragma warning(disable:4913) // Warning about operator,
-# endif
-
- // two check overloads help us identify which operator++ was picked
- char (& check_(tag) )[2];
-
- template <class T>
- char check_(T const&);
-
-
- template <class T>
- struct impl
- {
- static typename boost::remove_cv<T>::type& x;
-
- BOOST_STATIC_CONSTANT(
- bool
- , value = sizeof(is_incrementable_::check_(BOOST_comma(++x,0))) == 1
- );
- };
-
- template <class T>
- struct postfix_impl
- {
- static typename boost::remove_cv<T>::type& x;
-
- BOOST_STATIC_CONSTANT(
- bool
- , value = sizeof(is_incrementable_::check_(BOOST_comma(x++,0))) == 1
- );
- };
-
-# if defined(BOOST_MSVC)
-# pragma warning(pop)
-# endif
-
-}
-
-# undef BOOST_comma
-
-template<typename T>
-struct is_incrementable :
- public boost::integral_constant<bool, boost::detail::is_incrementable_::impl<T>::value>
-{
-};
-
-template<typename T>
-struct is_postfix_incrementable :
- public boost::integral_constant<bool, boost::detail::is_incrementable_::postfix_impl<T>::value>
-{
-};
-
-} // namespace detail
-
-} // namespace boost
-
-# include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // IS_INCREMENTABLE_DWA200415_HPP
diff --git a/src/third_party/boost-1.69.0/boost/detail/iterator.hpp b/src/third_party/boost-1.69.0/boost/detail/iterator.hpp
deleted file mode 100644
index 2498ef448ff..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/iterator.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-// (C) Copyright David Abrahams 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 ITERATOR_DWA122600_HPP_
-#define ITERATOR_DWA122600_HPP_
-
-// This header is obsolete and will be deprecated.
-
-#include <iterator>
-#if defined(__SUNPRO_CC) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
-#include <cstddef>
-#endif
-
-namespace boost
-{
-
-namespace detail
-{
-
-using std::iterator_traits;
-using std::distance;
-
-#if defined(__SUNPRO_CC) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
-// std::distance from stlport with Oracle compiler 12.4 and 12.5 fails to deduce template parameters
-// when one of the arguments is an array and the other one is a pointer.
-template< typename T, std::size_t N >
-inline typename std::iterator_traits< T* >::difference_type distance(T (&left)[N], T* right)
-{
- return std::distance(static_cast< T* >(left), right);
-}
-#endif
-
-} // namespace detail
-
-} // namespace boost
-
-#endif // ITERATOR_DWA122600_HPP_
diff --git a/src/third_party/boost-1.69.0/boost/detail/lcast_precision.hpp b/src/third_party/boost-1.69.0/boost/detail/lcast_precision.hpp
deleted file mode 100644
index 84bf1222b1f..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/lcast_precision.hpp
+++ /dev/null
@@ -1,185 +0,0 @@
-// Copyright Alexander Nasonov & Paul A. Bristow 2006.
-
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt
-// or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
-#define BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
-
-#include <climits>
-#include <ios>
-#include <limits>
-
-#include <boost/config.hpp>
-#include <boost/integer_traits.hpp>
-
-#ifndef BOOST_NO_IS_ABSTRACT
-// Fix for SF:1358600 - lexical_cast & pure virtual functions & VC 8 STL
-#include <boost/type_traits/conditional.hpp>
-#include <boost/type_traits/is_abstract.hpp>
-#endif
-
-#if defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) || \
- (defined(BOOST_MSVC) && (BOOST_MSVC<1310))
-
-#define BOOST_LCAST_NO_COMPILE_TIME_PRECISION
-#endif
-
-#ifdef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
-#include <boost/assert.hpp>
-#else
-#include <boost/static_assert.hpp>
-#endif
-
-namespace boost { namespace detail {
-
-class lcast_abstract_stub {};
-
-#ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
-// Calculate an argument to pass to std::ios_base::precision from
-// lexical_cast. See alternative implementation for broken standard
-// libraries in lcast_get_precision below. Keep them in sync, please.
-template<class T>
-struct lcast_precision
-{
-#ifdef BOOST_NO_IS_ABSTRACT
- typedef std::numeric_limits<T> limits; // No fix for SF:1358600.
-#else
- typedef BOOST_DEDUCED_TYPENAME boost::conditional<
- boost::is_abstract<T>::value
- , std::numeric_limits<lcast_abstract_stub>
- , std::numeric_limits<T>
- >::type limits;
-#endif
-
- BOOST_STATIC_CONSTANT(bool, use_default_precision =
- !limits::is_specialized || limits::is_exact
- );
-
- BOOST_STATIC_CONSTANT(bool, is_specialized_bin =
- !use_default_precision &&
- limits::radix == 2 && limits::digits > 0
- );
-
- BOOST_STATIC_CONSTANT(bool, is_specialized_dec =
- !use_default_precision &&
- limits::radix == 10 && limits::digits10 > 0
- );
-
- BOOST_STATIC_CONSTANT(std::streamsize, streamsize_max =
- boost::integer_traits<std::streamsize>::const_max
- );
-
- BOOST_STATIC_CONSTANT(unsigned int, precision_dec = limits::digits10 + 1U);
-
- BOOST_STATIC_ASSERT(!is_specialized_dec ||
- precision_dec <= streamsize_max + 0UL
- );
-
- BOOST_STATIC_CONSTANT(unsigned long, precision_bin =
- 2UL + limits::digits * 30103UL / 100000UL
- );
-
- BOOST_STATIC_ASSERT(!is_specialized_bin ||
- (limits::digits + 0UL < ULONG_MAX / 30103UL &&
- precision_bin > limits::digits10 + 0UL &&
- precision_bin <= streamsize_max + 0UL)
- );
-
- BOOST_STATIC_CONSTANT(std::streamsize, value =
- is_specialized_bin ? precision_bin
- : is_specialized_dec ? precision_dec : 6
- );
-};
-#endif
-
-template<class T>
-inline std::streamsize lcast_get_precision(T* = 0)
-{
-#ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
- return lcast_precision<T>::value;
-#else // Follow lcast_precision algorithm at run-time:
-
-#ifdef BOOST_NO_IS_ABSTRACT
- typedef std::numeric_limits<T> limits; // No fix for SF:1358600.
-#else
- typedef BOOST_DEDUCED_TYPENAME boost::conditional<
- boost::is_abstract<T>::value
- , std::numeric_limits<lcast_abstract_stub>
- , std::numeric_limits<T>
- >::type limits;
-#endif
-
- bool const use_default_precision =
- !limits::is_specialized || limits::is_exact;
-
- if(!use_default_precision)
- { // Includes all built-in floating-point types, float, double ...
- // and UDT types for which digits (significand bits) is defined (not zero)
-
- bool const is_specialized_bin =
- limits::radix == 2 && limits::digits > 0;
- bool const is_specialized_dec =
- limits::radix == 10 && limits::digits10 > 0;
- std::streamsize const streamsize_max =
- (boost::integer_traits<std::streamsize>::max)();
- (void)streamsize_max;
-
- if(is_specialized_bin)
- { // Floating-point types with
- // limits::digits defined by the specialization.
-
- unsigned long const digits = limits::digits;
- unsigned long const precision = 2UL + digits * 30103UL / 100000UL;
- // unsigned long is selected because it is at least 32-bits
- // and thus ULONG_MAX / 30103UL is big enough for all types.
- BOOST_ASSERT(
- digits < ULONG_MAX / 30103UL &&
- precision > limits::digits10 + 0UL &&
- precision <= streamsize_max + 0UL
- );
- return precision;
- }
- else if(is_specialized_dec)
- { // Decimal Floating-point type, most likely a User Defined Type
- // rather than a real floating-point hardware type.
- unsigned int const precision = limits::digits10 + 1U;
- BOOST_ASSERT(precision <= streamsize_max + 0UL);
- return precision;
- }
- }
-
- // Integral type (for which precision has no effect)
- // or type T for which limits is NOT specialized,
- // so assume stream precision remains the default 6 decimal digits.
- // Warning: if your User-defined Floating-point type T is NOT specialized,
- // then you may lose accuracy by only using 6 decimal digits.
- // To avoid this, you need to specialize T with either
- // radix == 2 and digits == the number of significand bits,
- // OR
- // radix = 10 and digits10 == the number of decimal digits.
-
- return 6;
-#endif
-}
-
-template<class T>
-inline void lcast_set_precision(std::ios_base& stream, T*)
-{
- stream.precision(lcast_get_precision<T>());
-}
-
-template<class Source, class Target>
-inline void lcast_set_precision(std::ios_base& stream, Source*, Target*)
-{
- std::streamsize const s = lcast_get_precision(static_cast<Source*>(0));
- std::streamsize const t = lcast_get_precision(static_cast<Target*>(0));
- stream.precision(s > t ? s : t);
-}
-
-}}
-
-#endif // BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
-
diff --git a/src/third_party/boost-1.69.0/boost/detail/lightweight_main.hpp b/src/third_party/boost-1.69.0/boost/detail/lightweight_main.hpp
deleted file mode 100644
index 17053097806..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/lightweight_main.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// boost/detail/lightweight_main.hpp -------------------------------------------------//
-
-// Copyright Beman Dawes 2010
-
-// Distributed under the Boost Software License, Version 1.0.
-// See http://www.boost.org/LICENSE_1_0.txt
-
-#include <iostream>
-#include <exception>
-
-//--------------------------------------------------------------------------------------//
-// //
-// exception reporting main() that calls cpp_main() //
-// //
-//--------------------------------------------------------------------------------------//
-
-int cpp_main(int argc, char* argv[]);
-
-int main(int argc, char* argv[])
-{
- try
- {
- return cpp_main(argc, argv);
- }
-
- catch (const std::exception& ex)
- {
- std::cout
- << "\nERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR\n"
- << "\n****************************** std::exception *****************************\n"
- << ex.what()
- << "\n***************************************************************************\n"
- << std::endl;
- }
- return 1;
-}
diff --git a/src/third_party/boost-1.69.0/boost/detail/lightweight_mutex.hpp b/src/third_party/boost-1.69.0/boost/detail/lightweight_mutex.hpp
deleted file mode 100644
index b7a7f6dd4ed..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/lightweight_mutex.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef BOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
-#define BOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-// boost/detail/lightweight_mutex.hpp - lightweight mutex
-//
-// Copyright (c) 2002, 2003 Peter Dimov and Multi Media Ltd.
-//
-// 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/smart_ptr/detail/lightweight_mutex.hpp>
-
-#endif // #ifndef BOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
diff --git a/src/third_party/boost-1.69.0/boost/detail/lightweight_test.hpp b/src/third_party/boost-1.69.0/boost/detail/lightweight_test.hpp
deleted file mode 100644
index 9fece8ab7ea..00000000000
--- a/src/third_party/boost-1.69.0/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/src/third_party/boost-1.69.0/boost/detail/lightweight_test_report.hpp b/src/third_party/boost-1.69.0/boost/detail/lightweight_test_report.hpp
deleted file mode 100644
index 1511ba9d149..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/lightweight_test_report.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-// boost/detail/lightweight_test_reporter.hpp ----------------------------------------//
-
-// Copyright Beman Dawes 2014
-
-// Distributed under the Boost Software License, Version 1.0.
-// See http://www.boost.org/LICENSE_1_0.txt
-
-//--------------------------------------------------------------------------------------//
-// //
-// Configuration reporting cpp_main() //
-// //
-// Displays configuration information, then returns test_main(argc, argv), which //
-// must be supplied by the user. //
-// //
-// Note: cpp_main(argc, argv) is called from a try block in main(), which is //
-// supplied by <boost/detail/lightweight_main.hpp> as is a catch block that reports //
-// std::exception what(). //
-// //
-//--------------------------------------------------------------------------------------//
-
-#include <boost/config.hpp>
-#include <boost/version.hpp>
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/detail/lightweight_main.hpp>
-#include <iostream>
-
-int test_main(int argc, char* argv[]);
-
-int cpp_main(int argc, char* argv[])
-{
- std::cout << BOOST_COMPILER
-#ifdef __GNUC__
- << ", __GXX_EXPERIMENTAL_CXX0X__ "
-# ifdef __GXX_EXPERIMENTAL_CXX0X__
- "defined"
-# else
- "not defined"
-# endif
-#endif
- << "\n"
- << BOOST_STDLIB << "\n"
- << BOOST_PLATFORM << "\n"
- << "Boost version " << BOOST_VERSION / 100000 << '.'
- << BOOST_VERSION / 100 % 1000 << '.' << BOOST_VERSION % 100 << "\n";
-
- std::cout << "Command line: ";
- for (int a = 0; a < argc; ++a)
- {
- std::cout << argv[a];
- if (a != argc - 1)
- std::cout << ' ';
- }
- std::cout << std::endl;
-
- return test_main(argc, argv);
-} \ No newline at end of file
diff --git a/src/third_party/boost-1.69.0/boost/detail/lightweight_thread.hpp b/src/third_party/boost-1.69.0/boost/detail/lightweight_thread.hpp
deleted file mode 100644
index c2930d591ae..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/lightweight_thread.hpp
+++ /dev/null
@@ -1,188 +0,0 @@
-#ifndef BOOST_DETAIL_LIGHTWEIGHT_THREAD_HPP_INCLUDED
-#define BOOST_DETAIL_LIGHTWEIGHT_THREAD_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-// boost/detail/lightweight_thread.hpp
-//
-// Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
-// Copyright (c) 2008, 2018 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
-//
-//
-// typedef /*...*/ lw_thread_t; // as pthread_t
-// template<class F> int lw_thread_create( lw_thread_t & th, F f );
-// void lw_thread_join( lw_thread_t th );
-
-
-#include <boost/config.hpp>
-#include <memory>
-#include <cerrno>
-
-#if defined( BOOST_HAS_PTHREADS )
-
-#include <pthread.h>
-
-namespace boost
-{
-namespace detail
-{
-
-typedef ::pthread_t lw_thread_t;
-
-inline int lw_thread_create_( lw_thread_t* thread, const pthread_attr_t* attr, void* (*start_routine)( void* ), void* arg )
-{
- return ::pthread_create( thread, attr, start_routine, arg );
-}
-
-inline void lw_thread_join( lw_thread_t th )
-{
- ::pthread_join( th, 0 );
-}
-
-} // namespace detail
-} // namespace boost
-
-#else // defined( BOOST_HAS_PTHREADS )
-
-#include <windows.h>
-#include <process.h>
-
-namespace boost
-{
-namespace detail
-{
-
-typedef HANDLE lw_thread_t;
-
-inline int lw_thread_create_( lw_thread_t * thread, void const *, unsigned (__stdcall * start_routine) (void*), void* arg )
-{
- HANDLE h = (HANDLE)_beginthreadex( 0, 0, start_routine, arg, 0, 0 );
-
- if( h != 0 )
- {
- *thread = h;
- return 0;
- }
- else
- {
- return EAGAIN;
- }
-}
-
-inline void lw_thread_join( lw_thread_t thread )
-{
- ::WaitForSingleObject( thread, INFINITE );
- ::CloseHandle( thread );
-}
-
-} // namespace detail
-} // namespace boost
-
-#endif // defined( BOOST_HAS_PTHREADS )
-
-
-namespace boost
-{
-namespace detail
-{
-
-class lw_abstract_thread
-{
-public:
-
- virtual ~lw_abstract_thread() {}
- virtual void run() = 0;
-};
-
-#if defined( BOOST_HAS_PTHREADS )
-
-extern "C" void * lw_thread_routine( void * pv )
-{
-#if defined(BOOST_NO_CXX11_SMART_PTR)
-
- std::auto_ptr<lw_abstract_thread> pt( static_cast<lw_abstract_thread *>( pv ) );
-
-#else
-
- std::unique_ptr<lw_abstract_thread> pt( static_cast<lw_abstract_thread *>( pv ) );
-
-#endif
-
- pt->run();
-
- return 0;
-}
-
-#else
-
-unsigned __stdcall lw_thread_routine( void * pv )
-{
-#if defined(BOOST_NO_CXX11_SMART_PTR)
-
- std::auto_ptr<lw_abstract_thread> pt( static_cast<lw_abstract_thread *>( pv ) );
-
-#else
-
- std::unique_ptr<lw_abstract_thread> pt( static_cast<lw_abstract_thread *>( pv ) );
-
-#endif
-
- pt->run();
-
- return 0;
-}
-
-#endif
-
-template<class F> class lw_thread_impl: public lw_abstract_thread
-{
-public:
-
- explicit lw_thread_impl( F f ): f_( f )
- {
- }
-
- void run()
- {
- f_();
- }
-
-private:
-
- F f_;
-};
-
-template<class F> int lw_thread_create( lw_thread_t & th, F f )
-{
-#if defined(BOOST_NO_CXX11_SMART_PTR)
-
- std::auto_ptr<lw_abstract_thread> p( new lw_thread_impl<F>( f ) );
-
-#else
-
- std::unique_ptr<lw_abstract_thread> p( new lw_thread_impl<F>( f ) );
-
-#endif
-
- int r = lw_thread_create_( &th, 0, lw_thread_routine, p.get() );
-
- if( r == 0 )
- {
- p.release();
- }
-
- return r;
-}
-
-} // namespace detail
-} // namespace boost
-
-#endif // #ifndef BOOST_DETAIL_LIGHTWEIGHT_THREAD_HPP_INCLUDED
diff --git a/src/third_party/boost-1.69.0/boost/detail/no_exceptions_support.hpp b/src/third_party/boost-1.69.0/boost/detail/no_exceptions_support.hpp
deleted file mode 100644
index 7d17454a732..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/no_exceptions_support.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_NO_EXCEPTIONS_SUPPORT_HPP
-#define BOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP
-
-// The header file at this path is deprecated;
-// use boost/core/no_exceptions_support.hpp instead.
-
-#include <boost/core/no_exceptions_support.hpp>
-
-#endif
diff --git a/src/third_party/boost-1.69.0/boost/detail/numeric_traits.hpp b/src/third_party/boost-1.69.0/boost/detail/numeric_traits.hpp
deleted file mode 100644
index a62affb347c..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/numeric_traits.hpp
+++ /dev/null
@@ -1,160 +0,0 @@
-// (C) Copyright David Abrahams 2001, Howard Hinnant 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)
-//
-// Template class numeric_traits<Number> --
-//
-// Supplies:
-//
-// typedef difference_type -- a type used to represent the difference
-// between any two values of Number.
-//
-// Support:
-// 1. Not all specializations are supplied
-//
-// 2. Use of specializations that are not supplied will cause a
-// compile-time error
-//
-// 3. Users are free to specialize numeric_traits for any type.
-//
-// 4. Right now, specializations are only supplied for integer types.
-//
-// 5. On implementations which do not supply compile-time constants in
-// std::numeric_limits<>, only specializations for built-in integer types
-// are supplied.
-//
-// 6. Handling of numbers whose range of representation is at least as
-// great as boost::intmax_t can cause some differences to be
-// unrepresentable in difference_type:
-//
-// Number difference_type
-// ------ ---------------
-// signed Number
-// unsigned intmax_t
-//
-// template <class Number> typename numeric_traits<Number>::difference_type
-// numeric_distance(Number x, Number y)
-// computes (y - x), attempting to avoid overflows.
-//
-
-// See http://www.boost.org for most recent version including documentation.
-
-// Revision History
-// 11 Feb 2001 - Use BOOST_STATIC_CONSTANT (David Abrahams)
-// 11 Feb 2001 - Rolled back ineffective Borland-specific code
-// (David Abrahams)
-// 10 Feb 2001 - Rolled in supposed Borland fixes from John Maddock, but
-// not seeing any improvement yet (David Abrahams)
-// 06 Feb 2001 - Factored if_true out into boost/detail/select_type.hpp
-// (David Abrahams)
-// 23 Jan 2001 - Fixed logic of difference_type selection, which was
-// completely wack. In the process, added digit_traits<>
-// to compute the number of digits in intmax_t even when
-// not supplied by numeric_limits<>. (David Abrahams)
-// 21 Jan 2001 - Created (David Abrahams)
-
-#ifndef BOOST_NUMERIC_TRAITS_HPP_DWA20001901
-#define BOOST_NUMERIC_TRAITS_HPP_DWA20001901
-
-#include <cstddef>
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/type_traits/is_signed.hpp>
-#include <boost/type_traits/conditional.hpp>
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#include <boost/static_assert.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#endif
-
-namespace boost { namespace detail {
-
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
- // digit_traits - compute the number of digits in a built-in integer
- // type. Needed for implementations on which numeric_limits is not specialized
- // for some integer types, like __int128 in libstdc++ (gcc).
- template <class T, bool IsSpecialized = std::numeric_limits<T>::is_specialized>
- struct digit_traits
- {
- BOOST_STATIC_CONSTANT(int, digits = std::numeric_limits<T>::digits);
- };
-
- // numeric_limits is not specialized; compute digits from sizeof(T)
- template <class T>
- struct digit_traits<T, false>
- {
- BOOST_STATIC_CONSTANT(int, digits = (
- sizeof(T) * std::numeric_limits<unsigned char>::digits
- - (boost::is_signed<T>::value ? 1 : 0))
- );
- };
-#endif
-
- // Template class integer_traits<Integer> -- traits of various integer types
- // This should probably be rolled into boost::integer_traits one day, but I
- // need it to work without <limits>
- template <class Integer>
- struct integer_traits
- {
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
- private:
- typedef Integer integer_type;
- typedef std::numeric_limits<integer_type> x;
- public:
- typedef typename boost::conditional<
- (int(x::is_signed)
- && (!int(x::is_bounded)
- // digits is the number of no-sign bits
- || (int(x::digits) + 1 >= digit_traits<boost::intmax_t>::digits))),
- Integer,
-
- typename boost::conditional<
- (int(x::digits) + 1 < digit_traits<signed int>::digits),
- signed int,
-
- typename boost::conditional<
- (int(x::digits) + 1 < digit_traits<signed long>::digits),
- signed long,
- boost::intmax_t
- >::type
- >::type
- >::type difference_type;
-#else
- BOOST_STATIC_ASSERT(boost::is_integral<Integer>::value);
-
- typedef typename boost::conditional<
- (sizeof(Integer) >= sizeof(intmax_t)),
-
- boost::conditional<
- (boost::is_signed<Integer>::value),
- Integer,
- boost::intmax_t
- >,
-
- boost::conditional<
- (sizeof(Integer) < sizeof(std::ptrdiff_t)),
- std::ptrdiff_t,
- boost::intmax_t
- >
- >::type::type difference_type;
-#endif
- };
-
- // Right now, only supports integers, but should be expanded.
- template <class Number>
- struct numeric_traits
- {
- typedef typename integer_traits<Number>::difference_type difference_type;
- };
-
- template <class Number>
- inline BOOST_CONSTEXPR typename numeric_traits<Number>::difference_type numeric_distance(Number x, Number y)
- {
- typedef typename numeric_traits<Number>::difference_type difference_type;
- return difference_type(y) - difference_type(x);
- }
-}}
-
-#endif // BOOST_NUMERIC_TRAITS_HPP_DWA20001901
diff --git a/src/third_party/boost-1.69.0/boost/detail/quick_allocator.hpp b/src/third_party/boost-1.69.0/boost/detail/quick_allocator.hpp
deleted file mode 100644
index d54b3a792d7..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/quick_allocator.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef BOOST_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
-#define BOOST_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-// detail/quick_allocator.hpp
-//
-// Copyright (c) 2003 David Abrahams
-// Copyright (c) 2003 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/smart_ptr/detail/quick_allocator.hpp>
-
-#endif // #ifndef BOOST_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
diff --git a/src/third_party/boost-1.69.0/boost/detail/reference_content.hpp b/src/third_party/boost-1.69.0/boost/detail/reference_content.hpp
deleted file mode 100644
index c93ea6fdd01..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/reference_content.hpp
+++ /dev/null
@@ -1,120 +0,0 @@
-//-----------------------------------------------------------------------------
-// boost detail/reference_content.hpp header file
-// See http://www.boost.org for updates, documentation, and revision history.
-//-----------------------------------------------------------------------------
-//
-// Copyright (c) 2003
-// Eric Friedman
-//
-// 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_REFERENCE_CONTENT_HPP
-#define BOOST_DETAIL_REFERENCE_CONTENT_HPP
-
-#include "boost/config.hpp"
-
-# include "boost/type_traits/integral_constant.hpp"
-# include "boost/type_traits/has_nothrow_copy.hpp"
-
-namespace boost {
-
-namespace detail {
-
-struct void_type {};
-
-///////////////////////////////////////////////////////////////////////////////
-// (detail) class template reference_content
-//
-// Non-Assignable wrapper for references.
-//
-template <typename RefT>
-class reference_content
-{
-private: // representation
-
- RefT content_;
-
-public: // structors
-
- ~reference_content()
- {
- }
-
- reference_content(RefT r)
- : content_( r )
- {
- }
-
- reference_content(const reference_content& operand)
- : content_( operand.content_ )
- {
- }
-
-private: // non-Assignable
-
- reference_content& operator=(const reference_content&);
-
-public: // queries
-
- RefT get() const
- {
- return content_;
- }
-
-};
-
-///////////////////////////////////////////////////////////////////////////////
-// (detail) metafunction make_reference_content
-//
-// Wraps with reference_content if specified type is reference.
-//
-
-template <typename T = void_type> struct make_reference_content;
-
-
-template <typename T>
-struct make_reference_content
-{
- typedef T type;
-};
-
-template <typename T>
-struct make_reference_content< T& >
-{
- typedef reference_content<T&> type;
-};
-
-
-template <>
-struct make_reference_content< void_type >
-{
- template <typename T>
- struct apply
- : make_reference_content<T>
- {
- };
-
- typedef void_type type;
-};
-
-} // namespace detail
-
-///////////////////////////////////////////////////////////////////////////////
-// reference_content<T&> type traits specializations
-//
-
-
-template <typename T>
-struct has_nothrow_copy<
- ::boost::detail::reference_content< T& >
- >
- : boost::true_type
-{
-};
-
-
-} // namespace boost
-
-#endif // BOOST_DETAIL_REFERENCE_CONTENT_HPP
diff --git a/src/third_party/boost-1.69.0/boost/detail/scoped_enum_emulation.hpp b/src/third_party/boost-1.69.0/boost/detail/scoped_enum_emulation.hpp
deleted file mode 100644
index 1c7bc23c1c3..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/scoped_enum_emulation.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright (c) 2014 Andrey Semashev
- *
- * 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_SCOPED_ENUM_EMULATION_HPP
-#define BOOST_DETAIL_SCOPED_ENUM_EMULATION_HPP
-
-// The header file at this path is deprecated;
-// use boost/core/scoped_enum.hpp instead.
-
-#include <boost/core/scoped_enum.hpp>
-
-#endif
diff --git a/src/third_party/boost-1.69.0/boost/detail/select_type.hpp b/src/third_party/boost-1.69.0/boost/detail/select_type.hpp
deleted file mode 100644
index c13946f3384..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/select_type.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// (C) Copyright David Abrahams 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)
-//
-// See http://www.boost.org for most recent version including documentation.
-
-// Revision History
-// 09 Feb 01 Applied John Maddock's Borland patch Moving <true>
-// specialization to unspecialized template (David Abrahams)
-// 06 Feb 01 Created (David Abrahams)
-
-#ifndef SELECT_TYPE_DWA20010206_HPP
-# define SELECT_TYPE_DWA20010206_HPP
-
-namespace boost { namespace detail {
-
- // Template class if_true -- select among 2 types based on a bool constant expression
- // Usage:
- // typename if_true<(bool_const_expression)>::template then<true_type, false_type>::type
-
- // HP aCC cannot deal with missing names for template value parameters
- template <bool b> struct if_true
- {
- template <class T, class F>
- struct then { typedef T type; };
- };
-
- template <>
- struct if_true<false>
- {
- template <class T, class F>
- struct then { typedef F type; };
- };
-}}
-#endif // SELECT_TYPE_DWA20010206_HPP
diff --git a/src/third_party/boost-1.69.0/boost/detail/sp_typeinfo.hpp b/src/third_party/boost-1.69.0/boost/detail/sp_typeinfo.hpp
deleted file mode 100644
index 4e4de55b05c..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/sp_typeinfo.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED
-#define BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-// detail/sp_typeinfo.hpp
-//
-// Deprecated, please use boost/core/typeinfo.hpp
-//
-// Copyright 2007 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/typeinfo.hpp>
-
-namespace boost
-{
-
-namespace detail
-{
-
-typedef boost::core::typeinfo sp_typeinfo;
-
-} // namespace detail
-
-} // namespace boost
-
-#define BOOST_SP_TYPEID(T) BOOST_CORE_TYPEID(T)
-
-#endif // #ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED
diff --git a/src/third_party/boost-1.69.0/boost/detail/utf8_codecvt_facet.hpp b/src/third_party/boost-1.69.0/boost/detail/utf8_codecvt_facet.hpp
deleted file mode 100644
index ad714c09e8e..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/utf8_codecvt_facet.hpp
+++ /dev/null
@@ -1,219 +0,0 @@
-// Copyright (c) 2001 Ronald Garcia, Indiana University (garcia@osl.iu.edu)
-// Andrew Lumsdaine, Indiana University (lums@osl.iu.edu).
-// Distributed under the Boost Software License, Version 1.0. (See accompany-
-// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UTF8_CODECVT_FACET_HPP
-#define BOOST_UTF8_CODECVT_FACET_HPP
-
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
-// utf8_codecvt_facet.hpp
-
-// This header defines class utf8_codecvt_facet, derived from
-// std::codecvt<wchar_t, char>, which can be used to convert utf8 data in
-// files into wchar_t strings in the application.
-//
-// The header is NOT STANDALONE, and is not to be included by the USER.
-// There are at least two libraries which want to use this functionality, and
-// we want to avoid code duplication. It would be possible to create utf8
-// library, but:
-// - this requires review process first
-// - in the case, when linking the a library which uses utf8
-// (say 'program_options'), user should also link to the utf8 library.
-// This seems inconvenient, and asking a user to link to an unrevieved
-// library is strange.
-// Until the above points are fixed, a library which wants to use utf8 must:
-// - include this header in one of it's headers or sources
-// - include the corresponding boost/detail/utf8_codecvt_facet.ipp file in one
-// of its sources
-// - before including either file, the library must define
-// - BOOST_UTF8_BEGIN_NAMESPACE to the namespace declaration that must be used
-// - BOOST_UTF8_END_NAMESPACE to the code to close the previous namespace
-// declaration.
-// - BOOST_UTF8_DECL -- to the code which must be used for all 'exportable'
-// symbols.
-//
-// For example, program_options library might contain:
-// #define BOOST_UTF8_BEGIN_NAMESPACE <backslash character>
-// namespace boost { namespace program_options {
-// #define BOOST_UTF8_END_NAMESPACE }}
-// #define BOOST_UTF8_DECL BOOST_PROGRAM_OPTIONS_DECL
-// #include <boost/detail/utf8_codecvt_facet.ipp>
-//
-// Essentially, each library will have its own copy of utf8 code, in
-// different namespaces.
-
-// Note:(Robert Ramey). I have made the following alterations in the original
-// code.
-// a) Rendered utf8_codecvt<wchar_t, char> with using templates
-// b) Move longer functions outside class definition to prevent inlining
-// and make code smaller
-// c) added on a derived class to permit translation to/from current
-// locale to utf8
-
-// See http://www.boost.org for updates, documentation, and revision history.
-
-// archives stored as text - note these ar templated on the basic
-// stream templates to accommodate wide (and other?) kind of characters
-//
-// note the fact that on libraries without wide characters, ostream is
-// is not a specialization of basic_ostream which in fact is not defined
-// in such cases. So we can't use basic_ostream<OStream::char_type> but rather
-// use two template parameters
-//
-// utf8_codecvt_facet
-// This is an implementation of a std::codecvt facet for translating
-// from UTF-8 externally to UCS-4. Note that this is not tied to
-// any specific types in order to allow customization on platforms
-// where wchar_t is not big enough.
-//
-// NOTES: The current implementation jumps through some unpleasant hoops in
-// order to deal with signed character types. As a std::codecvt_base::result,
-// it is necessary for the ExternType to be convertible to unsigned char.
-// I chose not to tie the extern_type explicitly to char. But if any combination
-// of types other than <wchar_t,char_t> is used, then std::codecvt must be
-// specialized on those types for this to work.
-
-#include <locale>
-#include <cwchar> // for mbstate_t
-#include <cstddef> // for std::size_t
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#if defined(BOOST_NO_STDC_NAMESPACE)
-namespace std {
- using ::mbstate_t;
- using ::size_t;
-}
-#endif
-
-// maximum lenght of a multibyte string
-#define MB_LENGTH_MAX 8
-
-BOOST_UTF8_BEGIN_NAMESPACE
-
-//----------------------------------------------------------------------------//
-// //
-// utf8_codecvt_facet //
-// //
-// See utf8_codecvt_facet.ipp for the implementation. //
-//----------------------------------------------------------------------------//
-
-#ifndef BOOST_UTF8_DECL
-#define BOOST_UTF8_DECL
-#endif
-
-struct BOOST_UTF8_DECL utf8_codecvt_facet :
- public std::codecvt<wchar_t, char, std::mbstate_t>
-{
-public:
- explicit utf8_codecvt_facet(std::size_t no_locale_manage=0);
- virtual ~utf8_codecvt_facet();
-protected:
- virtual std::codecvt_base::result do_in(
- std::mbstate_t& state,
- const char * from,
- const char * from_end,
- const char * & from_next,
- wchar_t * to,
- wchar_t * to_end,
- wchar_t*& to_next
- ) const;
-
- virtual std::codecvt_base::result do_out(
- std::mbstate_t & state,
- const wchar_t * from,
- const wchar_t * from_end,
- const wchar_t* & from_next,
- char * to,
- char * to_end,
- char * & to_next
- ) const;
-
- bool invalid_continuing_octet(unsigned char octet_1) const {
- return (octet_1 < 0x80|| 0xbf< octet_1);
- }
-
- bool invalid_leading_octet(unsigned char octet_1) const {
- return (0x7f < octet_1 && octet_1 < 0xc0) ||
- (octet_1 > 0xfd);
- }
-
- // continuing octets = octets except for the leading octet
- static unsigned int get_cont_octet_count(unsigned char lead_octet) {
- return get_octet_count(lead_octet) - 1;
- }
-
- static unsigned int get_octet_count(unsigned char lead_octet);
-
- // How many "continuing octets" will be needed for this word
- // == total octets - 1.
- int get_cont_octet_out_count(wchar_t word) const ;
-
- virtual bool do_always_noconv() const BOOST_NOEXCEPT_OR_NOTHROW {
- return false;
- }
-
- // UTF-8 isn't really stateful since we rewind on partial conversions
- virtual std::codecvt_base::result do_unshift(
- std::mbstate_t&,
- char * from,
- char * /*to*/,
- char * & next
- ) const {
- next = from;
- return ok;
- }
-
- virtual int do_encoding() const BOOST_NOEXCEPT_OR_NOTHROW {
- const int variable_byte_external_encoding=0;
- return variable_byte_external_encoding;
- }
-
- // How many char objects can I process to get <= max_limit
- // wchar_t objects?
- virtual int do_length(
- std::mbstate_t &,
- const char * from,
- const char * from_end,
- std::size_t max_limit
- ) const
-#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
- throw()
-#endif
- ;
-
- // Nonstandard override
- virtual int do_length(
- const std::mbstate_t & s,
- const char * from,
- const char * from_end,
- std::size_t max_limit
- ) const
-#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
- throw()
-#endif
- {
- return do_length(
- const_cast<std::mbstate_t &>(s),
- from,
- from_end,
- max_limit
- );
- }
-
- // Largest possible value do_length(state,from,from_end,1) could return.
- virtual int do_max_length() const BOOST_NOEXCEPT_OR_NOTHROW {
- return 6; // largest UTF-8 encoding of a UCS-4 character
- }
-};
-
-BOOST_UTF8_END_NAMESPACE
-
-#endif // BOOST_UTF8_CODECVT_FACET_HPP
diff --git a/src/third_party/boost-1.69.0/boost/detail/utf8_codecvt_facet.ipp b/src/third_party/boost-1.69.0/boost/detail/utf8_codecvt_facet.ipp
deleted file mode 100644
index 24eb61aa2d9..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/utf8_codecvt_facet.ipp
+++ /dev/null
@@ -1,292 +0,0 @@
-/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
-// utf8_codecvt_facet.ipp
-
-// Copyright (c) 2001 Ronald Garcia, Indiana University (garcia@osl.iu.edu)
-// Andrew Lumsdaine, Indiana University (lums@osl.iu.edu).
-// 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)
-
-// Please see the comments in <boost/detail/utf8_codecvt_facet.hpp> to
-// learn how this file should be used.
-
-#include <boost/detail/utf8_codecvt_facet.hpp>
-
-#include <cstdlib> // for multi-byte converson routines
-#include <cassert>
-
-#include <boost/limits.hpp>
-#include <boost/config.hpp>
-
-// If we don't have wstring, then Unicode support
-// is not available anyway, so we don't need to even
-// compiler this file. This also fixes the problem
-// with mingw, which can compile this file, but will
-// generate link error when building DLL.
-#ifndef BOOST_NO_STD_WSTRING
-
-BOOST_UTF8_BEGIN_NAMESPACE
-
-/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
-// implementation for wchar_t
-
-utf8_codecvt_facet::utf8_codecvt_facet(
- std::size_t no_locale_manage
-) :
- std::codecvt<wchar_t, char, std::mbstate_t>(no_locale_manage)
-{}
-
-utf8_codecvt_facet::~utf8_codecvt_facet()
-{}
-
-// Translate incoming UTF-8 into UCS-4
-std::codecvt_base::result utf8_codecvt_facet::do_in(
- std::mbstate_t& /*state*/,
- const char * from,
- const char * from_end,
- const char * & from_next,
- wchar_t * to,
- wchar_t * to_end,
- wchar_t * & to_next
-) const {
- // Basic algorithm: The first octet determines how many
- // octets total make up the UCS-4 character. The remaining
- // "continuing octets" all begin with "10". To convert, subtract
- // the amount that specifies the number of octets from the first
- // octet. Subtract 0x80 (1000 0000) from each continuing octet,
- // then mash the whole lot together. Note that each continuing
- // octet only uses 6 bits as unique values, so only shift by
- // multiples of 6 to combine.
- while (from != from_end && to != to_end) {
-
- // Error checking on the first octet
- if (invalid_leading_octet(*from)){
- from_next = from;
- to_next = to;
- return std::codecvt_base::error;
- }
-
- // The first octet is adjusted by a value dependent upon
- // the number of "continuing octets" encoding the character
- const int cont_octet_count = get_cont_octet_count(*from);
- const wchar_t octet1_modifier_table[] = {
- 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc
- };
-
- // The unsigned char conversion is necessary in case char is
- // signed (I learned this the hard way)
- wchar_t ucs_result =
- (unsigned char)(*from++) - octet1_modifier_table[cont_octet_count];
-
- // Invariants :
- // 1) At the start of the loop, 'i' continuing characters have been
- // processed
- // 2) *from points to the next continuing character to be processed.
- int i = 0;
- while(i != cont_octet_count && from != from_end) {
-
- // Error checking on continuing characters
- if (invalid_continuing_octet(*from)) {
- from_next = from;
- to_next = to;
- return std::codecvt_base::error;
- }
-
- ucs_result *= (1 << 6);
-
- // each continuing character has an extra (10xxxxxx)b attached to
- // it that must be removed.
- ucs_result += (unsigned char)(*from++) - 0x80;
- ++i;
- }
-
- // If the buffer ends with an incomplete unicode character...
- if (from == from_end && i != cont_octet_count) {
- // rewind "from" to before the current character translation
- from_next = from - (i+1);
- to_next = to;
- return std::codecvt_base::partial;
- }
- *to++ = ucs_result;
- }
- from_next = from;
- to_next = to;
-
- // Were we done converting or did we run out of destination space?
- if(from == from_end) return std::codecvt_base::ok;
- else return std::codecvt_base::partial;
-}
-
-std::codecvt_base::result utf8_codecvt_facet::do_out(
- std::mbstate_t& /*state*/,
- const wchar_t * from,
- const wchar_t * from_end,
- const wchar_t * & from_next,
- char * to,
- char * to_end,
- char * & to_next
-) const
-{
- // RG - consider merging this table with the other one
- const wchar_t octet1_modifier_table[] = {
- 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc
- };
-
- wchar_t max_wchar = (std::numeric_limits<wchar_t>::max)();
- while (from != from_end && to != to_end) {
-
- // Check for invalid UCS-4 character
- if (*from > max_wchar) {
- from_next = from;
- to_next = to;
- return std::codecvt_base::error;
- }
-
- int cont_octet_count = get_cont_octet_out_count(*from);
-
- // RG - comment this formula better
- int shift_exponent = (cont_octet_count) * 6;
-
- // Process the first character
- *to++ = static_cast<char>(octet1_modifier_table[cont_octet_count] +
- (unsigned char)(*from / (1 << shift_exponent)));
-
- // Process the continuation characters
- // Invariants: At the start of the loop:
- // 1) 'i' continuing octets have been generated
- // 2) '*to' points to the next location to place an octet
- // 3) shift_exponent is 6 more than needed for the next octet
- int i = 0;
- while (i != cont_octet_count && to != to_end) {
- shift_exponent -= 6;
- *to++ = static_cast<char>(0x80 + ((*from / (1 << shift_exponent)) % (1 << 6)));
- ++i;
- }
- // If we filled up the out buffer before encoding the character
- if(to == to_end && i != cont_octet_count) {
- from_next = from;
- to_next = to - (i+1);
- return std::codecvt_base::partial;
- }
- ++from;
- }
- from_next = from;
- to_next = to;
- // Were we done or did we run out of destination space
- if(from == from_end) return std::codecvt_base::ok;
- else return std::codecvt_base::partial;
-}
-
-// How many char objects can I process to get <= max_limit
-// wchar_t objects?
-int utf8_codecvt_facet::do_length(
- std::mbstate_t &,
- const char * from,
- const char * from_end,
- std::size_t max_limit
-) const
-#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
- throw()
-#endif
-{
- // RG - this code is confusing! I need a better way to express it.
- // and test cases.
-
- // Invariants:
- // 1) last_octet_count has the size of the last measured character
- // 2) char_count holds the number of characters shown to fit
- // within the bounds so far (no greater than max_limit)
- // 3) from_next points to the octet 'last_octet_count' before the
- // last measured character.
- int last_octet_count=0;
- std::size_t char_count = 0;
- const char* from_next = from;
- // Use "<" because the buffer may represent incomplete characters
- while (from_next+last_octet_count <= from_end && char_count <= max_limit) {
- from_next += last_octet_count;
- last_octet_count = (get_octet_count(*from_next));
- ++char_count;
- }
- return static_cast<int>(from_next-from);
-}
-
-unsigned int utf8_codecvt_facet::get_octet_count(
- unsigned char lead_octet
-){
- // if the 0-bit (MSB) is 0, then 1 character
- if (lead_octet <= 0x7f) return 1;
-
- // Otherwise the count number of consecutive 1 bits starting at MSB
-// assert(0xc0 <= lead_octet && lead_octet <= 0xfd);
-
- if (0xc0 <= lead_octet && lead_octet <= 0xdf) return 2;
- else if (0xe0 <= lead_octet && lead_octet <= 0xef) return 3;
- else if (0xf0 <= lead_octet && lead_octet <= 0xf7) return 4;
- else if (0xf8 <= lead_octet && lead_octet <= 0xfb) return 5;
- else return 6;
-}
-
-namespace detail {
-
-template<std::size_t s>
-int get_cont_octet_out_count_impl(wchar_t word){
- if (word < 0x80) {
- return 0;
- }
- if (word < 0x800) {
- return 1;
- }
- return 2;
-}
-
-template<>
-int get_cont_octet_out_count_impl<4>(wchar_t word){
- if (word < 0x80) {
- return 0;
- }
- if (word < 0x800) {
- return 1;
- }
-
- // Note that the following code will generate warnings on some platforms
- // where wchar_t is defined as UCS2. The warnings are superfluous as the
- // specialization is never instantitiated with such compilers, but this
- // can cause problems if warnings are being treated as errors, so we guard
- // against that. Including <boost/detail/utf8_codecvt_facet.hpp> as we do
- // should be enough to get WCHAR_MAX defined.
-#if !defined(WCHAR_MAX)
-# error WCHAR_MAX not defined!
-#endif
- // cope with VC++ 7.1 or earlier having invalid WCHAR_MAX
-#if defined(_MSC_VER) && _MSC_VER <= 1310 // 7.1 or earlier
- return 2;
-#elif WCHAR_MAX > 0x10000
-
- if (word < 0x10000) {
- return 2;
- }
- if (word < 0x200000) {
- return 3;
- }
- if (word < 0x4000000) {
- return 4;
- }
- return 5;
-
-#else
- return 2;
-#endif
-}
-
-} // namespace detail
-
-// How many "continuing octets" will be needed for this word
-// == total octets - 1.
-int utf8_codecvt_facet::get_cont_octet_out_count(
- wchar_t word
-) const {
- return detail::get_cont_octet_out_count_impl<sizeof(wchar_t)>(word);
-}
-BOOST_UTF8_END_NAMESPACE
-
-#endif
diff --git a/src/third_party/boost-1.69.0/boost/detail/winapi/detail/deprecated_namespace.hpp b/src/third_party/boost-1.69.0/boost/detail/winapi/detail/deprecated_namespace.hpp
deleted file mode 100644
index 40c9152704b..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/winapi/detail/deprecated_namespace.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright 2017 Andrey Semashev
- *
- * Distributed under the Boost Software License, Version 1.0.
- * See http://www.boost.org/LICENSE_1_0.txt
- *
- * This header is deprecated, it provides the deprecated namespace for backward compatibility.
- */
-
-#ifndef BOOST_DETAIL_WINAPI_DETAIL_DEPRECATED_NAMESPACE_HPP_INCLUDED_
-#define BOOST_DETAIL_WINAPI_DETAIL_DEPRECATED_NAMESPACE_HPP_INCLUDED_
-
-#include <boost/config.hpp>
-
-#ifdef BOOST_HAS_PRAGMA_ONCE
-#pragma once
-#endif
-
-namespace boost {
-namespace winapi {}
-namespace detail {
-namespace winapi {
-using namespace boost::winapi;
-} // namespace winapi
-} // namespace detail
-} // namespace boost
-
-#endif // BOOST_DETAIL_WINAPI_DETAIL_DEPRECATED_NAMESPACE_HPP_INCLUDED_
diff --git a/src/third_party/boost-1.69.0/boost/detail/winapi/get_current_process.hpp b/src/third_party/boost-1.69.0/boost/detail/winapi/get_current_process.hpp
deleted file mode 100644
index b6a79150281..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/winapi/get_current_process.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright 2017 Andrey Semashev
- *
- * Distributed under the Boost Software License, Version 1.0.
- * See http://www.boost.org/LICENSE_1_0.txt
- *
- * This header is deprecated, use boost/winapi/get_current_process.hpp instead.
- */
-
-#ifndef BOOST_DETAIL_WINAPI_GET_CURRENT_PROCESS_HPP
-#define BOOST_DETAIL_WINAPI_GET_CURRENT_PROCESS_HPP
-
-#include <boost/winapi/get_current_process.hpp>
-#include <boost/detail/winapi/detail/deprecated_namespace.hpp>
-
-#ifdef BOOST_HAS_PRAGMA_ONCE
-#pragma once
-#endif
-
-#endif // BOOST_DETAIL_WINAPI_GET_CURRENT_PROCESS_HPP
diff --git a/src/third_party/boost-1.69.0/boost/detail/winapi/get_current_thread.hpp b/src/third_party/boost-1.69.0/boost/detail/winapi/get_current_thread.hpp
deleted file mode 100644
index f9a27c3e6ec..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/winapi/get_current_thread.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright 2017 Andrey Semashev
- *
- * Distributed under the Boost Software License, Version 1.0.
- * See http://www.boost.org/LICENSE_1_0.txt
- *
- * This header is deprecated, use boost/winapi/get_current_thread.hpp instead.
- */
-
-#ifndef BOOST_DETAIL_WINAPI_GET_CURRENT_THREAD_HPP
-#define BOOST_DETAIL_WINAPI_GET_CURRENT_THREAD_HPP
-
-#include <boost/winapi/get_current_thread.hpp>
-#include <boost/detail/winapi/detail/deprecated_namespace.hpp>
-
-#ifdef BOOST_HAS_PRAGMA_ONCE
-#pragma once
-#endif
-
-#endif // BOOST_DETAIL_WINAPI_GET_CURRENT_THREAD_HPP
diff --git a/src/third_party/boost-1.69.0/boost/detail/winapi/get_last_error.hpp b/src/third_party/boost-1.69.0/boost/detail/winapi/get_last_error.hpp
deleted file mode 100644
index f76a008e080..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/winapi/get_last_error.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright 2017 Andrey Semashev
- *
- * Distributed under the Boost Software License, Version 1.0.
- * See http://www.boost.org/LICENSE_1_0.txt
- *
- * This header is deprecated, use boost/winapi/get_last_error.hpp instead.
- */
-
-#ifndef BOOST_DETAIL_WINAPI_GET_LAST_ERROR_HPP
-#define BOOST_DETAIL_WINAPI_GET_LAST_ERROR_HPP
-
-#include <boost/winapi/get_last_error.hpp>
-#include <boost/detail/winapi/detail/deprecated_namespace.hpp>
-
-#ifdef BOOST_HAS_PRAGMA_ONCE
-#pragma once
-#endif
-
-#endif // BOOST_DETAIL_WINAPI_GET_LAST_ERROR_HPP
diff --git a/src/third_party/boost-1.69.0/boost/detail/winapi/get_process_times.hpp b/src/third_party/boost-1.69.0/boost/detail/winapi/get_process_times.hpp
deleted file mode 100644
index 6babb3919d8..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/winapi/get_process_times.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright 2017 Andrey Semashev
- *
- * Distributed under the Boost Software License, Version 1.0.
- * See http://www.boost.org/LICENSE_1_0.txt
- *
- * This header is deprecated, use boost/winapi/get_process_times.hpp instead.
- */
-
-#ifndef BOOST_DETAIL_WINAPI_GET_PROCESS_TIMES_HPP
-#define BOOST_DETAIL_WINAPI_GET_PROCESS_TIMES_HPP
-
-#include <boost/winapi/get_process_times.hpp>
-#include <boost/detail/winapi/detail/deprecated_namespace.hpp>
-
-#ifdef BOOST_HAS_PRAGMA_ONCE
-#pragma once
-#endif
-
-#endif // BOOST_DETAIL_WINAPI_GET_PROCESS_TIMES_HPP
diff --git a/src/third_party/boost-1.69.0/boost/detail/winapi/get_thread_times.hpp b/src/third_party/boost-1.69.0/boost/detail/winapi/get_thread_times.hpp
deleted file mode 100644
index 96f1fac8f37..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/winapi/get_thread_times.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright 2017 Andrey Semashev
- *
- * Distributed under the Boost Software License, Version 1.0.
- * See http://www.boost.org/LICENSE_1_0.txt
- *
- * This header is deprecated, use boost/winapi/get_thread_times.hpp instead.
- */
-
-#ifndef BOOST_DETAIL_WINAPI_GET_THREAD_TIMES_HPP
-#define BOOST_DETAIL_WINAPI_GET_THREAD_TIMES_HPP
-
-#include <boost/winapi/get_thread_times.hpp>
-#include <boost/detail/winapi/detail/deprecated_namespace.hpp>
-
-#ifdef BOOST_HAS_PRAGMA_ONCE
-#pragma once
-#endif
-
-#endif // BOOST_DETAIL_WINAPI_GET_THREAD_TIMES_HPP
diff --git a/src/third_party/boost-1.69.0/boost/detail/winapi/time.hpp b/src/third_party/boost-1.69.0/boost/detail/winapi/time.hpp
deleted file mode 100644
index a6d728a5a03..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/winapi/time.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright 2017 Andrey Semashev
- *
- * Distributed under the Boost Software License, Version 1.0.
- * See http://www.boost.org/LICENSE_1_0.txt
- *
- * This header is deprecated, use boost/winapi/time.hpp instead.
- */
-
-#ifndef BOOST_DETAIL_WINAPI_TIME_HPP_
-#define BOOST_DETAIL_WINAPI_TIME_HPP_
-
-#include <boost/winapi/time.hpp>
-#include <boost/detail/winapi/detail/deprecated_namespace.hpp>
-
-#ifdef BOOST_HAS_PRAGMA_ONCE
-#pragma once
-#endif
-
-#endif // BOOST_DETAIL_WINAPI_TIME_HPP_
diff --git a/src/third_party/boost-1.69.0/boost/detail/winapi/timers.hpp b/src/third_party/boost-1.69.0/boost/detail/winapi/timers.hpp
deleted file mode 100644
index 4b874e249d1..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/winapi/timers.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright 2017 Andrey Semashev
- *
- * Distributed under the Boost Software License, Version 1.0.
- * See http://www.boost.org/LICENSE_1_0.txt
- *
- * This header is deprecated, use boost/winapi/timers.hpp instead.
- */
-
-#ifndef BOOST_DETAIL_WINAPI_TIMERS_HPP
-#define BOOST_DETAIL_WINAPI_TIMERS_HPP
-
-#include <boost/winapi/timers.hpp>
-#include <boost/detail/winapi/detail/deprecated_namespace.hpp>
-
-#ifdef BOOST_HAS_PRAGMA_ONCE
-#pragma once
-#endif
-
-#endif // BOOST_DETAIL_WINAPI_TIMERS_HPP
diff --git a/src/third_party/boost-1.69.0/boost/detail/workaround.hpp b/src/third_party/boost-1.69.0/boost/detail/workaround.hpp
deleted file mode 100644
index fb961158804..00000000000
--- a/src/third_party/boost-1.69.0/boost/detail/workaround.hpp
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright David Abrahams 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 WORKAROUND_DWA2002126_HPP
-#define WORKAROUND_DWA2002126_HPP
-
-#include <boost/config/workaround.hpp>
-
-#endif // WORKAROUND_DWA2002126_HPP