aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorthegeorg <thegeorg@yandex-team.com>2022-12-30 11:28:43 +0300
committerthegeorg <thegeorg@yandex-team.com>2022-12-30 11:28:43 +0300
commit3977356602f8b92ede8c377d29e965a3a61fb584 (patch)
treec338a8c5387f0e508b08bec2933f92ee10695fc5
parent1a5a2b27e7c76da1d9e921121f480fad8989a961 (diff)
downloadydb-3977356602f8b92ede8c377d29e965a3a61fb584.tar.gz
Update contrib/restricted/boost/fusion to 1.81.0
-rw-r--r--contrib/restricted/boost/fusion/CMakeLists.darwin.txt1
-rw-r--r--contrib/restricted/boost/fusion/CMakeLists.linux-aarch64.txt1
-rw-r--r--contrib/restricted/boost/fusion/CMakeLists.linux.txt1
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/adapted/boost_tuple/boost_tuple_iterator.hpp11
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/algorithm/iteration/detail/segmented_fold.hpp7
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/algorithm/iteration/detail/segmented_for_each.hpp9
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/algorithm/transformation/pop_back.hpp9
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/container/deque/deque_iterator.hpp13
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/container/list/cons_iterator.hpp11
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/container/vector/vector.hpp21
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/container/vector/vector_iterator.hpp16
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/iterator/detail/segment_sequence.hpp9
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/iterator/iterator_adapter.hpp9
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/support/config.hpp10
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/support/detail/as_fusion_element.hpp2
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/view/filter_view/filter_view.hpp17
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/view/filter_view/filter_view_iterator.hpp16
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/view/joint_view/joint_view.hpp12
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/view/joint_view/joint_view_iterator.hpp12
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/view/single_view/single_view_iterator.hpp11
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/detail/deref_data_impl.hpp73
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/detail/key_of_impl.hpp49
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/detail/value_of_data_impl.hpp49
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/transform_view.hpp15
-rw-r--r--contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/transform_view_iterator.hpp18
25 files changed, 332 insertions, 70 deletions
diff --git a/contrib/restricted/boost/fusion/CMakeLists.darwin.txt b/contrib/restricted/boost/fusion/CMakeLists.darwin.txt
index 157f45712f..dc891e04c7 100644
--- a/contrib/restricted/boost/fusion/CMakeLists.darwin.txt
+++ b/contrib/restricted/boost/fusion/CMakeLists.darwin.txt
@@ -17,6 +17,7 @@ target_link_libraries(restricted-boost-fusion INTERFACE
restricted-boost-container_hash
restricted-boost-core
restricted-boost-function_types
+ restricted-boost-functional
restricted-boost-mpl
restricted-boost-preprocessor
restricted-boost-static_assert
diff --git a/contrib/restricted/boost/fusion/CMakeLists.linux-aarch64.txt b/contrib/restricted/boost/fusion/CMakeLists.linux-aarch64.txt
index 54fc2f4013..c27e4dd580 100644
--- a/contrib/restricted/boost/fusion/CMakeLists.linux-aarch64.txt
+++ b/contrib/restricted/boost/fusion/CMakeLists.linux-aarch64.txt
@@ -18,6 +18,7 @@ target_link_libraries(restricted-boost-fusion INTERFACE
restricted-boost-container_hash
restricted-boost-core
restricted-boost-function_types
+ restricted-boost-functional
restricted-boost-mpl
restricted-boost-preprocessor
restricted-boost-static_assert
diff --git a/contrib/restricted/boost/fusion/CMakeLists.linux.txt b/contrib/restricted/boost/fusion/CMakeLists.linux.txt
index 54fc2f4013..c27e4dd580 100644
--- a/contrib/restricted/boost/fusion/CMakeLists.linux.txt
+++ b/contrib/restricted/boost/fusion/CMakeLists.linux.txt
@@ -18,6 +18,7 @@ target_link_libraries(restricted-boost-fusion INTERFACE
restricted-boost-container_hash
restricted-boost-core
restricted-boost-function_types
+ restricted-boost-functional
restricted-boost-mpl
restricted-boost-preprocessor
restricted-boost-static_assert
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/adapted/boost_tuple/boost_tuple_iterator.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/adapted/boost_tuple/boost_tuple_iterator.hpp
index 88206590a9..024d8720c3 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/adapted/boost_tuple/boost_tuple_iterator.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/adapted/boost_tuple/boost_tuple_iterator.hpp
@@ -45,6 +45,10 @@ namespace boost { namespace fusion
template <typename Cons>
struct boost_tuple_iterator_identity;
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4512) // assignment operator could not be generated.
+#endif
template <typename Cons = tuples::null_type>
struct boost_tuple_iterator
: iterator_facade<boost_tuple_iterator<Cons>, forward_traversal_tag>
@@ -143,11 +147,10 @@ namespace boost { namespace fusion
struct equal_to
: is_same<typename I1::identity, typename I2::identity>
{};
-
- // silence MSVC warning C4512: assignment operator could not be generated
- BOOST_DELETED_FUNCTION(boost_tuple_iterator& operator= (boost_tuple_iterator const&))
- boost_tuple_iterator(const boost_tuple_iterator&) = default;
};
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
template <typename Null>
struct boost_tuple_null_iterator
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/algorithm/iteration/detail/segmented_fold.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/algorithm/iteration/detail/segmented_fold.hpp
index 350bff75b3..663c6fedd1 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/algorithm/iteration/detail/segmented_fold.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/algorithm/iteration/detail/segmented_fold.hpp
@@ -14,6 +14,10 @@
namespace boost { namespace fusion { namespace detail
{
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4512) // assignment operator could not be generated.
+#endif
template <typename Fun>
struct segmented_fold_fun
{
@@ -37,6 +41,9 @@ namespace boost { namespace fusion { namespace detail
}
};
};
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
// The default implementation of this lives in detail/fold.hpp
template <typename Sequence, typename State, typename Fun, bool IsSequence, bool IsSegmented>
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/algorithm/iteration/detail/segmented_for_each.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/algorithm/iteration/detail/segmented_for_each.hpp
index 7b299f869c..404ba2a0d2 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/algorithm/iteration/detail/segmented_for_each.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/algorithm/iteration/detail/segmented_for_each.hpp
@@ -13,6 +13,11 @@
#include <boost/fusion/algorithm/iteration/for_each_fwd.hpp>
#include <boost/fusion/support/segmented_fold_until.hpp>
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4512) // assignment operator could not be generated.
+#endif
+
namespace boost { namespace fusion { namespace detail
{
template <typename Fun>
@@ -49,4 +54,8 @@ namespace boost { namespace fusion { namespace detail
}
}}}
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
#endif
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/algorithm/transformation/pop_back.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/algorithm/transformation/pop_back.hpp
index 2f55fa5e72..9a7e754704 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/algorithm/transformation/pop_back.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/algorithm/transformation/pop_back.hpp
@@ -18,6 +18,11 @@
#include <boost/mpl/int.hpp>
#include <boost/mpl/if.hpp>
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4512) // assignment operator could not be generated.
+#endif
+
namespace boost { namespace fusion
{
template <typename Iterator_, bool IsLast>
@@ -168,5 +173,9 @@ namespace boost { namespace fusion
}
}}
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
#endif
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/container/deque/deque_iterator.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/container/deque/deque_iterator.hpp
index aff9109351..66fd635da1 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/container/deque/deque_iterator.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/container/deque/deque_iterator.hpp
@@ -20,6 +20,11 @@
#include <boost/type_traits/add_const.hpp>
#include <boost/type_traits/add_reference.hpp>
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4512) // assignment operator could not be generated.
+#endif
+
namespace boost { namespace fusion {
struct bidirectional_traversal_tag;
@@ -110,14 +115,14 @@ namespace boost { namespace fusion {
{};
Seq& seq_;
-
- // silence MSVC warning C4512: assignment operator could not be generated
- BOOST_DELETED_FUNCTION(deque_iterator& operator= (deque_iterator const&))
- deque_iterator(const deque_iterator&) = default;
};
}}
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
namespace std
{
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/container/list/cons_iterator.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/container/list/cons_iterator.hpp
index d80244f3e5..f6655a705b 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/container/list/cons_iterator.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/container/list/cons_iterator.hpp
@@ -26,6 +26,10 @@ namespace boost { namespace fusion
template <typename Cons>
struct cons_iterator_identity;
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4512) // assignment operator could not be generated.
+#endif
template <typename Cons = nil_>
struct cons_iterator : iterator_base<cons_iterator<Cons> >
{
@@ -41,11 +45,10 @@ namespace boost { namespace fusion
: cons(in_cons) {}
cons_type& cons;
-
- // silence MSVC warning C4512: assignment operator could not be generated
- BOOST_DELETED_FUNCTION(cons_iterator& operator= (cons_iterator const&))
- cons_iterator(const cons_iterator&) = default;
};
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
struct nil_iterator : iterator_base<nil_iterator>
{
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/container/vector/vector.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/container/vector/vector.hpp
index 02ffe51450..f20e1de0b0 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/container/vector/vector.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/container/vector/vector.hpp
@@ -220,21 +220,12 @@ namespace boost { namespace fusion
void
assign_sequence(Sequence&& seq)
{
- assign(std::forward<Sequence>(seq), detail::index_sequence<I...>());
- }
-
- template <typename Sequence>
- BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
- void
- assign(Sequence&&, detail::index_sequence<>) {}
-
- template <typename Sequence, std::size_t N, std::size_t ...M>
- BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
- void
- assign(Sequence&& seq, detail::index_sequence<N, M...>)
- {
- at_impl(mpl::int_<N>()) = vector_detail::forward_at_c<N>(seq);
- assign(std::forward<Sequence>(seq), detail::index_sequence<M...>());
+#ifndef BOOST_NO_CXX17_FOLD_EXPRESSIONS
+ (void(store<I, T>::elem = vector_detail::forward_at_c<I>(static_cast<Sequence&&>(seq))), ...);
+#else
+ int nofold[] = { (void(store<I, T>::elem = vector_detail::forward_at_c<I>(static_cast<Sequence&&>(seq))), 0)..., 0 };
+ (void)nofold;
+#endif
}
private:
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/container/vector/vector_iterator.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/container/vector/vector_iterator.hpp
index 0e04b3452c..62219766a5 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/container/vector/vector_iterator.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/container/vector/vector_iterator.hpp
@@ -19,6 +19,11 @@
#include <boost/type_traits/add_const.hpp>
#include <boost/mpl/int.hpp>
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4512) // assignment operator could not be generated.
+#endif
+
namespace boost { namespace fusion
{
struct vector_iterator_tag;
@@ -41,17 +46,14 @@ namespace boost { namespace fusion
vector_iterator(Vector& in_vec)
: vec(in_vec) {}
- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
- vector_iterator(vector_iterator const& rhs)
- : vec(rhs.vec) {}
-
Vector& vec;
-
- // silence MSVC warning C4512: assignment operator could not be generated
- BOOST_DELETED_FUNCTION(vector_iterator& operator= (vector_iterator const&))
};
}}
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
namespace std
{
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/iterator/detail/segment_sequence.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/iterator/detail/segment_sequence.hpp
index 8b8d5c13f4..8b45cc1305 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/iterator/detail/segment_sequence.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/iterator/detail/segment_sequence.hpp
@@ -13,6 +13,11 @@
#include <boost/fusion/support/tag_of.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4512) // assignment operator could not be generated.
+#endif
+
namespace boost { namespace fusion { namespace detail
{
struct segment_sequence_tag {};
@@ -36,6 +41,10 @@ namespace boost { namespace fusion { namespace detail
};
}
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
namespace extension
{
template<typename Tag>
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/iterator/iterator_adapter.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/iterator/iterator_adapter.hpp
index de8938f6ce..999d57b2b1 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/iterator/iterator_adapter.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/iterator/iterator_adapter.hpp
@@ -19,6 +19,11 @@
#include <boost/fusion/iterator/value_of.hpp>
#include <boost/type_traits/remove_const.hpp>
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4512) // assignment operator could not be generated.
+#endif
+
namespace boost { namespace fusion
{
template <typename Derived_, typename Iterator_,
@@ -135,6 +140,10 @@ namespace boost { namespace fusion
};
}}
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
namespace std
{
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/support/config.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/support/config.hpp
index dc614d9d33..7c87adeb97 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/support/config.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/support/config.hpp
@@ -127,4 +127,14 @@ namespace boost { namespace fusion { namespace detail
# define BOOST_FUSION_NOEXCEPT_ON_DEFAULTED BOOST_NOEXCEPT
#endif
+#ifdef _MSC_VER
+# define BOOST_FUSION_PUSH_WARNINGS __pragma(warning(push))
+# define BOOST_FUSION_POP_WARNINGS __pragma(warning(pop))
+# define BOOST_FUSION_DISABLE_MSVC_WARNING(num) __pragma(warning(disable : num))
+#else
+# define BOOST_FUSION_PUSH_WARNINGS
+# define BOOST_FUSION_POP_WARNINGS
+# define BOOST_FUSION_DISABLE_MSVC_WARNING(num)
+#endif
+
#endif
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/support/detail/as_fusion_element.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/support/detail/as_fusion_element.hpp
index 2af960eedf..08f4db9238 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/support/detail/as_fusion_element.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/support/detail/as_fusion_element.hpp
@@ -9,7 +9,7 @@
#define FUSION_AS_FUSION_ELEMENT_05052005_0338
#include <boost/fusion/support/config.hpp>
-#include <boost/ref.hpp>
+#include <boost/core/ref.hpp>
#ifndef BOOST_NO_CXX11_HDR_FUNCTIONAL
#include <functional>
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/view/filter_view/filter_view.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/view/filter_view/filter_view.hpp
index b9b7e7fc44..c4e05e8d92 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/view/filter_view/filter_view.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/view/filter_view/filter_view.hpp
@@ -22,6 +22,11 @@
#include <boost/mpl/inherit.hpp>
#include <boost/mpl/identity.hpp>
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4512) // assignment operator could not be generated.
+#endif
+
namespace boost { namespace fusion
{
struct filter_view_tag;
@@ -52,21 +57,17 @@ namespace boost { namespace fusion
{}
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
- filter_view(filter_view const& rhs)
- : seq(rhs.seq)
- {}
-
- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
first_type first() const { return fusion::begin(seq); }
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
last_type last() const { return fusion::end(seq); }
typename mpl::if_<traits::is_view<Sequence>, Sequence, Sequence&>::type seq;
-
- // silence MSVC warning C4512: assignment operator could not be generated
- BOOST_DELETED_FUNCTION(filter_view& operator= (filter_view const&))
};
}}
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
#endif
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/view/filter_view/filter_view_iterator.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/view/filter_view/filter_view_iterator.hpp
index 05eda69b8c..7a907f50e7 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/view/filter_view/filter_view_iterator.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/view/filter_view/filter_view_iterator.hpp
@@ -26,6 +26,11 @@
#include <boost/fusion/view/filter_view/detail/value_of_data_impl.hpp>
#include <boost/fusion/view/filter_view/detail/key_of_impl.hpp>
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4512) // assignment operator could not be generated.
+#endif
+
namespace boost { namespace fusion
{
struct filter_view_iterator_tag;
@@ -59,17 +64,14 @@ namespace boost { namespace fusion
filter_iterator(First const& in_first)
: first(filter::iter_call(first_converter::call(in_first))) {}
- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
- filter_iterator(filter_iterator const& rhs)
- : first(rhs.first) {}
-
first_type first;
-
- // silence MSVC warning C4512: assignment operator could not be generated
- BOOST_DELETED_FUNCTION(filter_iterator& operator= (filter_iterator const&))
};
}}
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
namespace std
{
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/view/joint_view/joint_view.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/view/joint_view/joint_view.hpp
index 03e38d694c..1cf6d0d573 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/view/joint_view/joint_view.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/view/joint_view/joint_view.hpp
@@ -25,6 +25,11 @@
#include <boost/mpl/inherit.hpp>
#include <boost/mpl/identity.hpp>
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4512) // assignment operator could not be generated.
+#endif
+
namespace boost { namespace fusion
{
struct joint_view_tag;
@@ -69,15 +74,16 @@ namespace boost { namespace fusion
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
concat_last_type concat_last() const { return fusion::end(seq2); }
- // silence MSVC warning C4512: assignment operator could not be generated
- BOOST_DELETED_FUNCTION(joint_view& operator= (joint_view const&))
-
private:
typename mpl::if_<traits::is_view<Sequence1>, Sequence1, Sequence1&>::type seq1;
typename mpl::if_<traits::is_view<Sequence2>, Sequence2, Sequence2&>::type seq2;
};
}}
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
#endif
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/view/joint_view/joint_view_iterator.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/view/joint_view/joint_view_iterator.hpp
index f6db30915e..1b446189b5 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/view/joint_view/joint_view_iterator.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/view/joint_view/joint_view_iterator.hpp
@@ -20,6 +20,11 @@
#include <boost/fusion/view/joint_view/detail/key_of_impl.hpp>
#include <boost/static_assert.hpp>
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4512) // assignment operator could not be generated.
+#endif
+
namespace boost { namespace fusion
{
struct joint_view_iterator_tag;
@@ -49,12 +54,13 @@ namespace boost { namespace fusion
first_type first;
concat_type concat;
-
- // silence MSVC warning C4512: assignment operator could not be generated
- BOOST_DELETED_FUNCTION(joint_view_iterator& operator= (joint_view_iterator const&))
};
}}
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
namespace std
{
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/view/single_view/single_view_iterator.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/view/single_view/single_view_iterator.hpp
index 0de6c84261..38c25ed578 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/view/single_view/single_view_iterator.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/view/single_view/single_view_iterator.hpp
@@ -20,6 +20,11 @@
#include <boost/fusion/view/single_view/detail/value_of_impl.hpp>
#include <boost/config.hpp>
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4512) // assignment operator could not be generated.
+#endif
+
namespace boost { namespace fusion
{
struct single_view_iterator_tag;
@@ -40,11 +45,13 @@ namespace boost { namespace fusion
: view(in_view) {}
SingleView& view;
-
- BOOST_DELETED_FUNCTION(single_view_iterator& operator=(single_view_iterator const&))
};
}}
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
namespace std
{
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/detail/deref_data_impl.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/detail/deref_data_impl.hpp
new file mode 100644
index 0000000000..95671eceda
--- /dev/null
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/detail/deref_data_impl.hpp
@@ -0,0 +1,73 @@
+/*=============================================================================
+ Copyright (c) 2022 Denis Mikhailov
+ 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)
+==============================================================================*/
+
+#if !defined(BOOST_FUSION_TRANSFORM_VIEW_DEREF_DATA_IMPL_JAN_9_2022_0354PM)
+#define BOOST_FUSION_TRANSFORM_VIEW_DEREF_DATA_IMPL_JAN_9_2022_0354PM
+
+#include <boost/fusion/support/config.hpp>
+#include <boost/fusion/iterator/deref.hpp>
+#include <boost/type_traits/remove_reference.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/type_traits/add_reference.hpp>
+#include <boost/type_traits/add_const.hpp>
+#include <boost/type_traits/is_reference.hpp>
+#include <boost/type_traits/is_const.hpp>
+#include <boost/utility/result_of.hpp>
+#include <boost/mpl/if.hpp>
+
+namespace boost { namespace fusion
+{
+ struct transform_view_iterator_tag;
+ struct transform_view_iterator2_tag;
+
+ namespace extension
+ {
+ template<typename Tag>
+ struct deref_data_impl;
+
+ // Unary Version
+ template<>
+ struct deref_data_impl<transform_view_iterator_tag>
+ {
+ template <typename Iterator>
+ struct apply
+ {
+ typedef typename
+ result_of::deref<typename Iterator::first_type>::type
+ value_type;
+
+ typedef typename Iterator::transform_type F;
+ typedef typename boost::result_of<F(value_type)>::type transformed_type;
+ typedef typename boost::remove_reference<transformed_type>::type transformed_type_unref;
+ typedef typename boost::remove_const<transformed_type_unref>::type transformed_type_unconst;
+
+ typedef typename transformed_type_unconst::second_type raw_type;
+ typedef typename
+ boost::mpl::if_<
+ is_reference<transformed_type>
+ , typename boost::mpl::if_<
+ is_const<transformed_type_unref>
+ , typename boost::add_reference<typename boost::add_const<raw_type>::type>::type
+ , typename boost::add_reference<raw_type>::type
+ >::type
+ , raw_type
+ >::type
+ type;
+
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static type
+ call(Iterator const& i)
+ {
+ return i.f(fusion::deref(i.first)).second;
+ }
+ };
+ };
+
+ // Binary Version is not supported with Associative Sequence
+ }
+}}
+
+#endif
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/detail/key_of_impl.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/detail/key_of_impl.hpp
new file mode 100644
index 0000000000..2800e11dc1
--- /dev/null
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/detail/key_of_impl.hpp
@@ -0,0 +1,49 @@
+/*=============================================================================
+ Copyright (c) 2022 Denis Mikhailov
+ 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)
+==============================================================================*/
+
+#if !defined(BOOST_FUSION_TRANSFORM_VIEW_KEY_OF_IMPL_JAN_9_2022_0354PM)
+#define BOOST_FUSION_TRANSFORM_VIEW_KEY_OF_IMPL_JAN_9_2022_0354PM
+
+#include <boost/fusion/support/config.hpp>
+#include <boost/fusion/iterator/deref.hpp>
+#include <boost/type_traits/remove_reference.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/utility/result_of.hpp>
+
+namespace boost { namespace fusion
+{
+ struct transform_view_iterator_tag;
+ struct transform_view_iterator2_tag;
+
+ namespace extension
+ {
+ template<typename Tag>
+ struct key_of_impl;
+
+ // Unary Version
+ template<>
+ struct key_of_impl<transform_view_iterator_tag>
+ {
+ template <typename Iterator>
+ struct apply
+ {
+ typedef typename
+ result_of::deref<typename Iterator::first_type>::type
+ value_type;
+
+ typedef typename Iterator::transform_type F;
+ typedef typename boost::result_of<F(value_type)>::type transformed_type;
+ typedef typename boost::remove_reference<transformed_type>::type transformed_type_unref;
+ typedef typename boost::remove_const<transformed_type_unref>::type transformed_type_unconst;
+
+ typedef typename transformed_type_unconst::first_type type;
+ };
+ };
+
+ // Binary Version is not supported with Associative Sequence
+ }
+}}
+#endif
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/detail/value_of_data_impl.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/detail/value_of_data_impl.hpp
new file mode 100644
index 0000000000..dc3f1e5564
--- /dev/null
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/detail/value_of_data_impl.hpp
@@ -0,0 +1,49 @@
+/*=============================================================================
+ Copyright (c) 2022 Denis Mikhailov
+ 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)
+==============================================================================*/
+
+#if !defined(BOOST_FUSION_TRANSFORM_VIEW_VALUE_OF_IMPL_JAN_9_2022_0354PM)
+#define BOOST_FUSION_TRANSFORM_VIEW_VALUE_OF_IMPL_JAN_9_2022_0354PM
+
+#include <boost/fusion/support/config.hpp>
+#include <boost/fusion/iterator/deref.hpp>
+#include <boost/type_traits/remove_reference.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/utility/result_of.hpp>
+
+namespace boost { namespace fusion
+{
+ struct transform_view_iterator_tag;
+ struct transform_view_iterator2_tag;
+
+ namespace extension
+ {
+ template<typename Tag>
+ struct value_of_data_impl;
+
+ // Unary Version
+ template<>
+ struct value_of_data_impl<transform_view_iterator_tag>
+ {
+ template <typename Iterator>
+ struct apply
+ {
+ typedef typename
+ result_of::deref<typename Iterator::first_type>::type
+ value_type;
+
+ typedef typename Iterator::transform_type F;
+ typedef typename boost::result_of<F(value_type)>::type transformed_type;
+ typedef typename boost::remove_reference<transformed_type>::type transformed_type_unref;
+ typedef typename boost::remove_const<transformed_type_unref>::type transformed_type_unconst;
+
+ typedef typename transformed_type_unconst::second_type type;
+ };
+ };
+
+ // Binary Version is not supported with Associative Sequence
+ }
+}}
+#endif
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/transform_view.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/transform_view.hpp
index f0633018ee..901fe362ad 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/transform_view.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/transform_view.hpp
@@ -27,6 +27,11 @@
#include <boost/fusion/sequence/intrinsic/size.hpp>
#include <boost/mpl/bool.hpp>
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4512) // assignment operator could not be generated.
+#endif
+
namespace boost { namespace fusion
{
struct void_;
@@ -75,9 +80,6 @@ namespace boost { namespace fusion
transform_type f;
typename mpl::if_<traits::is_view<Sequence1>, Sequence1, Sequence1&>::type seq1;
typename mpl::if_<traits::is_view<Sequence2>, Sequence2, Sequence2&>::type seq2;
-
- // silence MSVC warning C4512: assignment operator could not be generated
- BOOST_DELETED_FUNCTION(transform_view& operator= (transform_view const&))
};
// Unary Version
@@ -111,12 +113,13 @@ namespace boost { namespace fusion
last_type last() const { return fusion::end(seq); }
typename mpl::if_<traits::is_view<Sequence>, Sequence, Sequence&>::type seq;
transform_type f;
-
- // silence MSVC warning C4512: assignment operator could not be generated
- BOOST_DELETED_FUNCTION(transform_view& operator= (transform_view const&))
};
}}
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
#endif
diff --git a/contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/transform_view_iterator.hpp b/contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/transform_view_iterator.hpp
index 2689ae8aab..ba5b7c9b11 100644
--- a/contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/transform_view_iterator.hpp
+++ b/contrib/restricted/boost/fusion/include/boost/fusion/view/transform_view/transform_view_iterator.hpp
@@ -19,6 +19,14 @@
#include <boost/fusion/view/transform_view/detail/advance_impl.hpp>
#include <boost/fusion/view/transform_view/detail/distance_impl.hpp>
#include <boost/fusion/view/transform_view/detail/equal_to_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/key_of_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/value_of_data_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/deref_data_impl.hpp>
+
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4512) // assignment operator could not be generated.
+#endif
namespace boost { namespace fusion
{
@@ -41,9 +49,6 @@ namespace boost { namespace fusion
first_type first;
transform_type f;
-
- // silence MSVC warning C4512: assignment operator could not be generated
- BOOST_DELETED_FUNCTION(transform_view_iterator& operator= (transform_view_iterator const&))
};
// Binary Version
@@ -68,12 +73,13 @@ namespace boost { namespace fusion
first1_type first1;
first2_type first2;
transform_type f;
-
- // silence MSVC warning C4512: assignment operator could not be generated
- BOOST_DELETED_FUNCTION(transform_view_iterator2& operator= (transform_view_iterator2 const&))
};
}}
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
namespace std
{