diff options
Diffstat (limited to 'src/third_party/boost-1.69.0/boost/detail')
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 |