aboutsummaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorrobot-contrib <robot-contrib@yandex-team.com>2024-08-18 13:59:37 +0300
committerrobot-contrib <robot-contrib@yandex-team.com>2024-08-18 14:10:13 +0300
commit3cb9c68b3254fa3760085593a0106aa48e53b285 (patch)
tree5590b15b46040b675621dfd6a513a9c6b48cbbab /contrib
parent9a2844bdf2084909bd91510c28fe2371782fdb2c (diff)
downloadydb-3cb9c68b3254fa3760085593a0106aa48e53b285.tar.gz
Update contrib/restricted/boost/function to 1.86.0
e0d044456b92ee6ee3b811944fececd47648f2a8
Diffstat (limited to 'contrib')
-rw-r--r--contrib/restricted/boost/function/include/boost/function/function_base.hpp56
-rw-r--r--contrib/restricted/boost/function/include/boost/function/function_template.hpp179
-rw-r--r--contrib/restricted/boost/function/ya.make4
-rw-r--r--contrib/restricted/boost/type_traits/include/boost/type_traits/composite_traits.hpp29
4 files changed, 165 insertions, 103 deletions
diff --git a/contrib/restricted/boost/function/include/boost/function/function_base.hpp b/contrib/restricted/boost/function/include/boost/function/function_base.hpp
index 7f78e36eca..ca15b7b7bb 100644
--- a/contrib/restricted/boost/function/include/boost/function/function_base.hpp
+++ b/contrib/restricted/boost/function/include/boost/function/function_base.hpp
@@ -15,17 +15,6 @@
#include <boost/function_equal.hpp>
#include <boost/core/typeinfo.hpp>
#include <boost/core/ref.hpp>
-#include <boost/type_traits/has_trivial_copy.hpp>
-#include <boost/type_traits/has_trivial_destructor.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/composite_traits.hpp>
-#include <boost/type_traits/conditional.hpp>
-#include <boost/type_traits/alignment_of.hpp>
-#include <boost/type_traits/enable_if.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/type_traits/is_function.hpp>
#include <boost/assert.hpp>
#include <boost/config.hpp>
#include <boost/config/workaround.hpp>
@@ -33,6 +22,7 @@
#include <string>
#include <memory>
#include <new>
+#include <type_traits>
#if defined(BOOST_MSVC)
# pragma warning( push )
@@ -43,10 +33,8 @@
// retained because used in a test
#define BOOST_FUNCTION_TARGET_FIX(x)
-# define BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type) \
- typename ::boost::enable_if_< \
- !(::boost::is_integral<Functor>::value), \
- Type>::type
+#define BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type) \
+ typename std::enable_if< !std::is_integral<Functor>::value, Type>::type
namespace boost {
namespace detail {
@@ -131,15 +119,15 @@ namespace boost {
template<typename F>
class get_function_tag
{
- typedef typename conditional<(is_pointer<F>::value),
+ typedef typename std::conditional<std::is_pointer<F>::value,
function_ptr_tag,
function_obj_tag>::type ptr_or_obj_tag;
- typedef typename conditional<(is_member_pointer<F>::value),
+ typedef typename std::conditional<std::is_member_pointer<F>::value,
member_ptr_tag,
ptr_or_obj_tag>::type ptr_or_obj_or_mem_tag;
- typedef typename conditional<(is_reference_wrapper<F>::value),
+ typedef typename std::conditional<is_reference_wrapper<F>::value,
function_obj_ref_tag,
ptr_or_obj_or_mem_tag>::type or_ref_tag;
@@ -204,8 +192,8 @@ namespace boost {
BOOST_STATIC_CONSTANT
(bool,
value = ((sizeof(F) <= sizeof(function_buffer) &&
- (alignment_of<function_buffer>::value
- % alignment_of<F>::value == 0))));
+ (std::alignment_of<function_buffer>::value
+ % std::alignment_of<F>::value == 0))));
};
template <typename F,typename A>
@@ -306,7 +294,7 @@ namespace boost {
// Function objects that fit in the small-object buffer.
static inline void
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
- functor_manager_operation_type op, true_type)
+ functor_manager_operation_type op, std::true_type)
{
functor_manager_common<Functor>::manage_small(in_buffer,out_buffer,op);
}
@@ -314,7 +302,7 @@ namespace boost {
// Function objects that require heap allocation
static inline void
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
- functor_manager_operation_type op, false_type)
+ functor_manager_operation_type op, std::false_type)
{
if (op == clone_functor_tag) {
// Clone the functor
@@ -355,7 +343,7 @@ namespace boost {
functor_manager_operation_type op, function_obj_tag)
{
manager(in_buffer, out_buffer, op,
- integral_constant<bool, (function_allows_small_object_optimization<functor_type>::value)>());
+ std::integral_constant<bool, (function_allows_small_object_optimization<functor_type>::value)>());
}
// For member pointers, we use the small-object optimization buffer.
@@ -363,7 +351,7 @@ namespace boost {
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
functor_manager_operation_type op, member_ptr_tag)
{
- manager(in_buffer, out_buffer, op, true_type());
+ manager(in_buffer, out_buffer, op, std::true_type());
}
public:
@@ -401,7 +389,7 @@ namespace boost {
// Function objects that fit in the small-object buffer.
static inline void
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
- functor_manager_operation_type op, true_type)
+ functor_manager_operation_type op, std::true_type)
{
functor_manager_common<Functor>::manage_small(in_buffer,out_buffer,op);
}
@@ -409,7 +397,7 @@ namespace boost {
// Function objects that require heap allocation
static inline void
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
- functor_manager_operation_type op, false_type)
+ functor_manager_operation_type op, std::false_type)
{
typedef functor_wrapper<Functor,Allocator> functor_wrapper_type;
@@ -460,7 +448,7 @@ namespace boost {
functor_manager_operation_type op, function_obj_tag)
{
manager(in_buffer, out_buffer, op,
- integral_constant<bool, (function_allows_small_object_optimization<functor_type>::value)>());
+ std::integral_constant<bool, (function_allows_small_object_optimization<functor_type>::value)>());
}
public:
@@ -529,8 +517,8 @@ public:
detail::function::function_buffer type_result;
type_result.members.type.type = &BOOST_CORE_TYPEID(Functor);
- type_result.members.type.const_qualified = is_const<Functor>::value;
- type_result.members.type.volatile_qualified = is_volatile<Functor>::value;
+ type_result.members.type.const_qualified = std::is_const<Functor>::value;
+ type_result.members.type.volatile_qualified = std::is_volatile<Functor>::value;
get_vtable()->manager(functor, type_result,
detail::function::check_functor_type_tag);
return static_cast<Functor*>(type_result.members.obj_ptr);
@@ -544,7 +532,7 @@ public:
detail::function::function_buffer type_result;
type_result.members.type.type = &BOOST_CORE_TYPEID(Functor);
type_result.members.type.const_qualified = true;
- type_result.members.type.volatile_qualified = is_volatile<Functor>::value;
+ type_result.members.type.volatile_qualified = std::is_volatile<Functor>::value;
get_vtable()->manager(functor, type_result,
detail::function::check_functor_type_tag);
// GCC 2.95.3 gets the CV qualifiers wrong here, so we
@@ -553,8 +541,8 @@ public:
}
template<typename F>
- typename boost::enable_if_< !boost::is_function<F>::value, bool >::type
- contains(const F& f) const
+ typename std::enable_if< !std::is_function<F>::value, bool >::type
+ contains(const F& f) const
{
if (const F* fp = this->template target<F>())
{
@@ -565,8 +553,8 @@ public:
}
template<typename Fn>
- typename boost::enable_if_< boost::is_function<Fn>::value, bool >::type
- contains(Fn& f) const
+ typename std::enable_if< std::is_function<Fn>::value, bool >::type
+ contains(Fn& f) const
{
typedef Fn* F;
if (const F* fp = this->template target<F>())
diff --git a/contrib/restricted/boost/function/include/boost/function/function_template.hpp b/contrib/restricted/boost/function/include/boost/function/function_template.hpp
index ee3fc7ab4d..f21a395beb 100644
--- a/contrib/restricted/boost/function/include/boost/function/function_template.hpp
+++ b/contrib/restricted/boost/function/include/boost/function/function_template.hpp
@@ -15,11 +15,10 @@
#include <boost/core/no_exceptions_support.hpp>
#include <boost/mem_fn.hpp>
#include <boost/throw_exception.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/is_void.hpp>
#include <boost/config.hpp>
#include <algorithm>
#include <cassert>
+#include <type_traits>
#if defined(BOOST_MSVC)
# pragma warning( push )
@@ -180,7 +179,7 @@ namespace boost {
>
struct get_function_invoker
{
- typedef typename conditional<(is_void<R>::value),
+ typedef typename std::conditional<std::is_void<R>::value,
void_function_invoker<
FunctionPtr,
R,
@@ -201,7 +200,7 @@ namespace boost {
>
struct get_function_obj_invoker
{
- typedef typename conditional<(is_void<R>::value),
+ typedef typename std::conditional<std::is_void<R>::value,
void_function_obj_invoker<
FunctionObj,
R,
@@ -222,7 +221,7 @@ namespace boost {
>
struct get_function_ref_invoker
{
- typedef typename conditional<(is_void<R>::value),
+ typedef typename std::conditional<std::is_void<R>::value,
void_function_ref_invoker<
FunctionObj,
R,
@@ -244,7 +243,7 @@ namespace boost {
>
struct get_member_invoker
{
- typedef typename conditional<(is_void<R>::value),
+ typedef typename std::conditional<std::is_void<R>::value,
void_member_invoker<
MemberPtr,
R,
@@ -499,27 +498,27 @@ namespace boost {
// Assign to a function object using the small object optimization
template<typename FunctionObj>
void
- assign_functor(FunctionObj f, function_buffer& functor, true_type) const
+ assign_functor(FunctionObj f, function_buffer& functor, std::true_type) const
{
new (reinterpret_cast<void*>(functor.data)) FunctionObj(std::move(f));
}
template<typename FunctionObj,typename Allocator>
void
- assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, true_type) const
+ assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, std::true_type) const
{
- assign_functor(std::move(f),functor,true_type());
+ assign_functor(std::move(f),functor,std::true_type());
}
// Assign to a function object allocated on the heap.
template<typename FunctionObj>
void
- assign_functor(FunctionObj f, function_buffer& functor, false_type) const
+ assign_functor(FunctionObj f, function_buffer& functor, std::false_type) const
{
functor.members.obj_ptr = new FunctionObj(std::move(f));
}
template<typename FunctionObj,typename Allocator>
void
- assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, false_type) const
+ assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, std::false_type) const
{
typedef functor_wrapper<FunctionObj,Allocator> functor_wrapper_type;
@@ -540,7 +539,7 @@ namespace boost {
{
if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
assign_functor(std::move(f), functor,
- integral_constant<bool, (function_allows_small_object_optimization<FunctionObj>::value)>());
+ std::integral_constant<bool, (function_allows_small_object_optimization<FunctionObj>::value)>());
return true;
} else {
return false;
@@ -552,7 +551,7 @@ namespace boost {
{
if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
assign_functor_a(std::move(f), functor, a,
- integral_constant<bool, (function_allows_small_object_optimization<FunctionObj>::value)>());
+ std::integral_constant<bool, (function_allows_small_object_optimization<FunctionObj>::value)>());
return true;
} else {
return false;
@@ -566,8 +565,8 @@ namespace boost {
function_buffer& functor, function_obj_ref_tag) const
{
functor.members.obj_ref.obj_ptr = (void *)(f.get_pointer());
- functor.members.obj_ref.is_const_qualified = is_const<FunctionObj>::value;
- functor.members.obj_ref.is_volatile_qualified = is_volatile<FunctionObj>::value;
+ functor.members.obj_ref.is_const_qualified = std::is_const<FunctionObj>::value;
+ functor.members.obj_ref.is_volatile_qualified = std::is_volatile<FunctionObj>::value;
return true;
}
template<typename FunctionObj,typename Allocator>
@@ -587,19 +586,125 @@ namespace boost {
struct variadic_function_base
{};
- template <typename T>
- struct variadic_function_base<T>
+ template <typename T1>
+ struct variadic_function_base<T1>
{
- typedef T argument_type;
+ typedef T1 argument_type;
+ typedef T1 arg1_type;
};
- template <typename T0, typename T1>
- struct variadic_function_base<T0, T1>
+ template <typename T1, typename T2>
+ struct variadic_function_base<T1, T2>
{
- typedef T0 first_argument_type;
- typedef T1 second_argument_type;
+ typedef T1 first_argument_type;
+ typedef T2 second_argument_type;
+ typedef T1 arg1_type;
+ typedef T2 arg2_type;
};
+ template <typename T1, typename T2, typename T3>
+ struct variadic_function_base<T1, T2, T3>
+ {
+ typedef T1 arg1_type;
+ typedef T2 arg2_type;
+ typedef T3 arg3_type;
+ };
+
+ template <typename T1, typename T2, typename T3, typename T4>
+ struct variadic_function_base<T1, T2, T3, T4>
+ {
+ typedef T1 arg1_type;
+ typedef T2 arg2_type;
+ typedef T3 arg3_type;
+ typedef T4 arg4_type;
+ };
+
+ template <typename T1, typename T2, typename T3, typename T4, typename T5>
+ struct variadic_function_base<T1, T2, T3, T4, T5>
+ {
+ typedef T1 arg1_type;
+ typedef T2 arg2_type;
+ typedef T3 arg3_type;
+ typedef T4 arg4_type;
+ typedef T5 arg5_type;
+ };
+
+ template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
+ struct variadic_function_base<T1, T2, T3, T4, T5, T6>
+ {
+ typedef T1 arg1_type;
+ typedef T2 arg2_type;
+ typedef T3 arg3_type;
+ typedef T4 arg4_type;
+ typedef T5 arg5_type;
+ typedef T6 arg6_type;
+ };
+
+ template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
+ struct variadic_function_base<T1, T2, T3, T4, T5, T6, T7>
+ {
+ typedef T1 arg1_type;
+ typedef T2 arg2_type;
+ typedef T3 arg3_type;
+ typedef T4 arg4_type;
+ typedef T5 arg5_type;
+ typedef T6 arg6_type;
+ typedef T7 arg7_type;
+ };
+
+ template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
+ struct variadic_function_base<T1, T2, T3, T4, T5, T6, T7, T8>
+ {
+ typedef T1 arg1_type;
+ typedef T2 arg2_type;
+ typedef T3 arg3_type;
+ typedef T4 arg4_type;
+ typedef T5 arg5_type;
+ typedef T6 arg6_type;
+ typedef T7 arg7_type;
+ typedef T8 arg8_type;
+ };
+
+ template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
+ struct variadic_function_base<T1, T2, T3, T4, T5, T6, T7, T8, T9>
+ {
+ typedef T1 arg1_type;
+ typedef T2 arg2_type;
+ typedef T3 arg3_type;
+ typedef T4 arg4_type;
+ typedef T5 arg5_type;
+ typedef T6 arg6_type;
+ typedef T7 arg7_type;
+ typedef T8 arg8_type;
+ typedef T9 arg9_type;
+ };
+
+ template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
+ struct variadic_function_base<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
+ {
+ typedef T1 arg1_type;
+ typedef T2 arg2_type;
+ typedef T3 arg3_type;
+ typedef T4 arg4_type;
+ typedef T5 arg5_type;
+ typedef T6 arg6_type;
+ typedef T7 arg7_type;
+ typedef T8 arg8_type;
+ typedef T9 arg9_type;
+ typedef T10 arg10_type;
+ };
+
+#if defined( BOOST_LIBSTDCXX_VERSION ) && BOOST_LIBSTDCXX_VERSION < 50000
+
+ template<class T> struct is_trivially_copyable: std::integral_constant<bool,
+ __has_trivial_copy(T) && __has_trivial_assign(T) && __has_trivial_destructor(T)> {};
+
+#else
+
+ using std::is_trivially_copyable;
+
+#endif
+
} // end namespace function
} // end namespace detail
@@ -643,8 +748,8 @@ namespace boost {
// one with a default parameter.
template<typename Functor>
function_n(Functor f
- ,typename boost::enable_if_<
- !(is_integral<Functor>::value),
+ ,typename std::enable_if<
+ !std::is_integral<Functor>::value,
int>::type = 0
) :
function_base()
@@ -653,8 +758,8 @@ namespace boost {
}
template<typename Functor,typename Allocator>
function_n(Functor f, Allocator a
- ,typename boost::enable_if_<
- !(is_integral<Functor>::value),
+ ,typename std::enable_if<
+ !std::is_integral<Functor>::value,
int>::type = 0
) :
function_base()
@@ -691,8 +796,8 @@ namespace boost {
// handle function_n as the type of the temporary to
// construct.
template<typename Functor>
- typename boost::enable_if_<
- !(is_integral<Functor>::value),
+ typename std::enable_if<
+ !std::is_integral<Functor>::value,
function_n&>::type
operator=(Functor f)
{
@@ -835,8 +940,7 @@ namespace boost {
if (stored_vtable.assign_to(std::move(f), functor)) {
std::size_t value = reinterpret_cast<std::size_t>(&stored_vtable.base);
// coverity[pointless_expression]: suppress coverity warnings on apparant if(const).
- if (boost::has_trivial_copy_constructor<Functor>::value &&
- boost::has_trivial_destructor<Functor>::value &&
+ if (boost::detail::function::is_trivially_copyable<Functor>::value &&
boost::detail::function::function_allows_small_object_optimization<Functor>::value)
value |= static_cast<std::size_t>(0x01);
vtable = reinterpret_cast<boost::detail::function::vtable_base *>(value);
@@ -869,8 +973,7 @@ namespace boost {
if (stored_vtable.assign_to_a(std::move(f), functor, a)) {
std::size_t value = reinterpret_cast<std::size_t>(&stored_vtable.base);
// coverity[pointless_expression]: suppress coverity warnings on apparant if(const).
- if (boost::has_trivial_copy_constructor<Functor>::value &&
- boost::has_trivial_destructor<Functor>::value &&
+ if (boost::detail::function::is_trivially_copyable<Functor>::value &&
boost::detail::function::function_allows_small_object_optimization<Functor>::value)
value |= static_cast<std::size_t>(0x01);
vtable = reinterpret_cast<boost::detail::function::vtable_base *>(value);
@@ -974,8 +1077,8 @@ public:
template<typename Functor>
function(Functor f
- ,typename boost::enable_if_<
- !(is_integral<Functor>::value),
+ ,typename std::enable_if<
+ !std::is_integral<Functor>::value,
int>::type = 0
) :
base_type(std::move(f))
@@ -983,8 +1086,8 @@ public:
}
template<typename Functor,typename Allocator>
function(Functor f, Allocator a
- ,typename boost::enable_if_<
- !(is_integral<Functor>::value),
+ ,typename std::enable_if<
+ !std::is_integral<Functor>::value,
int>::type = 0
) :
base_type(std::move(f),a)
@@ -1014,8 +1117,8 @@ public:
}
template<typename Functor>
- typename boost::enable_if_<
- !(is_integral<Functor>::value),
+ typename std::enable_if<
+ !std::is_integral<Functor>::value,
self_type&>::type
operator=(Functor f)
{
diff --git a/contrib/restricted/boost/function/ya.make b/contrib/restricted/boost/function/ya.make
index 5a7f2bd2ad..ca3eef69e2 100644
--- a/contrib/restricted/boost/function/ya.make
+++ b/contrib/restricted/boost/function/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.85.0)
+VERSION(1.86.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/function/archive/boost-1.85.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/function/archive/boost-1.86.0.tar.gz)
PEERDIR(
contrib/restricted/boost/assert
diff --git a/contrib/restricted/boost/type_traits/include/boost/type_traits/composite_traits.hpp b/contrib/restricted/boost/type_traits/include/boost/type_traits/composite_traits.hpp
deleted file mode 100644
index 985a4c51d3..0000000000
--- a/contrib/restricted/boost/type_traits/include/boost/type_traits/composite_traits.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-// (C) Copyright Dave Abrahams, 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/type_traits for most recent version including documentation.
-//
-// defines traits classes for composite types:
-// is_array, is_pointer, is_reference, is_member_pointer, is_enum, is_union.
-//
-
-#ifndef BOOST_TT_COMPOSITE_TRAITS_HPP_INCLUDED
-#define BOOST_TT_COMPOSITE_TRAITS_HPP_INCLUDED
-
-#include <boost/type_traits/is_array.hpp>
-#include <boost/type_traits/is_enum.hpp>
-#include <boost/type_traits/is_member_pointer.hpp>
-#include <boost/type_traits/is_member_function_pointer.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/is_union.hpp>
-
-#endif // BOOST_TT_COMPOSITE_TRAITS_HPP_INCLUDED
-
-
-
-
-