aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrobot-contrib <robot-contrib@yandex-team.com>2022-08-10 16:40:38 +0300
committerrobot-contrib <robot-contrib@yandex-team.com>2022-08-10 16:40:38 +0300
commit36029f20e99f6219d4fb0822e0d613a9d6a57aac (patch)
tree8945b9fcdf3e570673f912a26780826404c2685f
parent8c70d6f947c5f278c665b548cd583e9844e6d7ad (diff)
downloadydb-36029f20e99f6219d4fb0822e0d613a9d6a57aac.tar.gz
Update contrib/restricted/boost/type_index to 1.79.0
-rw-r--r--contrib/restricted/boost/timer/include/boost/timer.hpp3
-rw-r--r--contrib/restricted/boost/timer/include/boost/timer/config.hpp15
-rw-r--r--contrib/restricted/boost/timer/include/boost/timer/timer.hpp2
-rw-r--r--contrib/restricted/boost/timer/src/cpu_timer.cpp33
-rw-r--r--contrib/restricted/boost/type_index/README.md14
-rw-r--r--contrib/restricted/boost/type_index/include/boost/type_index.hpp2
-rw-r--r--contrib/restricted/boost/type_index/include/boost/type_index/ctti_type_index.hpp2
-rw-r--r--contrib/restricted/boost/type_index/include/boost/type_index/detail/compile_time_type_info.hpp72
-rw-r--r--contrib/restricted/boost/type_index/include/boost/type_index/detail/ctti_register_class.hpp2
-rw-r--r--contrib/restricted/boost/type_index/include/boost/type_index/detail/stl_register_class.hpp2
-rw-r--r--contrib/restricted/boost/type_index/include/boost/type_index/stl_type_index.hpp42
-rw-r--r--contrib/restricted/boost/type_index/include/boost/type_index/type_index_facade.hpp2
12 files changed, 114 insertions, 77 deletions
diff --git a/contrib/restricted/boost/timer/include/boost/timer.hpp b/contrib/restricted/boost/timer/include/boost/timer.hpp
index 1e3571e4177..f3ddb41f6c1 100644
--- a/contrib/restricted/boost/timer/include/boost/timer.hpp
+++ b/contrib/restricted/boost/timer/include/boost/timer.hpp
@@ -17,6 +17,9 @@
#ifndef BOOST_TIMER_HPP
#define BOOST_TIMER_HPP
+#include <boost/config/header_deprecated.hpp>
+BOOST_HEADER_DEPRECATED( "the facilities in <boost/timer/timer.hpp>" )
+
#include <boost/config.hpp>
#include <ctime>
#include <boost/limits.hpp>
diff --git a/contrib/restricted/boost/timer/include/boost/timer/config.hpp b/contrib/restricted/boost/timer/include/boost/timer/config.hpp
index 0c2174c3064..a7c3d9d20e8 100644
--- a/contrib/restricted/boost/timer/include/boost/timer/config.hpp
+++ b/contrib/restricted/boost/timer/include/boost/timer/config.hpp
@@ -64,21 +64,6 @@
#endif // !defined(BOOST_CHRONO_NO_LIB)
-// Plus, Chrono uses System, so we need to link that too
-
-#if !defined(BOOST_SYSTEM_NO_LIB)
-
-#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SYSTEM_DYN_LINK)
-# define BOOST_DYN_LINK
-#endif
-
-#define BOOST_LIB_NAME boost_system
-
-#include <boost/config/auto_link.hpp>
-
-#endif // !defined(BOOST_SYSTEM_NO_LIB)
-
#endif // auto-linking disabled
#endif // BOOST_TIMER_CONFIG_HPP
-
diff --git a/contrib/restricted/boost/timer/include/boost/timer/timer.hpp b/contrib/restricted/boost/timer/include/boost/timer/timer.hpp
index 3c6492086d4..8bf996081d0 100644
--- a/contrib/restricted/boost/timer/include/boost/timer/timer.hpp
+++ b/contrib/restricted/boost/timer/include/boost/timer/timer.hpp
@@ -8,8 +8,6 @@
#ifndef BOOST_TIMER_TIMER_HPP
#define BOOST_TIMER_TIMER_HPP
-#include <boost/config/warning_disable.hpp>
-
#include <boost/timer/config.hpp>
#include <boost/cstdint.hpp>
#include <string>
diff --git a/contrib/restricted/boost/timer/src/cpu_timer.cpp b/contrib/restricted/boost/timer/src/cpu_timer.cpp
index 0802e985609..36b2ac40726 100644
--- a/contrib/restricted/boost/timer/src/cpu_timer.cpp
+++ b/contrib/restricted/boost/timer/src/cpu_timer.cpp
@@ -18,6 +18,7 @@
#include <boost/io/ios_state.hpp>
#include <boost/throw_exception.hpp>
#include <boost/cerrno.hpp>
+#include <boost/predef.h>
#include <cstring>
#include <sstream>
#include <cassert>
@@ -33,7 +34,6 @@
using boost::timer::nanosecond_type;
using boost::timer::cpu_times;
-using boost::system::error_code;
namespace
{
@@ -94,24 +94,25 @@ namespace
}
# if defined(BOOST_POSIX_API)
+
+ boost::int_least64_t tick_factor_()
+ {
+ boost::int_least64_t tf = ::sysconf( _SC_CLK_TCK );
+ if( tf <= 0 ) return -1;
+
+ tf = INT64_C(1000000000) / tf; // compute factor
+ if( tf == 0 ) tf = -1;
+
+ return tf;
+ }
+
boost::int_least64_t tick_factor() // multiplier to convert ticks
// to nanoseconds; -1 if unknown
{
- static boost::int_least64_t tick_factor = 0;
- if (!tick_factor)
- {
- if ((tick_factor = ::sysconf(_SC_CLK_TCK)) <= 0)
- tick_factor = -1;
- else
- {
- assert(tick_factor <= INT64_C(1000000000)); // logic doesn't handle large ticks
- tick_factor = INT64_C(1000000000) / tick_factor; // compute factor
- if (!tick_factor)
- tick_factor = -1;
- }
- }
- return tick_factor;
+ static boost::int_least64_t tf = tick_factor_();
+ return tf;
}
+
# endif
void get_cpu_times(boost::timer::cpu_times& current)
@@ -122,6 +123,7 @@ namespace
# if defined(BOOST_WINDOWS_API)
+# if BOOST_PLAT_WINDOWS_DESKTOP || defined(__CYGWIN__)
FILETIME creation, exit;
if (::GetProcessTimes(::GetCurrentProcess(), &creation, &exit,
(LPFILETIME)&current.system, (LPFILETIME)&current.user))
@@ -130,6 +132,7 @@ namespace
current.system *= 100;
}
else
+# endif
{
current.system = current.user = boost::timer::nanosecond_type(-1);
}
diff --git a/contrib/restricted/boost/type_index/README.md b/contrib/restricted/boost/type_index/README.md
index 19db50381a4..aebd9e84eaa 100644
--- a/contrib/restricted/boost/type_index/README.md
+++ b/contrib/restricted/boost/type_index/README.md
@@ -1,18 +1,16 @@
-# [Boost.TypeIndex](http://boost.org/libs/type_index)
-Boost.TypeIndex is a part of the [Boost C++ Libraries](http://github.com/boostorg). It is a runtime/compile time copyable type info.
+# [Boost.TypeIndex](https://boost.org/libs/type_index)
+Boost.TypeIndex is a part of the [Boost C++ Libraries](https://github.com/boostorg). It is a runtime/compile time copyable type info.
### Test results
@ | Build | Tests coverage | More info
----------------|-------------- | -------------- |-----------
-Develop branch: | [![Build Status](https://travis-ci.org/apolukhin/type_index.svg?branch=develop)](https://travis-ci.org/apolukhin/type_index) [![Build status](https://ci.appveyor.com/api/projects/status/197a5imq10dqx6r8/branch/develop?svg=true)](https://ci.appveyor.com/project/apolukhin/type-index/branch/develop) | [![Coverage Status](https://coveralls.io/repos/apolukhin/type_index/badge.png?branch=develop)](https://coveralls.io/r/apolukhin/type_index?branch=develop) | [details...](http://www.boost.org/development/tests/develop/developer/type_index.html)
-Master branch: | [![Build Status](https://travis-ci.org/apolukhin/type_index.svg?branch=master)](https://travis-ci.org/apolukhin/type_index) [![Build status](https://ci.appveyor.com/api/projects/status/197a5imq10dqx6r8/branch/master?svg=true)](https://ci.appveyor.com/project/apolukhin/type-index/branch/master) | [![Coverage Status](https://coveralls.io/repos/apolukhin/type_index/badge.png?branch=master)](https://coveralls.io/r/apolukhin/type_index?branch=master) | [details...](http://www.boost.org/development/tests/master/developer/type_index.html)
+Develop branch: | [![CI](https://github.com/boostorg/type_index/actions/workflows/ci.yml/badge.svg?branch=develop)](https://github.com/boostorg/type_index/actions/workflows/ci.yml) [![Build status](https://ci.appveyor.com/api/projects/status/197a5imq10dqx6r8/branch/develop?svg=true)](https://ci.appveyor.com/project/apolukhin/type-index/branch/develop) | [![Coverage Status](https://coveralls.io/repos/apolukhin/type_index/badge.png?branch=develop)](https://coveralls.io/r/apolukhin/type_index?branch=develop) | [details...](https://www.boost.org/development/tests/develop/developer/type_index.html)
+Master branch: | [![CI](https://github.com/boostorg/type_index/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/boostorg/type_index/actions/workflows/ci.yml) [![Build status](https://ci.appveyor.com/api/projects/status/197a5imq10dqx6r8/branch/master?svg=true)](https://ci.appveyor.com/project/apolukhin/type-index/branch/master) | [![Coverage Status](https://coveralls.io/repos/apolukhin/type_index/badge.png?branch=master)](https://coveralls.io/r/apolukhin/type_index?branch=master) | [details...](https://www.boost.org/development/tests/master/developer/type_index.html)
-[Open Issues](https://svn.boost.org/trac/boost/query?status=!closed&component=type_index)
-
-[Latest developer documentation](http://boostorg.github.com/type_index/index.html)
+[Latest developer documentation](https://www.boost.org/doc/libs/develop/doc/html/boost_typeindex.html)
### License
-Distributed under the [Boost Software License, Version 1.0](http://boost.org/LICENSE_1_0.txt).
+Distributed under the [Boost Software License, Version 1.0](https://boost.org/LICENSE_1_0.txt).
diff --git a/contrib/restricted/boost/type_index/include/boost/type_index.hpp b/contrib/restricted/boost/type_index/include/boost/type_index.hpp
index 5311ac87956..7f06cef6872 100644
--- a/contrib/restricted/boost/type_index/include/boost/type_index.hpp
+++ b/contrib/restricted/boost/type_index/include/boost/type_index.hpp
@@ -1,5 +1,5 @@
//
-// Copyright (c) Antony Polukhin, 2012-2018.
+// Copyright 2012-2022 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)
diff --git a/contrib/restricted/boost/type_index/include/boost/type_index/ctti_type_index.hpp b/contrib/restricted/boost/type_index/include/boost/type_index/ctti_type_index.hpp
index a59b2d80a7f..9a47eb346bb 100644
--- a/contrib/restricted/boost/type_index/include/boost/type_index/ctti_type_index.hpp
+++ b/contrib/restricted/boost/type_index/include/boost/type_index/ctti_type_index.hpp
@@ -1,5 +1,5 @@
//
-// Copyright (c) Antony Polukhin, 2013-2018.
+// Copyright 2013-2022 Antony Polukhin.
//
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
diff --git a/contrib/restricted/boost/type_index/include/boost/type_index/detail/compile_time_type_info.hpp b/contrib/restricted/boost/type_index/include/boost/type_index/detail/compile_time_type_info.hpp
index 4eb2017ffc2..f89765dd7ea 100644
--- a/contrib/restricted/boost/type_index/include/boost/type_index/detail/compile_time_type_info.hpp
+++ b/contrib/restricted/boost/type_index/include/boost/type_index/detail/compile_time_type_info.hpp
@@ -1,5 +1,5 @@
//
-// Copyright (c) Antony Polukhin, 2012-2016.
+// Copyright 2012-2022 Antony Polukhin.
//
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -13,15 +13,28 @@
/// \brief Contains helper macros and implementation details of boost::typeindex::ctti_type_index.
/// Not intended for inclusion from user's code.
+#include <cstring>
#include <boost/config.hpp>
#include <boost/static_assert.hpp>
-#include <boost/mpl/bool.hpp>
+#include <boost/type_traits/integral_constant.hpp>
#ifdef BOOST_HAS_PRAGMA_ONCE
# pragma once
#endif
/// @cond
+#if defined(__has_builtin)
+#if __has_builtin(__builtin_constant_p)
+#define BOOST_TYPE_INDEX_DETAIL_IS_CONSTANT(x) __builtin_constant_p(x)
+#endif
+#if __has_builtin(__builtin_strcmp)
+#define BOOST_TYPE_INDEX_DETAIL_BUILTIN_STRCMP(str1, str2) __builtin_strcmp(str1, str2)
+#endif
+#elif defined(__GNUC__)
+#define BOOST_TYPE_INDEX_DETAIL_IS_CONSTANT(x) __builtin_constant_p(x)
+#define BOOST_TYPE_INDEX_DETAIL_BUILTIN_STRCMP(str1, str2) __builtin_strcmp(str1, str2)
+#endif
+
#define BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(begin_skip, end_skip, runtime_skip, runtime_skip_until) \
namespace boost { namespace typeindex { namespace detail { \
BOOST_STATIC_CONSTEXPR std::size_t ctti_skip_size_at_begin = begin_skip; \
@@ -38,10 +51,10 @@
#elif defined(BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING)
# include <boost/preprocessor/facilities/expand.hpp>
BOOST_PP_EXPAND( BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING )
-#elif defined(_MSC_VER) && defined (BOOST_NO_CXX11_NOEXCEPT)
+#elif defined(_MSC_VER) && !defined(__clang__) && defined (BOOST_NO_CXX11_NOEXCEPT)
// sizeof("const char *__cdecl boost::detail::ctti<") - 1, sizeof(">::n(void)") - 1
BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(40, 10, false, "")
-#elif defined(_MSC_VER) && !defined (BOOST_NO_CXX11_NOEXCEPT)
+#elif defined(_MSC_VER) && !defined(__clang__) && !defined (BOOST_NO_CXX11_NOEXCEPT)
// sizeof("const char *__cdecl boost::detail::ctti<") - 1, sizeof(">::n(void) noexcept") - 1
BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(40, 19, false, "")
#elif defined(__clang__) && defined(__APPLE__)
@@ -59,6 +72,14 @@
// sizeof("static const char *boost::detail::ctti<") - 1, sizeof("]") - 1, true, "int>::n() [T = int"
// note: checked on 3.1, 3.4
BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(39, 1, true, "T = ")
+#elif defined(__EDG__) && !defined(BOOST_NO_CXX14_CONSTEXPR)
+ // sizeof("static cha boost::detail::ctti<T>::s() [with I = 40U, T = ") - 1, sizeof("]") - 1
+ // note: checked on 4.14
+ BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(58, 1, false, "")
+#elif defined(__EDG__) && defined(BOOST_NO_CXX14_CONSTEXPR)
+ // sizeof("static const char *boost::detail::ctti<T>::n() [with T = ") - 1, sizeof("]") - 1
+ // note: checked on 4.14
+ BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(57, 1, false, "")
#elif defined(__GNUC__) && (__GNUC__ < 7) && !defined(BOOST_NO_CXX14_CONSTEXPR)
// sizeof("static constexpr char boost::detail::ctti<T>::s() [with unsigned int I = 0u; T = ") - 1, sizeof("]") - 1
BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(81, 1, false, "")
@@ -68,6 +89,9 @@
#elif defined(__GNUC__) && defined(BOOST_NO_CXX14_CONSTEXPR)
// sizeof("static const char* boost::detail::ctti<T>::n() [with T = ") - 1, sizeof("]") - 1
BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(57, 1, false, "")
+#elif defined(__ghs__)
+ // sizeof("static const char *boost::detail::ctti<T>::n() [with T = ") - 1, sizeof("]") - 1
+ BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(57, 1, false, "")
#else
// Deafult code for other platforms... Just skip nothing!
BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(0, 0, false, "")
@@ -97,8 +121,19 @@ namespace boost { namespace typeindex { namespace detail {
);
}
+#if defined(BOOST_TYPE_INDEX_DETAIL_IS_CONSTANT)
+ BOOST_CXX14_CONSTEXPR BOOST_FORCEINLINE bool is_constant_string(const char* str) BOOST_NOEXCEPT {
+ while (BOOST_TYPE_INDEX_DETAIL_IS_CONSTANT(*str)) {
+ if (*str == '\0')
+ return true;
+ ++str;
+ }
+ return false;
+ }
+#endif // defined(BOOST_TYPE_INDEX_DETAIL_IS_CONSTANT)
+
template <unsigned int ArrayLength>
- BOOST_CXX14_CONSTEXPR inline const char* skip_begining_runtime(const char* begin, boost::mpl::false_) BOOST_NOEXCEPT {
+ BOOST_CXX14_CONSTEXPR inline const char* skip_begining_runtime(const char* begin, boost::false_type) BOOST_NOEXCEPT {
return begin;
}
@@ -130,17 +165,29 @@ namespace boost { namespace typeindex { namespace detail {
return last1;
}
- BOOST_CXX14_CONSTEXPR inline int constexpr_strcmp(const char *v1, const char *v2) BOOST_NOEXCEPT {
+ BOOST_CXX14_CONSTEXPR inline int constexpr_strcmp_loop(const char *v1, const char *v2) BOOST_NOEXCEPT {
while (*v1 != '\0' && *v1 == *v2) {
++v1;
++v2;
- };
+ }
return static_cast<int>(*v1) - *v2;
}
+ BOOST_CXX14_CONSTEXPR inline int constexpr_strcmp(const char *v1, const char *v2) BOOST_NOEXCEPT {
+#if !defined(BOOST_NO_CXX14_CONSTEXPR) && defined(BOOST_TYPE_INDEX_DETAIL_IS_CONSTANT) && defined(BOOST_TYPE_INDEX_DETAIL_BUILTIN_STRCMP)
+ if (boost::typeindex::detail::is_constant_string(v1) && boost::typeindex::detail::is_constant_string(v2))
+ return boost::typeindex::detail::constexpr_strcmp_loop(v1, v2);
+ return BOOST_TYPE_INDEX_DETAIL_BUILTIN_STRCMP(v1, v2);
+#elif !defined(BOOST_NO_CXX14_CONSTEXPR)
+ return boost::typeindex::detail::constexpr_strcmp_loop(v1, v2);
+#else
+ return std::strcmp(v1, v2);
+#endif
+ }
+
template <unsigned int ArrayLength>
- BOOST_CXX14_CONSTEXPR inline const char* skip_begining_runtime(const char* begin, boost::mpl::true_) BOOST_NOEXCEPT {
+ BOOST_CXX14_CONSTEXPR inline const char* skip_begining_runtime(const char* begin, boost::true_type) BOOST_NOEXCEPT {
const char* const it = constexpr_search(
begin, begin + ArrayLength,
ctti_skip_until_runtime, ctti_skip_until_runtime + sizeof(ctti_skip_until_runtime) - 1
@@ -153,7 +200,7 @@ namespace boost { namespace typeindex { namespace detail {
assert_compile_time_legths<(ArrayLength > ctti_skip_size_at_begin + ctti_skip_size_at_end)>();
return skip_begining_runtime<ArrayLength - ctti_skip_size_at_begin>(
begin + ctti_skip_size_at_begin,
- boost::mpl::bool_<ctti_skip_more_at_runtime>()
+ boost::integral_constant<bool, ctti_skip_more_at_runtime>()
);
}
@@ -249,7 +296,7 @@ struct ctti {
|| defined(__DMC__)
constexpr unsigned int size = sizeof(__PRETTY_FUNCTION__);
#else
- boost::typeindex::detail::failed_to_get_function_name();
+ boost::typeindex::detail::failed_to_get_function_name<T>();
#endif
boost::typeindex::detail::assert_compile_time_legths<
@@ -276,10 +323,11 @@ struct ctti {
|| (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) \
|| (defined(__ICC) && (__ICC >= 600)) \
|| defined(__ghs__) \
- || defined(__DMC__)
+ || defined(__DMC__) \
+ || defined(__clang__)
return boost::typeindex::detail::skip_begining< sizeof(__PRETTY_FUNCTION__) >(__PRETTY_FUNCTION__);
#else
- boost::typeindex::detail::failed_to_get_function_name();
+ boost::typeindex::detail::failed_to_get_function_name<T>();
return "";
#endif
}
diff --git a/contrib/restricted/boost/type_index/include/boost/type_index/detail/ctti_register_class.hpp b/contrib/restricted/boost/type_index/include/boost/type_index/detail/ctti_register_class.hpp
index a8cef2c4972..f527ec4f1e3 100644
--- a/contrib/restricted/boost/type_index/include/boost/type_index/detail/ctti_register_class.hpp
+++ b/contrib/restricted/boost/type_index/include/boost/type_index/detail/ctti_register_class.hpp
@@ -1,5 +1,5 @@
//
-// Copyright (c) Antony Polukhin, 2013-2014.
+// Copyright 2013-2022 Antony Polukhin.
//
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
diff --git a/contrib/restricted/boost/type_index/include/boost/type_index/detail/stl_register_class.hpp b/contrib/restricted/boost/type_index/include/boost/type_index/detail/stl_register_class.hpp
index 95a26f7b0ee..96d83e890ae 100644
--- a/contrib/restricted/boost/type_index/include/boost/type_index/detail/stl_register_class.hpp
+++ b/contrib/restricted/boost/type_index/include/boost/type_index/detail/stl_register_class.hpp
@@ -1,5 +1,5 @@
//
-// Copyright (c) Antony Polukhin, 2013-2014.
+// Copyright 2013-2022 Antony Polukhin.
//
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
diff --git a/contrib/restricted/boost/type_index/include/boost/type_index/stl_type_index.hpp b/contrib/restricted/boost/type_index/include/boost/type_index/stl_type_index.hpp
index 3a9834d6854..2cbb598d7d1 100644
--- a/contrib/restricted/boost/type_index/include/boost/type_index/stl_type_index.hpp
+++ b/contrib/restricted/boost/type_index/include/boost/type_index/stl_type_index.hpp
@@ -1,5 +1,5 @@
//
-// Copyright (c) Antony Polukhin, 2013-2018.
+// Copyright 2013-2022 Antony Polukhin.
//
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -32,21 +32,26 @@
#include <boost/static_assert.hpp>
#include <boost/throw_exception.hpp>
#include <boost/core/demangle.hpp>
+#include <boost/type_traits/conditional.hpp>
#include <boost/type_traits/is_const.hpp>
#include <boost/type_traits/is_reference.hpp>
#include <boost/type_traits/is_volatile.hpp>
#include <boost/type_traits/remove_cv.hpp>
#include <boost/type_traits/remove_reference.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/or.hpp>
-#include <boost/container_hash/hash.hpp>
+#if (defined(_MSC_VER) && _MSC_VER > 1600) \
+ || (defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ > 5 && defined(__GXX_EXPERIMENTAL_CXX0X__)) \
+ || (defined(__GNUC__) && __GNUC__ > 4 && __cplusplus >= 201103)
+# define BOOST_TYPE_INDEX_STD_TYPE_INDEX_HAS_HASH_CODE
+#else
+# include <boost/container_hash/hash.hpp>
+#endif
#if (defined(__EDG_VERSION__) && __EDG_VERSION__ < 245) \
|| (defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 744)
# include <boost/type_traits/is_signed.hpp>
# include <boost/type_traits/make_signed.hpp>
-# include <boost/mpl/identity.hpp>
+# include <boost/type_traits/type_identity.hpp>
#endif
#ifdef BOOST_HAS_PRAGMA_ONCE
@@ -176,9 +181,7 @@ inline std::string stl_type_index::pretty_name() const {
inline std::size_t stl_type_index::hash_code() const BOOST_NOEXCEPT {
-#if (defined(_MSC_VER) && _MSC_VER > 1600) \
- || (defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ > 5 && defined(__GXX_EXPERIMENTAL_CXX0X__)) \
- || (defined(__GNUC__) && __GNUC__ > 4 && __cplusplus >= 201103)
+#ifdef BOOST_TYPE_INDEX_STD_TYPE_INDEX_HAS_HASH_CODE
return data_->hash_code();
#else
return boost::hash_range(raw_name(), raw_name() + std::strlen(raw_name()));
@@ -195,13 +198,13 @@ inline std::size_t stl_type_index::hash_code() const BOOST_NOEXCEPT {
|| (defined(__sgi) && defined(__host_mips)) \
|| (defined(__hpux) && defined(__HP_aCC)) \
|| (defined(linux) && defined(__INTEL_COMPILER) && defined(__ICC))
-# define BOOST_CLASSINFO_COMPARE_BY_NAMES
+# define BOOST_TYPE_INDEX_CLASSINFO_COMPARE_BY_NAMES
# endif
/// @endcond
inline bool stl_type_index::equal(const stl_type_index& rhs) const BOOST_NOEXCEPT {
-#ifdef BOOST_CLASSINFO_COMPARE_BY_NAMES
+#ifdef BOOST_TYPE_INDEX_CLASSINFO_COMPARE_BY_NAMES
return raw_name() == rhs.raw_name() || !std::strcmp(raw_name(), rhs.raw_name());
#else
return !!(*data_ == *rhs.data_);
@@ -209,17 +212,14 @@ inline bool stl_type_index::equal(const stl_type_index& rhs) const BOOST_NOEXCEP
}
inline bool stl_type_index::before(const stl_type_index& rhs) const BOOST_NOEXCEPT {
-#ifdef BOOST_CLASSINFO_COMPARE_BY_NAMES
+#ifdef BOOST_TYPE_INDEX_CLASSINFO_COMPARE_BY_NAMES
return raw_name() != rhs.raw_name() && std::strcmp(raw_name(), rhs.raw_name()) < 0;
#else
return !!data_->before(*rhs.data_);
#endif
}
-#ifdef BOOST_CLASSINFO_COMPARE_BY_NAMES
-#undef BOOST_CLASSINFO_COMPARE_BY_NAMES
-#endif
-
+#undef BOOST_TYPE_INDEX_CLASSINFO_COMPARE_BY_NAMES
template <class T>
@@ -232,10 +232,10 @@ inline stl_type_index stl_type_index::type_id() BOOST_NOEXCEPT {
// Old EDG-based compilers seem to mistakenly distinguish 'integral' from 'signed integral'
// in typeid() expressions. Full template specialization for 'integral' fixes that issue:
- typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_<
- boost::is_signed<no_cvr_prefinal_t>,
+ typedef BOOST_DEDUCED_TYPENAME boost::conditional<
+ boost::is_signed<no_cvr_prefinal_t>::value,
boost::make_signed<no_cvr_prefinal_t>,
- boost::mpl::identity<no_cvr_prefinal_t>
+ boost::type_identity<no_cvr_prefinal_t>
>::type no_cvr_prefinal_lazy_t;
typedef BOOST_DEDUCED_TYPENAME no_cvr_prefinal_t::type no_cvr_t;
@@ -252,8 +252,8 @@ namespace detail {
template <class T>
inline stl_type_index stl_type_index::type_id_with_cvr() BOOST_NOEXCEPT {
- typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_<
- boost::mpl::or_<boost::is_reference<T>, boost::is_const<T>, boost::is_volatile<T> >,
+ typedef BOOST_DEDUCED_TYPENAME boost::conditional<
+ boost::is_reference<T>::value || boost::is_const<T>::value || boost::is_volatile<T>::value,
detail::cvr_saver<T>,
T
>::type type;
@@ -273,4 +273,6 @@ inline stl_type_index stl_type_index::type_id_runtime(const T& value) BOOST_NOEX
}} // namespace boost::typeindex
+#undef BOOST_TYPE_INDEX_STD_TYPE_INDEX_HAS_HASH_CODE
+
#endif // BOOST_TYPE_INDEX_STL_TYPE_INDEX_HPP
diff --git a/contrib/restricted/boost/type_index/include/boost/type_index/type_index_facade.hpp b/contrib/restricted/boost/type_index/include/boost/type_index/type_index_facade.hpp
index e6dde8f3f98..9c5e5b45667 100644
--- a/contrib/restricted/boost/type_index/include/boost/type_index/type_index_facade.hpp
+++ b/contrib/restricted/boost/type_index/include/boost/type_index/type_index_facade.hpp
@@ -1,5 +1,5 @@
//
-// Copyright (c) Antony Polukhin, 2013-2018.
+// Copyright 2013-2022 Antony Polukhin.
//
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying