diff options
author | robot-contrib <robot-contrib@yandex-team.com> | 2024-05-01 08:28:36 +0300 |
---|---|---|
committer | robot-contrib <robot-contrib@yandex-team.com> | 2024-05-01 08:39:25 +0300 |
commit | 5bc4b66b9854b20dc9d39e2640d7e96a11a33769 (patch) | |
tree | 20f8a590e0130d92b8945d1ffda1a9fb710c47a8 /contrib/restricted/boost | |
parent | b530a5813ca8968a3dbe1a40a0f68f6fcec62f1d (diff) | |
download | ydb-5bc4b66b9854b20dc9d39e2640d7e96a11a33769.tar.gz |
Update contrib/restricted/boost/mp11 to 1.85.0
ce3020096453fd290707c794e755e995d76f9d5b
Diffstat (limited to 'contrib/restricted/boost')
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 |