aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorthegeorg <thegeorg@yandex-team.com>2024-09-13 13:18:23 +0300
committerthegeorg <thegeorg@yandex-team.com>2024-09-13 13:33:05 +0300
commit5b720c6a385dfda9e8f86a3ae183bc216b3eb66e (patch)
tree72bd078adcae9fd5d1ecc409fd1f120332cf7351
parent02f70f11e125e828e4ac5ea843ca7c657cbb45cd (diff)
downloadydb-5b720c6a385dfda9e8f86a3ae183bc216b3eb66e.tar.gz
Update boost/asio + boost/process + boost/beast to 1.74.0
commit_hash:58dfb9e9ce688b0c31dc7797230078d839fefa21
-rw-r--r--contrib/restricted/boost/asio/include/boost/asio/buffer.hpp10
-rw-r--r--contrib/restricted/boost/asio/include/boost/asio/detail/config.hpp401
-rw-r--r--contrib/restricted/boost/asio/include/boost/asio/detail/memory.hpp3
-rw-r--r--contrib/restricted/boost/asio/include/boost/asio/detail/pop_options.hpp2
-rw-r--r--contrib/restricted/boost/asio/include/boost/asio/detail/push_options.hpp2
-rw-r--r--contrib/restricted/boost/asio/include/boost/asio/detail/type_traits.hpp59
-rw-r--r--contrib/restricted/boost/asio/ya.make4
7 files changed, 436 insertions, 45 deletions
diff --git a/contrib/restricted/boost/asio/include/boost/asio/buffer.hpp b/contrib/restricted/boost/asio/include/boost/asio/buffer.hpp
index 90e10ed092..59418f2622 100644
--- a/contrib/restricted/boost/asio/include/boost/asio/buffer.hpp
+++ b/contrib/restricted/boost/asio/include/boost/asio/buffer.hpp
@@ -50,11 +50,13 @@
#if defined(BOOST_ASIO_HAS_BOOST_WORKAROUND)
# include <boost/detail/workaround.hpp>
-# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) \
- || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
+# if !defined(__clang__)
+# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
+# define BOOST_ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND
+# endif // BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
+# elif BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
# define BOOST_ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND
-# endif // BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
- // || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
+# endif // BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
#endif // defined(BOOST_ASIO_HAS_BOOST_WORKAROUND)
#if defined(BOOST_ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND)
diff --git a/contrib/restricted/boost/asio/include/boost/asio/detail/config.hpp b/contrib/restricted/boost/asio/include/boost/asio/detail/config.hpp
index 65dae51bac..8daad4faf6 100644
--- a/contrib/restricted/boost/asio/include/boost/asio/detail/config.hpp
+++ b/contrib/restricted/boost/asio/include/boost/asio/detail/config.hpp
@@ -61,6 +61,9 @@
# define BOOST_ASIO_DECL
#endif // !defined(BOOST_ASIO_DECL)
+// Helper macro for documentation.
+#define BOOST_ASIO_UNSPECIFIED(e) e
+
// Microsoft Visual C++ detection.
#if !defined(BOOST_ASIO_MSVC)
# if defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_MSVC)
@@ -97,11 +100,11 @@
# endif // __has_feature(__cxx_rvalue_references__)
# endif // defined(__clang__)
# if defined(__GNUC__)
-# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4)
+# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4)
# if (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_ASIO_HAS_MOVE 1
# endif // (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
-# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4)
+# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4)
# endif // defined(__GNUC__)
# if defined(BOOST_ASIO_MSVC)
# if (_MSC_VER >= 1700)
@@ -130,6 +133,8 @@
# define BOOST_ASIO_NONDEDUCED_MOVE_ARG(type) type&
# define BOOST_ASIO_MOVE_CAST(type) static_cast<type&&>
# define BOOST_ASIO_MOVE_CAST2(type1, type2) static_cast<type1, type2&&>
+# define BOOST_ASIO_MOVE_OR_LVALUE(type) static_cast<type&&>
+# define BOOST_ASIO_MOVE_OR_LVALUE_TYPE(type) type
#endif // defined(BOOST_ASIO_HAS_MOVE) && !defined(BOOST_ASIO_MOVE_CAST)
// If BOOST_ASIO_MOVE_CAST still isn't defined, default to a C++03-compatible
@@ -156,6 +161,8 @@
# define BOOST_ASIO_NONDEDUCED_MOVE_ARG(type) const type&
# define BOOST_ASIO_MOVE_CAST(type) static_cast<const type&>
# define BOOST_ASIO_MOVE_CAST2(type1, type2) static_cast<const type1, type2&>
+# define BOOST_ASIO_MOVE_OR_LVALUE(type)
+# define BOOST_ASIO_MOVE_OR_LVALUE_TYPE(type) type&
#endif // !defined(BOOST_ASIO_MOVE_CAST)
// Support variadic templates on compilers known to allow it.
@@ -167,11 +174,11 @@
# endif // __has_feature(__cxx_variadic_templates__)
# endif // defined(__clang__)
# if defined(__GNUC__)
-# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4)
+# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4)
# if (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_ASIO_HAS_VARIADIC_TEMPLATES 1
# endif // (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
-# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4)
+# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4)
# endif // defined(__GNUC__)
# if defined(BOOST_ASIO_MSVC)
# if (_MSC_VER >= 1900)
@@ -180,6 +187,13 @@
# endif // defined(BOOST_ASIO_MSVC)
# endif // !defined(BOOST_ASIO_DISABLE_VARIADIC_TEMPLATES)
#endif // !defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
+#if !defined(BOOST_ASIO_ELLIPSIS)
+# if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
+# define BOOST_ASIO_ELLIPSIS ...
+# else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
+# define BOOST_ASIO_ELLIPSIS
+# endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
+#endif // !defined(BOOST_ASIO_ELLIPSIS)
// Support deleted functions on compilers known to allow it.
#if !defined(BOOST_ASIO_DELETED)
@@ -211,14 +225,14 @@
# if defined(__clang__)
# if __has_feature(__cxx_constexpr__)
# define BOOST_ASIO_HAS_CONSTEXPR 1
-# endif // __has_feature(__cxx_constexr__)
+# endif // __has_feature(__cxx_constexpr__)
# endif // defined(__clang__)
# if defined(__GNUC__)
-# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
+# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4)
# if (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_ASIO_HAS_CONSTEXPR 1
# endif // (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
-# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
+# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4)
# endif // defined(__GNUC__)
# if defined(BOOST_ASIO_MSVC)
# if (_MSC_VER >= 1900)
@@ -234,39 +248,90 @@
# define BOOST_ASIO_CONSTEXPR
# endif // defined(BOOST_ASIO_HAS_CONSTEXPR)
#endif // !defined(BOOST_ASIO_CONSTEXPR)
+#if !defined(BOOST_ASIO_STATIC_CONSTEXPR)
+# if defined(BOOST_ASIO_HAS_CONSTEXPR)
+# define BOOST_ASIO_STATIC_CONSTEXPR(type, assignment) \
+ static constexpr type assignment
+# else // defined(BOOST_ASIO_HAS_CONSTEXPR)
+# define BOOST_ASIO_STATIC_CONSTEXPR(type, assignment) \
+ static const type assignment
+# endif // defined(BOOST_ASIO_HAS_CONSTEXPR)
+#endif // !defined(BOOST_ASIO_STATIC_CONSTEXPR)
+#if !defined(BOOST_ASIO_STATIC_CONSTEXPR_DEFAULT_INIT)
+# if defined(BOOST_ASIO_HAS_CONSTEXPR)
+# if defined(__GNUC__)
+# if (__GNUC__ >= 8)
+# define BOOST_ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(type, name) \
+ static constexpr const type name{}
+# else // (__GNUC__ >= 8)
+# define BOOST_ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(type, name) \
+ static const type name
+# endif // (__GNUC__ >= 8)
+# elif defined(BOOST_ASIO_MSVC)
+# define BOOST_ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(type, name) \
+ static const type name
+# else // defined(BOOST_ASIO_MSVC)
+# define BOOST_ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(type, name) \
+ static constexpr const type name{}
+# endif // defined(BOOST_ASIO_MSVC)
+# else // defined(BOOST_ASIO_HAS_CONSTEXPR)
+# define BOOST_ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(type, name) \
+ static const type name
+# endif // defined(BOOST_ASIO_HAS_CONSTEXPR)
+#endif // !defined(BOOST_ASIO_STATIC_CONSTEXPR_DEFAULT_INIT)
// Support noexcept on compilers known to allow it.
-#if !defined(BOOST_ASIO_NOEXCEPT)
+#if !defined(BOOST_ASIO_HAS_NOEXCEPT)
# if !defined(BOOST_ASIO_DISABLE_NOEXCEPT)
# if defined(BOOST_ASIO_HAS_BOOST_CONFIG) && (BOOST_VERSION >= 105300)
+# if !defined(BOOST_NO_NOEXCEPT)
+# define BOOST_ASIO_HAS_NOEXCEPT 1
+# endif // !defined(BOOST_NO_NOEXCEPT)
# define BOOST_ASIO_NOEXCEPT BOOST_NOEXCEPT
# define BOOST_ASIO_NOEXCEPT_OR_NOTHROW BOOST_NOEXCEPT_OR_NOTHROW
+# define BOOST_ASIO_NOEXCEPT_IF(c) BOOST_NOEXCEPT_IF(c)
# elif defined(__clang__)
# if __has_feature(__cxx_noexcept__)
-# define BOOST_ASIO_NOEXCEPT noexcept(true)
-# define BOOST_ASIO_NOEXCEPT_OR_NOTHROW noexcept(true)
+# define BOOST_ASIO_HAS_NOEXCEPT 1
# endif // __has_feature(__cxx_noexcept__)
# elif defined(__GNUC__)
# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
# if (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
-# define BOOST_ASIO_NOEXCEPT noexcept(true)
-# define BOOST_ASIO_NOEXCEPT_OR_NOTHROW noexcept(true)
+# define BOOST_ASIO_HAS_NOEXCEPT 1
# endif // (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
# elif defined(BOOST_ASIO_MSVC)
# if (_MSC_VER >= 1900)
-# define BOOST_ASIO_NOEXCEPT noexcept(true)
-# define BOOST_ASIO_NOEXCEPT_OR_NOTHROW noexcept(true)
+# define BOOST_ASIO_HAS_NOEXCEPT 1
# endif // (_MSC_VER >= 1900)
# endif // defined(BOOST_ASIO_MSVC)
# endif // !defined(BOOST_ASIO_DISABLE_NOEXCEPT)
# if !defined(BOOST_ASIO_NOEXCEPT)
-# define BOOST_ASIO_NOEXCEPT
# endif // !defined(BOOST_ASIO_NOEXCEPT)
# if !defined(BOOST_ASIO_NOEXCEPT_OR_NOTHROW)
-# define BOOST_ASIO_NOEXCEPT_OR_NOTHROW throw()
# endif // !defined(BOOST_ASIO_NOEXCEPT_OR_NOTHROW)
+#endif // !defined(BOOST_ASIO_HAS_NOEXCEPT)
+#if !defined(BOOST_ASIO_NOEXCEPT)
+# if defined(BOOST_ASIO_HAS_NOEXCEPT)
+# define BOOST_ASIO_NOEXCEPT noexcept(true)
+# else // defined(BOOST_ASIO_HAS_NOEXCEPT)
+# define BOOST_ASIO_NOEXCEPT
+# endif // defined(BOOST_ASIO_HAS_NOEXCEPT)
#endif // !defined(BOOST_ASIO_NOEXCEPT)
+#if !defined(BOOST_ASIO_NOEXCEPT_OR_NOTHROW)
+# if defined(BOOST_ASIO_HAS_NOEXCEPT)
+# define BOOST_ASIO_NOEXCEPT_OR_NOTHROW noexcept(true)
+# else // defined(BOOST_ASIO_HAS_NOEXCEPT)
+# define BOOST_ASIO_NOEXCEPT_OR_NOTHROW throw()
+# endif // defined(BOOST_ASIO_HAS_NOEXCEPT)
+#endif // !defined(BOOST_ASIO_NOEXCEPT_OR_NOTHROW)
+#if !defined(BOOST_ASIO_NOEXCEPT_IF)
+# if defined(BOOST_ASIO_HAS_NOEXCEPT)
+# define BOOST_ASIO_NOEXCEPT_IF(c) noexcept(c)
+# else // defined(BOOST_ASIO_HAS_NOEXCEPT)
+# define BOOST_ASIO_NOEXCEPT_IF(c)
+# endif // defined(BOOST_ASIO_HAS_NOEXCEPT)
+#endif // !defined(BOOST_ASIO_NOEXCEPT_IF)
// Support automatic type deduction on compilers known to support it.
#if !defined(BOOST_ASIO_HAS_DECLTYPE)
@@ -277,11 +342,11 @@
# endif // __has_feature(__cxx_decltype__)
# endif // defined(__clang__)
# if defined(__GNUC__)
-# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
+# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4)
# if (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_ASIO_HAS_DECLTYPE 1
# endif // (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
-# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
+# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4)
# endif // defined(__GNUC__)
# if defined(BOOST_ASIO_MSVC)
# if (_MSC_VER >= 1800)
@@ -320,7 +385,7 @@
# if defined(__clang__)
# if __has_feature(__cxx_return_type_deduction__)
# define BOOST_ASIO_HAS_RETURN_TYPE_DEDUCTION 1
-# endif // __has_feature(__cxx_alias_templates__)
+# endif // __has_feature(__cxx_return_type_deduction__)
# elif (__cplusplus >= 201402)
# define BOOST_ASIO_HAS_RETURN_TYPE_DEDUCTION 1
# elif defined(__cpp_return_type_deduction)
@@ -354,6 +419,128 @@
# endif // !defined(BOOST_ASIO_DISABLE_CONCEPTS)
#endif // !defined(BOOST_ASIO_HAS_CONCEPTS)
+// Support template variables on compilers known to allow it.
+#if !defined(BOOST_ASIO_HAS_VARIABLE_TEMPLATES)
+# if !defined(BOOST_ASIO_DISABLE_VARIABLE_TEMPLATES)
+# if defined(__clang__)
+# if (__cplusplus >= 201402)
+# if __has_feature(__cxx_variable_templates__)
+# define BOOST_ASIO_HAS_VARIABLE_TEMPLATES 1
+# endif // __has_feature(__cxx_variable_templates__)
+# endif // (__cplusplus >= 201402)
+# endif // defined(__clang__)
+# if defined(__GNUC__)
+# if (__GNUC__ >= 6)
+# if (__cplusplus >= 201402)
+# define BOOST_ASIO_HAS_VARIABLE_TEMPLATES 1
+# endif // (__cplusplus >= 201402)
+# endif // (__GNUC__ >= 6)
+# endif // defined(__GNUC__)
+# if defined(BOOST_ASIO_MSVC)
+# if (_MSC_VER >= 1901)
+# define BOOST_ASIO_HAS_VARIABLE_TEMPLATES 1
+# endif // (_MSC_VER >= 1901)
+# endif // defined(BOOST_ASIO_MSVC)
+# endif // !defined(BOOST_ASIO_DISABLE_VARIABLE_TEMPLATES)
+#endif // !defined(BOOST_ASIO_HAS_VARIABLE_TEMPLATES)
+
+// Support SFINAEd template variables on compilers known to allow it.
+#if !defined(BOOST_ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
+# if !defined(BOOST_ASIO_DISABLE_SFINAE_VARIABLE_TEMPLATES)
+# if defined(__clang__)
+# if (__cplusplus >= 201703)
+# if __has_feature(__cxx_variable_templates__)
+# define BOOST_ASIO_HAS_SFINAE_VARIABLE_TEMPLATES 1
+# endif // __has_feature(__cxx_variable_templates__)
+# endif // (__cplusplus >= 201703)
+# endif // defined(__clang__)
+# if defined(__GNUC__)
+# if ((__GNUC__ == 8) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 8)
+# if (__cplusplus >= 201402)
+# define BOOST_ASIO_HAS_SFINAE_VARIABLE_TEMPLATES 1
+# endif // (__cplusplus >= 201402)
+# endif // ((__GNUC__ == 8) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 8)
+# endif // defined(__GNUC__)
+# if defined(BOOST_ASIO_MSVC)
+# if (_MSC_VER >= 1901)
+# define BOOST_ASIO_HAS_SFINAE_VARIABLE_TEMPLATES 1
+# endif // (_MSC_VER >= 1901)
+# endif // defined(BOOST_ASIO_MSVC)
+# endif // !defined(BOOST_ASIO_DISABLE_SFINAE_VARIABLE_TEMPLATES)
+#endif // !defined(BOOST_ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
+
+// Support SFINAE use of constant expressions on compilers known to allow it.
+#if !defined(BOOST_ASIO_HAS_CONSTANT_EXPRESSION_SFINAE)
+# if !defined(BOOST_ASIO_DISABLE_CONSTANT_EXPRESSION_SFINAE)
+# if defined(__clang__)
+# if (__cplusplus >= 201402)
+# define BOOST_ASIO_HAS_CONSTANT_EXPRESSION_SFINAE 1
+# endif // (__cplusplus >= 201402)
+# endif // defined(__clang__)
+# if defined(__GNUC__)
+# if (__GNUC__ >= 7)
+# if (__cplusplus >= 201402)
+# define BOOST_ASIO_HAS_CONSTANT_EXPRESSION_SFINAE 1
+# endif // (__cplusplus >= 201402)
+# endif // (__GNUC__ >= 7)
+# endif // defined(__GNUC__)
+# if defined(BOOST_ASIO_MSVC)
+# if (_MSC_VER >= 1901)
+# define BOOST_ASIO_HAS_CONSTANT_EXPRESSION_SFINAE 1
+# endif // (_MSC_VER >= 1901)
+# endif // defined(BOOST_ASIO_MSVC)
+# endif // !defined(BOOST_ASIO_DISABLE_CONSTANT_EXPRESSION_SFINAE)
+#endif // !defined(BOOST_ASIO_HAS_CONSTANT_EXPRESSION_SFINAE)
+
+// Enable workarounds for lack of working expression SFINAE.
+#if !defined(BOOST_ASIO_HAS_WORKING_EXPRESSION_SFINAE)
+# if !defined(BOOST_ASIO_DISABLE_WORKING_EXPRESSION_SFINAE)
+# if !defined(BOOST_ASIO_MSVC)
+# if (__cplusplus >= 201103)
+# define BOOST_ASIO_HAS_WORKING_EXPRESSION_SFINAE 1
+# endif // (__cplusplus >= 201103)
+# endif // !defined(BOOST_ASIO_MSVC)
+# endif // !defined(BOOST_ASIO_DISABLE_WORKING_EXPRESSION_SFINAE)
+#endif // !defined(BOOST_ASIO_HAS_WORKING_EXPRESSION_SFINAE)
+
+// Support ref-qualified functions on compilers known to allow it.
+#if !defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS)
+# if !defined(BOOST_ASIO_DISABLE_REF_QUALIFIED_FUNCTIONS)
+# if defined(__clang__)
+# if __has_feature(__cxx_reference_qualified_functions__)
+# define BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS 1
+# endif // __has_feature(__cxx_reference_qualified_functions__)
+# endif // defined(__clang__)
+# if defined(__GNUC__)
+# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) || (__GNUC__ > 4)
+# if (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
+# define BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS 1
+# endif // (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
+# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) || (__GNUC__ > 4)
+# endif // defined(__GNUC__)
+# if defined(BOOST_ASIO_MSVC)
+# if (_MSC_VER >= 1900)
+# define BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS 1
+# endif // (_MSC_VER >= 1900)
+# endif // defined(BOOST_ASIO_MSVC)
+# endif // !defined(BOOST_ASIO_DISABLE_REF_QUALIFIED_FUNCTIONS)
+#endif // !defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS)
+#if defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS)
+# if !defined(BOOST_ASIO_LVALUE_REF_QUAL)
+# define BOOST_ASIO_LVALUE_REF_QUAL &
+# endif // !defined(BOOST_ASIO_LVALUE_REF_QUAL)
+# if !defined(BOOST_ASIO_RVALUE_REF_QUAL)
+# define BOOST_ASIO_RVALUE_REF_QUAL &&
+# endif // !defined(BOOST_ASIO_RVALUE_REF_QUAL)
+#else // defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS)
+# if !defined(BOOST_ASIO_LVALUE_REF_QUAL)
+# define BOOST_ASIO_LVALUE_REF_QUAL
+# endif // !defined(BOOST_ASIO_LVALUE_REF_QUAL)
+# if !defined(BOOST_ASIO_RVALUE_REF_QUAL)
+# define BOOST_ASIO_RVALUE_REF_QUAL
+# endif // !defined(BOOST_ASIO_RVALUE_REF_QUAL)
+#endif // defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS)
+
// Standard library support for system errors.
# if !defined(BOOST_ASIO_DISABLE_STD_SYSTEM_ERROR)
# if defined(__clang__)
@@ -496,7 +683,7 @@
# define BOOST_ASIO_HAS_STD_ATOMIC 1
# endif // __has_include(<atomic>)
# endif // (__clang_major__ >= 10)
-# endif /// defined(__apple_build_version__) && defined(_LIBCPP_VERSION)
+# endif // defined(__apple_build_version__) && defined(_LIBCPP_VERSION)
# endif // defined(__clang__)
# if defined(__GNUC__)
# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
@@ -633,11 +820,11 @@
# endif // (__cplusplus >= 201103)
# endif // defined(__clang__)
# if defined(__GNUC__)
-# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4)
+# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4)
# if (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_ASIO_HAS_STD_TYPE_TRAITS 1
# endif // (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
-# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4)
+# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4)
# endif // defined(__GNUC__)
# if defined(BOOST_ASIO_MSVC)
# if (_MSC_VER >= 1700)
@@ -653,7 +840,7 @@
# if defined(__clang__)
# if __has_feature(__cxx_nullptr__)
# define BOOST_ASIO_HAS_NULLPTR 1
-# endif // __has_feature(__cxx_rvalue_references__)
+# endif // __has_feature(__cxx_nullptr__)
# elif defined(__GNUC__)
# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
# if (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
@@ -808,7 +995,7 @@
# elif (__cplusplus >= 201103)
# if __has_include(<future>)
# define BOOST_ASIO_HAS_STD_FUTURE 1
-# endif // __has_include(<mutex>)
+# endif // __has_include(<future>)
# endif // (__cplusplus >= 201103)
# endif // defined(__clang__)
# if defined(__GNUC__)
@@ -934,6 +1121,109 @@
# endif // !defined(BOOST_ASIO_DISABLE_STD_INVOKE_RESULT)
#endif // !defined(BOOST_ASIO_HAS_STD_INVOKE_RESULT)
+// Standard library support for std::exception_ptr and std::current_exception.
+#if !defined(BOOST_ASIO_HAS_STD_EXCEPTION_PTR)
+# if !defined(BOOST_ASIO_DISABLE_STD_EXCEPTION_PTR)
+# if defined(__clang__)
+# if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
+# define BOOST_ASIO_HAS_STD_EXCEPTION_PTR 1
+# elif (__cplusplus >= 201103)
+# define BOOST_ASIO_HAS_STD_EXCEPTION_PTR 1
+# endif // (__cplusplus >= 201103)
+# elif defined(__GNUC__)
+# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
+# if (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
+# define BOOST_ASIO_HAS_STD_EXCEPTION_PTR 1
+# endif // (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
+# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
+# endif // defined(__GNUC__)
+# if defined(BOOST_ASIO_MSVC)
+# if (_MSC_VER >= 1800)
+# define BOOST_ASIO_HAS_STD_EXCEPTION_PTR 1
+# endif // (_MSC_VER >= 1800)
+# endif // defined(BOOST_ASIO_MSVC)
+# endif // !defined(BOOST_ASIO_DISABLE_STD_EXCEPTION_PTR)
+#endif // !defined(BOOST_ASIO_HAS_STD_EXCEPTION_PTR)
+
+// Standard library support for std::nested_exception.
+#if !defined(BOOST_ASIO_HAS_STD_NESTED_EXCEPTION)
+# if !defined(BOOST_ASIO_DISABLE_STD_NESTED_EXCEPTION)
+# if defined(__clang__)
+# if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
+# define BOOST_ASIO_HAS_STD_NESTED_EXCEPTION 1
+# elif (__cplusplus >= 201103)
+# define BOOST_ASIO_HAS_STD_NESTED_EXCEPTION 1
+# endif // (__cplusplus >= 201103)
+# elif defined(__GNUC__)
+# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
+# if (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
+# define BOOST_ASIO_HAS_STD_NESTED_EXCEPTION 1
+# endif // (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
+# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
+# endif // defined(__GNUC__)
+# if defined(BOOST_ASIO_MSVC)
+# if (_MSC_VER >= 1900)
+# define BOOST_ASIO_HAS_STD_NESTED_EXCEPTION 1
+# endif // (_MSC_VER >= 1900)
+# endif // defined(BOOST_ASIO_MSVC)
+# endif // !defined(BOOST_ASIO_DISABLE_STD_NESTED_EXCEPTION)
+#endif // !defined(BOOST_ASIO_HAS_STD_NESTED_EXCEPTION)
+
+// Standard library support for std::any.
+#if !defined(BOOST_ASIO_HAS_STD_ANY)
+# if !defined(BOOST_ASIO_DISABLE_STD_ANY)
+# if defined(__clang__)
+# if (__cplusplus >= 201703)
+# if __has_include(<any>)
+# define BOOST_ASIO_HAS_STD_ANY 1
+# endif // __has_include(<any>)
+# endif // (__cplusplus >= 201703)
+# elif defined(__GNUC__)
+# if (__GNUC__ >= 7)
+# if (__cplusplus >= 201703)
+# define BOOST_ASIO_HAS_STD_ANY 1
+# endif // (__cplusplus >= 201703)
+# endif // (__GNUC__ >= 7)
+# endif // defined(__GNUC__)
+# if defined(BOOST_ASIO_MSVC)
+# if (_MSC_VER >= 1910) && (_MSVC_LANG >= 201703)
+# define BOOST_ASIO_HAS_STD_ANY 1
+# endif // (_MSC_VER >= 1910) && (_MSVC_LANG >= 201703)
+# endif // defined(BOOST_ASIO_MSVC)
+# endif // !defined(BOOST_ASIO_DISABLE_STD_ANY)
+#endif // !defined(BOOST_ASIO_HAS_STD_ANY)
+
+// Standard library support for std::source_location.
+#if !defined(BOOST_ASIO_HAS_STD_SOURCE_LOCATION)
+# if !defined(BOOST_ASIO_DISABLE_STD_SOURCE_LOCATION)
+// ...
+# endif // !defined(BOOST_ASIO_DISABLE_STD_SOURCE_LOCATION)
+#endif // !defined(BOOST_ASIO_HAS_STD_SOURCE_LOCATION)
+
+// Standard library support for std::experimental::source_location.
+#if !defined(BOOST_ASIO_HAS_STD_EXPERIMENTAL_SOURCE_LOCATION)
+# if !defined(BOOST_ASIO_DISABLE_STD_EXPERIMENTAL_SOURCE_LOCATION)
+# if defined(__GNUC__)
+# if (__cplusplus >= 201709)
+# if __has_include(<experimental/source_location>)
+# define BOOST_ASIO_HAS_STD_EXPERIMENTAL_SOURCE_LOCATION 1
+# endif // __has_include(<experimental/source_location>)
+# endif // (__cplusplus >= 201709)
+# endif // defined(__GNUC__)
+# endif // !defined(BOOST_ASIO_DISABLE_STD_EXPERIMENTAL_SOURCE_LOCATION)
+#endif // !defined(BOOST_ASIO_HAS_STD_EXPERIMENTAL_SOURCE_LOCATION)
+
+// Standard library has a source_location that we can use.
+#if !defined(BOOST_ASIO_HAS_SOURCE_LOCATION)
+# if !defined(BOOST_ASIO_DISABLE_SOURCE_LOCATION)
+# if defined(BOOST_ASIO_HAS_STD_SOURCE_LOCATION)
+# define BOOST_ASIO_HAS_SOURCE_LOCATION 1
+# elif defined(BOOST_ASIO_HAS_STD_EXPERIMENTAL_SOURCE_LOCATION)
+# define BOOST_ASIO_HAS_SOURCE_LOCATION 1
+# endif // defined(BOOST_ASIO_HAS_STD_EXPERIMENTAL_SOURCE_LOCATION)
+# endif // !defined(BOOST_ASIO_DISABLE_SOURCE_LOCATION)
+#endif // !defined(BOOST_ASIO_HAS_SOURCE_LOCATION)
+
// Windows App target. Windows but with a limited API.
#if !defined(BOOST_ASIO_WINDOWS_APP)
# if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0603)
@@ -977,17 +1267,17 @@
// Windows: target OS version.
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
# if !defined(_WIN32_WINNT) && !defined(_WIN32_WINDOWS)
-# if defined(_MSC_VER) || defined(__BORLANDC__)
+# if defined(_MSC_VER) || (defined(__BORLANDC__) && !defined(__clang__))
# pragma message( \
"Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately. For example:\n"\
"- add -D_WIN32_WINNT=0x0601 to the compiler command line; or\n"\
"- add _WIN32_WINNT=0x0601 to your project's Preprocessor Definitions.\n"\
"Assuming _WIN32_WINNT=0x0601 (i.e. Windows 7 target).")
-# else // defined(_MSC_VER) || defined(__BORLANDC__)
+# else // defined(_MSC_VER) || (defined(__BORLANDC__) && !defined(__clang__))
# warning Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately.
# warning For example, add -D_WIN32_WINNT=0x0601 to the compiler command line.
# warning Assuming _WIN32_WINNT=0x0601 (i.e. Windows 7 target).
-# endif // defined(_MSC_VER) || defined(__BORLANDC__)
+# endif // defined(_MSC_VER) || (defined(__BORLANDC__) && !defined(__clang__))
# define _WIN32_WINNT 0x0601
# endif // !defined(_WIN32_WINNT) && !defined(_WIN32_WINDOWS)
# if defined(_MSC_VER)
@@ -1386,9 +1676,9 @@
# if (__GNUC__ >= 3)
# define BOOST_ASIO_HAS_HANDLER_HOOKS 1
# endif // (__GNUC__ >= 3)
-# elif !defined(__BORLANDC__)
+# elif !defined(__BORLANDC__) || defined(__clang__)
# define BOOST_ASIO_HAS_HANDLER_HOOKS 1
-# endif // !defined(__BORLANDC__)
+# endif // !defined(__BORLANDC__) || defined(__clang__)
# endif // !defined(BOOST_ASIO_DISABLE_HANDLER_HOOKS)
#endif // !defined(BOOST_ASIO_HAS_HANDLER_HOOKS)
@@ -1467,7 +1757,7 @@
# define BOOST_ASIO_UNUSED_VARIABLE
#endif // !defined(BOOST_ASIO_UNUSED_VARIABLE)
-// Support co_await on compilers known to allow it.
+// Support the co_await keyword on compilers known to allow it.
#if !defined(BOOST_ASIO_HAS_CO_AWAIT)
# if !defined(BOOST_ASIO_DISABLE_CO_AWAIT)
# if defined(BOOST_ASIO_MSVC)
@@ -1477,16 +1767,53 @@
# endif // defined(_RESUMABLE_FUNCTIONS_SUPPORTED)
# endif // (_MSC_FULL_VER >= 190023506)
# endif // defined(BOOST_ASIO_MSVC)
+# if defined(__clang__)
+# if (__cplusplus >= 202002) && (__cpp_impl_coroutine >= 201902)
+# if __has_include(<coroutine>)
+# define BOOST_ASIO_HAS_CO_AWAIT 1
+# endif // __has_include(<coroutine>)
+# elif (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)
+# if __has_include(<experimental/coroutine>)
+# define BOOST_ASIO_HAS_CO_AWAIT 1
+# endif // __has_include(<experimental/coroutine>)
+# endif // (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)
+# elif defined(__GNUC__)
+# if (__cplusplus >= 201709) && (__cpp_impl_coroutine >= 201902)
+# if __has_include(<coroutine>)
+# define BOOST_ASIO_HAS_CO_AWAIT 1
+# endif // __has_include(<coroutine>)
+# endif // (__cplusplus >= 201709) && (__cpp_impl_coroutine >= 201902)
+# endif // defined(__GNUC__)
# endif // !defined(BOOST_ASIO_DISABLE_CO_AWAIT)
-# if defined(__clang__)
-# if (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)
-# if __has_include(<coroutine>)
-# define BOOST_ASIO_HAS_CO_AWAIT 1
-# endif // __has_include(<coroutine>)
-# endif // (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)
-# endif // defined(__clang__)
#endif // !defined(BOOST_ASIO_HAS_CO_AWAIT)
+// Standard library support for coroutines.
+#if !defined(BOOST_ASIO_HAS_STD_COROUTINE)
+# if !defined(BOOST_ASIO_DISABLE_STD_COROUTINE)
+# if defined(__GNUC__)
+# if (__cplusplus >= 201709) && (__cpp_impl_coroutine >= 201902)
+# if __has_include(<coroutine>)
+# define BOOST_ASIO_HAS_STD_COROUTINE 1
+# endif // __has_include(<coroutine>)
+# endif // (__cplusplus >= 201709) && (__cpp_impl_coroutine >= 201902)
+# endif // defined(__GNUC__)
+# endif // !defined(BOOST_ASIO_DISABLE_STD_COROUTINE)
+#endif // !defined(BOOST_ASIO_HAS_STD_COROUTINE)
+
+// Compiler support for the the [[nodiscard]] attribute.
+#if !defined(BOOST_ASIO_NODISCARD)
+# if defined(__has_cpp_attribute)
+# if __has_cpp_attribute(nodiscard)
+# if (__cplusplus >= 201703)
+# define BOOST_ASIO_NODISCARD [[nodiscard]]
+# endif // (__cplusplus >= 201703)
+# endif // __has_cpp_attribute(nodiscard)
+# endif // defined(__has_cpp_attribute)
+#endif // !defined(BOOST_ASIO_NODISCARD)
+#if !defined(BOOST_ASIO_NODISCARD)
+# define BOOST_ASIO_NODISCARD
+#endif // !defined(BOOST_ASIO_NODISCARD)
+
// Standard library support for snprintf.
#if !defined(BOOST_ASIO_HAS_SNPRINTF)
# if !defined(BOOST_ASIO_DISABLE_SNPRINTF)
diff --git a/contrib/restricted/boost/asio/include/boost/asio/detail/memory.hpp b/contrib/restricted/boost/asio/include/boost/asio/detail/memory.hpp
index 0f92263c42..438abceb67 100644
--- a/contrib/restricted/boost/asio/include/boost/asio/detail/memory.hpp
+++ b/contrib/restricted/boost/asio/include/boost/asio/detail/memory.hpp
@@ -19,6 +19,7 @@
#include <memory>
#if !defined(BOOST_ASIO_HAS_STD_SHARED_PTR)
+# include <boost/make_shared.hpp>
# include <boost/shared_ptr.hpp>
# include <boost/weak_ptr.hpp>
#endif // !defined(BOOST_ASIO_HAS_STD_SHARED_PTR)
@@ -32,9 +33,11 @@ namespace asio {
namespace detail {
#if defined(BOOST_ASIO_HAS_STD_SHARED_PTR)
+using std::make_shared;
using std::shared_ptr;
using std::weak_ptr;
#else // defined(BOOST_ASIO_HAS_STD_SHARED_PTR)
+using boost::make_shared;
using boost::shared_ptr;
using boost::weak_ptr;
#endif // defined(BOOST_ASIO_HAS_STD_SHARED_PTR)
diff --git a/contrib/restricted/boost/asio/include/boost/asio/detail/pop_options.hpp b/contrib/restricted/boost/asio/include/boost/asio/detail/pop_options.hpp
index a2475b47cb..982c42e4fe 100644
--- a/contrib/restricted/boost/asio/include/boost/asio/detail/pop_options.hpp
+++ b/contrib/restricted/boost/asio/include/boost/asio/detail/pop_options.hpp
@@ -93,7 +93,7 @@
// Greenhills C++
-#elif defined(__BORLANDC__)
+#elif defined(__BORLANDC__) && !defined(__clang__)
// Borland C++
diff --git a/contrib/restricted/boost/asio/include/boost/asio/detail/push_options.hpp b/contrib/restricted/boost/asio/include/boost/asio/detail/push_options.hpp
index 05856fd9b9..201f18a042 100644
--- a/contrib/restricted/boost/asio/include/boost/asio/detail/push_options.hpp
+++ b/contrib/restricted/boost/asio/include/boost/asio/detail/push_options.hpp
@@ -102,7 +102,7 @@
// Greenhills C++
-#elif defined(__BORLANDC__)
+#elif defined(__BORLANDC__) && !defined(__clang__)
// Borland C++
diff --git a/contrib/restricted/boost/asio/include/boost/asio/detail/type_traits.hpp b/contrib/restricted/boost/asio/include/boost/asio/detail/type_traits.hpp
index d5a8901c83..ba1a4d1486 100644
--- a/contrib/restricted/boost/asio/include/boost/asio/detail/type_traits.hpp
+++ b/contrib/restricted/boost/asio/include/boost/asio/detail/type_traits.hpp
@@ -21,15 +21,25 @@
# include <type_traits>
#else // defined(BOOST_ASIO_HAS_STD_TYPE_TRAITS)
# include <boost/type_traits/add_const.hpp>
+# include <boost/type_traits/add_lvalue_reference.hpp>
+# include <boost/type_traits/aligned_storage.hpp>
+# include <boost/type_traits/alignment_of.hpp>
# include <boost/type_traits/conditional.hpp>
# include <boost/type_traits/decay.hpp>
+# include <boost/type_traits/has_nothrow_copy.hpp>
+# include <boost/type_traits/has_nothrow_destructor.hpp>
# include <boost/type_traits/integral_constant.hpp>
# include <boost/type_traits/is_base_of.hpp>
# include <boost/type_traits/is_class.hpp>
# include <boost/type_traits/is_const.hpp>
# include <boost/type_traits/is_convertible.hpp>
+# include <boost/type_traits/is_constructible.hpp>
+# include <boost/type_traits/is_copy_constructible.hpp>
+# include <boost/type_traits/is_destructible.hpp>
# include <boost/type_traits/is_function.hpp>
+# include <boost/type_traits/is_object.hpp>
# include <boost/type_traits/is_same.hpp>
+# include <boost/type_traits/remove_cv.hpp>
# include <boost/type_traits/remove_pointer.hpp>
# include <boost/type_traits/remove_reference.hpp>
# include <boost/utility/declval.hpp>
@@ -42,6 +52,9 @@ namespace asio {
#if defined(BOOST_ASIO_HAS_STD_TYPE_TRAITS)
using std::add_const;
+using std::add_lvalue_reference;
+using std::aligned_storage;
+using std::alignment_of;
using std::conditional;
using std::decay;
using std::declval;
@@ -51,9 +64,21 @@ using std::integral_constant;
using std::is_base_of;
using std::is_class;
using std::is_const;
+using std::is_constructible;
using std::is_convertible;
+using std::is_copy_constructible;
+using std::is_destructible;
using std::is_function;
+using std::is_move_constructible;
+using std::is_nothrow_copy_constructible;
+using std::is_nothrow_destructible;
+using std::is_object;
+using std::is_reference;
using std::is_same;
+using std::is_scalar;
+using std::remove_cv;
+template <typename T>
+struct remove_cvref : remove_cv<typename std::remove_reference<T>::type> {};
using std::remove_pointer;
using std::remove_reference;
#if defined(BOOST_ASIO_HAS_STD_INVOKE_RESULT)
@@ -66,6 +91,9 @@ using std::result_of;
using std::true_type;
#else // defined(BOOST_ASIO_HAS_STD_TYPE_TRAITS)
using boost::add_const;
+using boost::add_lvalue_reference;
+using boost::aligned_storage;
+using boost::alignment_of;
template <bool Condition, typename Type = void>
struct enable_if : boost::enable_if_c<Condition, Type> {};
using boost::conditional;
@@ -76,15 +104,46 @@ using boost::integral_constant;
using boost::is_base_of;
using boost::is_class;
using boost::is_const;
+using boost::is_constructible;
using boost::is_convertible;
+using boost::is_copy_constructible;
+using boost::is_destructible;
using boost::is_function;
+#if defined(BOOST_ASIO_HAS_MOVE)
+template <typename T>
+struct is_move_constructible : false_type {};
+#else // defined(BOOST_ASIO_HAS_MOVE)
+template <typename T>
+struct is_move_constructible : is_copy_constructible<T> {};
+#endif // defined(BOOST_ASIO_HAS_MOVE)
+template <typename T>
+struct is_nothrow_copy_constructible : boost::has_nothrow_copy<T> {};
+template <typename T>
+struct is_nothrow_destructible : boost::has_nothrow_destructor<T> {};
+using boost::is_object;
+using boost::is_reference;
using boost::is_same;
+using boost::is_scalar;
+using boost::remove_cv;
+template <typename T>
+struct remove_cvref : remove_cv<typename boost::remove_reference<T>::type> {};
using boost::remove_pointer;
using boost::remove_reference;
using boost::result_of;
using boost::true_type;
#endif // defined(BOOST_ASIO_HAS_STD_TYPE_TRAITS)
+template <typename> struct void_type { typedef void type; };
+
+#if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
+
+template <typename...> struct conjunction : true_type {};
+template <typename T> struct conjunction<T> : T {};
+template <typename Head, typename... Tail> struct conjunction<Head, Tail...> :
+ conditional<Head::value, conjunction<Tail...>, Head>::type {};
+
+#endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
+
} // namespace asio
} // namespace boost
diff --git a/contrib/restricted/boost/asio/ya.make b/contrib/restricted/boost/asio/ya.make
index 8f36ad969c..10723ba969 100644
--- a/contrib/restricted/boost/asio/ya.make
+++ b/contrib/restricted/boost/asio/ya.make
@@ -9,9 +9,9 @@ LICENSE(
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.73.0)
+VERSION(1.74.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/asio/archive/boost-1.73.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/asio/archive/boost-1.74.0.tar.gz)
PEERDIR(
contrib/libs/openssl