aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/restricted/boost
diff options
context:
space:
mode:
authorrobot-contrib <robot-contrib@yandex-team.com>2024-05-01 08:28:36 +0300
committerrobot-contrib <robot-contrib@yandex-team.com>2024-05-01 08:39:25 +0300
commit5bc4b66b9854b20dc9d39e2640d7e96a11a33769 (patch)
tree20f8a590e0130d92b8945d1ffda1a9fb710c47a8 /contrib/restricted/boost
parentb530a5813ca8968a3dbe1a40a0f68f6fcec62f1d (diff)
downloadydb-5bc4b66b9854b20dc9d39e2640d7e96a11a33769.tar.gz
Update contrib/restricted/boost/mp11 to 1.85.0
ce3020096453fd290707c794e755e995d76f9d5b
Diffstat (limited to 'contrib/restricted/boost')
-rw-r--r--contrib/restricted/boost/mp11/include/boost/mp11/algorithm.hpp59
-rw-r--r--contrib/restricted/boost/mp11/include/boost/mp11/bind.hpp9
-rw-r--r--contrib/restricted/boost/mp11/include/boost/mp11/detail/mp_fold.hpp4
-rw-r--r--contrib/restricted/boost/mp11/include/boost/mp11/integer_sequence.hpp9
-rw-r--r--contrib/restricted/boost/mp11/include/boost/mp11/integral.hpp9
-rw-r--r--contrib/restricted/boost/mp11/include/boost/mp11/list.hpp9
-rw-r--r--contrib/restricted/boost/mp11/include/boost/mp11/version.hpp2
-rw-r--r--contrib/restricted/boost/mp11/ya.make4
8 files changed, 101 insertions, 4 deletions
diff --git a/contrib/restricted/boost/mp11/include/boost/mp11/algorithm.hpp b/contrib/restricted/boost/mp11/include/boost/mp11/algorithm.hpp
index be377f5a6c..8f802440ae 100644
--- a/contrib/restricted/boost/mp11/include/boost/mp11/algorithm.hpp
+++ b/contrib/restricted/boost/mp11/include/boost/mp11/algorithm.hpp
@@ -26,6 +26,11 @@
#include <type_traits>
#include <utility>
+#if defined(_MSC_VER) || defined(__GNUC__)
+# pragma push_macro( "I" )
+# undef I
+#endif
+
namespace boost
{
namespace mp11
@@ -84,6 +89,25 @@ template<template<class...> class F, template<class...> class L1, class... T1, t
#endif
};
+#if defined(BOOST_MP11_HAS_TEMPLATE_AUTO)
+
+template<template<class...> class F, template<auto...> class L, auto... A> struct mp_transform_impl<F, L<A...>>
+{
+ using type = L< F< mp_value<A> >::value... >;
+};
+
+template<template<class...> class F, template<auto...> class L1, auto... A1, template<auto...> class L2, auto... A2> struct mp_transform_impl<F, L1<A1...>, L2<A2...>>
+{
+ using type = L1< F< mp_value<A1>, mp_value<A2> >::value... >;
+};
+
+template<template<class...> class F, template<auto...> class L1, auto... A1, template<auto...> class L2, auto... A2, template<auto...> class L3, auto... A3> struct mp_transform_impl<F, L1<A1...>, L2<A2...>, L3<A3...>>
+{
+ using type = L1< F< mp_value<A1>, mp_value<A2>, mp_value<A3> >::value... >;
+};
+
+#endif
+
#if BOOST_MP11_WORKAROUND( BOOST_MP11_MSVC, == 1900 ) || BOOST_MP11_WORKAROUND( BOOST_MP11_GCC, < 40800 )
template<class... L> using mp_same_size_1 = mp_same<mp_size<L>...>;
@@ -473,6 +497,10 @@ struct mp_take_c_impl<N, L<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T...>, typen
template<class L, std::size_t N> using mp_take_c = mp_assign<L, typename detail::mp_take_c_impl<N, mp_rename<L, mp_list>>::type>;
template<class L, class N> using mp_take = mp_take_c<L, std::size_t{ N::value }>;
+// mp_slice(_c)<L, I, J>
+template<class L, std::size_t I, std::size_t J> using mp_slice_c = mp_drop_c< mp_take_c<L, J>, I >;
+template<class L, class I, class J> using mp_slice = mp_drop< mp_take<L, J>, I >;
+
// mp_back<L>
template<class L> using mp_back = mp_at_c<L, mp_size<L>::value - 1>;
@@ -1261,6 +1289,33 @@ template<class L, class Q> using mp_pairwise_fold_impl = mp_transform_q<Q, mp_po
template<class L, class Q> using mp_pairwise_fold_q = mp_eval_if<mp_empty<L>, mp_clear<L>, detail::mp_pairwise_fold_impl, L, Q>;
template<class L, template<class...> class F> using mp_pairwise_fold = mp_pairwise_fold_q<L, mp_quote<F>>;
+// mp_sliding_fold<L, N, F>
+namespace detail
+{
+
+template<class C, class L, class Q, class S> struct mp_sliding_fold_impl;
+
+template<class L, class N, class Q> struct mp_sliding_fold_impl<mp_true, L, N, Q>
+{
+ static const std::size_t M = mp_size<L>::value - N::value + 1;
+
+ template<class I> using F = mp_slice_c<L, I::value, I::value + M>;
+
+ using J = mp_transform<F, mp_iota<N>>;
+
+ using type = mp_apply<mp_transform_q, mp_push_front<J, Q>>;
+};
+
+template<class L, class N, class Q> struct mp_sliding_fold_impl<mp_false, L, N, Q>
+{
+ using type = mp_clear<L>;
+};
+
+} // namespace detail
+
+template<class L, class N, class Q> using mp_sliding_fold_q = typename detail::mp_sliding_fold_impl<mp_bool<(mp_size<L>::value >= N::value)>, L, N, Q>::type;
+template<class L, class N, template<class...> class F> using mp_sliding_fold = mp_sliding_fold_q<L, N, mp_quote<F>>;
+
// mp_intersperse<L, S>
namespace detail
{
@@ -1324,4 +1379,8 @@ template<class L, class S> using mp_join = mp_apply<mp_append, mp_intersperse<L,
} // namespace mp11
} // namespace boost
+#if defined(_MSC_VER) || defined(__GNUC__)
+# pragma pop_macro( "I" )
+#endif
+
#endif // #ifndef BOOST_MP11_ALGORITHM_HPP_INCLUDED
diff --git a/contrib/restricted/boost/mp11/include/boost/mp11/bind.hpp b/contrib/restricted/boost/mp11/include/boost/mp11/bind.hpp
index bbdecd2208..289b073f6a 100644
--- a/contrib/restricted/boost/mp11/include/boost/mp11/bind.hpp
+++ b/contrib/restricted/boost/mp11/include/boost/mp11/bind.hpp
@@ -12,6 +12,11 @@
#include <boost/mp11/utility.hpp>
#include <cstddef>
+#if defined(_MSC_VER) || defined(__GNUC__)
+# pragma push_macro( "I" )
+# undef I
+#endif
+
namespace boost
{
namespace mp11
@@ -108,4 +113,8 @@ template<class Q, class... T> using mp_bind_q = mp_bind<Q::template fn, T...>;
} // namespace mp11
} // namespace boost
+#if defined(_MSC_VER) || defined(__GNUC__)
+# pragma pop_macro( "I" )
+#endif
+
#endif // #ifndef BOOST_MP11_BIND_HPP_INCLUDED
diff --git a/contrib/restricted/boost/mp11/include/boost/mp11/detail/mp_fold.hpp b/contrib/restricted/boost/mp11/include/boost/mp11/detail/mp_fold.hpp
index 266d9c18f0..e2c464c99d 100644
--- a/contrib/restricted/boost/mp11/include/boost/mp11/detail/mp_fold.hpp
+++ b/contrib/restricted/boost/mp11/include/boost/mp11/detail/mp_fold.hpp
@@ -10,6 +10,8 @@
#include <boost/mp11/detail/config.hpp>
#include <boost/mp11/detail/mp_defer.hpp>
+#include <boost/mp11/detail/mp_rename.hpp>
+#include <boost/mp11/detail/mp_list.hpp>
namespace boost
{
@@ -155,7 +157,7 @@ struct mp_fold_impl<L<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T...>, V, F>
} // namespace detail
-template<class L, class V, template<class...> class F> using mp_fold = typename detail::mp_fold_impl<L, V, F>::type;
+template<class L, class V, template<class...> class F> using mp_fold = typename detail::mp_fold_impl<mp_rename<L, mp_list>, V, F>::type;
template<class L, class V, class Q> using mp_fold_q = mp_fold<L, V, Q::template fn>;
} // namespace mp11
diff --git a/contrib/restricted/boost/mp11/include/boost/mp11/integer_sequence.hpp b/contrib/restricted/boost/mp11/include/boost/mp11/integer_sequence.hpp
index 83e24501ba..013991fa56 100644
--- a/contrib/restricted/boost/mp11/include/boost/mp11/integer_sequence.hpp
+++ b/contrib/restricted/boost/mp11/include/boost/mp11/integer_sequence.hpp
@@ -11,6 +11,11 @@
#include <boost/mp11/version.hpp>
#include <cstddef>
+#if defined(_MSC_VER) || defined(__GNUC__)
+# pragma push_macro( "I" )
+# undef I
+#endif
+
#if defined(__has_builtin)
# if __has_builtin(__make_integer_seq)
# define BOOST_MP11_HAS_MAKE_INTEGER_SEQ
@@ -109,4 +114,8 @@ template<class... T> using index_sequence_for = make_integer_sequence<std::size_
} // namespace mp11
} // namespace boost
+#if defined(_MSC_VER) || defined(__GNUC__)
+# pragma pop_macro( "I" )
+#endif
+
#endif // #ifndef BOOST_MP11_INTEGER_SEQUENCE_HPP_INCLUDED
diff --git a/contrib/restricted/boost/mp11/include/boost/mp11/integral.hpp b/contrib/restricted/boost/mp11/include/boost/mp11/integral.hpp
index 1b4fea3e2b..4848ac80e4 100644
--- a/contrib/restricted/boost/mp11/include/boost/mp11/integral.hpp
+++ b/contrib/restricted/boost/mp11/include/boost/mp11/integral.hpp
@@ -13,6 +13,11 @@
#include <type_traits>
#include <cstddef>
+#if defined(_MSC_VER) || defined(__GNUC__)
+# pragma push_macro( "I" )
+# undef I
+#endif
+
namespace boost
{
namespace mp11
@@ -39,4 +44,8 @@ template<std::size_t N> using mp_size_t = std::integral_constant<std::size_t, N>
} // namespace mp11
} // namespace boost
+#if defined(_MSC_VER) || defined(__GNUC__)
+# pragma pop_macro( "I" )
+#endif
+
#endif // #ifndef BOOST_MP11_INTEGRAL_HPP_INCLUDED
diff --git a/contrib/restricted/boost/mp11/include/boost/mp11/list.hpp b/contrib/restricted/boost/mp11/include/boost/mp11/list.hpp
index 364676445f..46b5605360 100644
--- a/contrib/restricted/boost/mp11/include/boost/mp11/list.hpp
+++ b/contrib/restricted/boost/mp11/include/boost/mp11/list.hpp
@@ -19,6 +19,11 @@
#include <boost/mp11/detail/config.hpp>
#include <type_traits>
+#if defined(_MSC_VER) || defined(__GNUC__)
+# pragma push_macro( "I" )
+# undef I
+#endif
+
namespace boost
{
namespace mp11
@@ -469,4 +474,8 @@ template<class L, class Q> using mp_transform_third_q = mp_transform_third<L, Q:
} // namespace mp11
} // namespace boost
+#if defined(_MSC_VER) || defined(__GNUC__)
+# pragma pop_macro( "I" )
+#endif
+
#endif // #ifndef BOOST_MP11_LIST_HPP_INCLUDED
diff --git a/contrib/restricted/boost/mp11/include/boost/mp11/version.hpp b/contrib/restricted/boost/mp11/include/boost/mp11/version.hpp
index ab5e09c390..aba1fb1ca7 100644
--- a/contrib/restricted/boost/mp11/include/boost/mp11/version.hpp
+++ b/contrib/restricted/boost/mp11/include/boost/mp11/version.hpp
@@ -11,6 +11,6 @@
// Same format as BOOST_VERSION:
// major * 100000 + minor * 100 + patch
-#define BOOST_MP11_VERSION 108400
+#define BOOST_MP11_VERSION 108500
#endif // #ifndef BOOST_MP11_VERSION_HPP_INCLUDED
diff --git a/contrib/restricted/boost/mp11/ya.make b/contrib/restricted/boost/mp11/ya.make
index e725d8e913..6e699be6a8 100644
--- a/contrib/restricted/boost/mp11/ya.make
+++ b/contrib/restricted/boost/mp11/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/mp11/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/mp11/archive/boost-1.85.0.tar.gz)
ADDINCL(
GLOBAL contrib/restricted/boost/mp11/include