mirror of
https://github.com/boostorg/fusion.git
synced 2025-07-21 08:12:39 +02:00
Merge branch 'develop'
This commit is contained in:
@ -18,6 +18,11 @@
|
||||
#include <boost/type_traits/is_const.hpp>
|
||||
#include <boost/fusion/iterator/iterator_facade.hpp>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable: 4512) // assignment operator could not be generated.
|
||||
#endif
|
||||
|
||||
namespace boost { namespace fusion
|
||||
{
|
||||
struct random_access_traversal_tag;
|
||||
@ -102,11 +107,13 @@ namespace boost { namespace fusion
|
||||
return type();
|
||||
}
|
||||
};
|
||||
|
||||
BOOST_DELETED_FUNCTION(array_iterator& operator=(array_iterator const&))
|
||||
};
|
||||
}}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
|
||||
namespace std
|
||||
{
|
||||
|
@ -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,10 +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&))
|
||||
};
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
|
||||
template <typename Null>
|
||||
struct boost_tuple_null_iterator
|
||||
|
@ -19,6 +19,11 @@
|
||||
#include <boost/fusion/iterator/iterator_facade.hpp>
|
||||
#include <boost/fusion/adapted/std_array/detail/array_size.hpp>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable: 4512) // assignment operator could not be generated.
|
||||
#endif
|
||||
|
||||
namespace boost { namespace fusion
|
||||
{
|
||||
struct random_access_traversal_tag;
|
||||
@ -99,9 +104,11 @@ namespace boost { namespace fusion
|
||||
return type();
|
||||
}
|
||||
};
|
||||
|
||||
BOOST_DELETED_FUNCTION(std_array_iterator& operator=(std_array_iterator const&))
|
||||
};
|
||||
}}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -17,6 +17,11 @@
|
||||
#include <tuple>
|
||||
#include <utility>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable: 4512) // assignment operator could not be generated.
|
||||
#endif
|
||||
|
||||
namespace boost { namespace fusion
|
||||
{
|
||||
struct random_access_traversal_tag;
|
||||
@ -107,6 +112,10 @@ namespace boost { namespace fusion
|
||||
};
|
||||
}}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
|
||||
namespace std
|
||||
{
|
||||
|
@ -326,6 +326,9 @@
|
||||
#define BOOST_FUSION_DEFINE_STRUCT_INLINE_ITERATOR_IMPL_IMPL( \
|
||||
NAME, ATTRIBUTES_SEQ, ATTRIBUTES_SEQ_SIZE) \
|
||||
\
|
||||
BOOST_FUSION_PUSH_WARNINGS \
|
||||
BOOST_FUSION_DISABLE_MSVC_WARNING(4512) \
|
||||
\
|
||||
template <typename boost_fusion_detail_Seq, int N> \
|
||||
struct BOOST_FUSION_ITERATOR_NAME(NAME) \
|
||||
: boost::fusion::iterator_facade< \
|
||||
@ -418,7 +421,10 @@
|
||||
return type(it.seq_); \
|
||||
} \
|
||||
}; \
|
||||
};
|
||||
}; \
|
||||
\
|
||||
BOOST_FUSION_POP_WARNINGS \
|
||||
/**/
|
||||
|
||||
|
||||
#define BOOST_FUSION_DEFINE_STRUCT_INLINE_MEMBERS_IMPL_IMPL( \
|
||||
|
@ -19,6 +19,9 @@
|
||||
\
|
||||
BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DEFINITION_BEGIN(NAMESPACE_SEQ) \
|
||||
\
|
||||
BOOST_FUSION_PUSH_WARNINGS \
|
||||
BOOST_FUSION_DISABLE_MSVC_WARNING(4512) \
|
||||
\
|
||||
struct NAME \
|
||||
{ \
|
||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
|
||||
@ -27,10 +30,10 @@
|
||||
{} \
|
||||
\
|
||||
WRAPPED_TYPE& obj; \
|
||||
\
|
||||
BOOST_DELETED_FUNCTION(NAME& operator= (NAME const&)) \
|
||||
}; \
|
||||
\
|
||||
BOOST_FUSION_POP_WARNINGS \
|
||||
\
|
||||
BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DEFINITION_END(NAMESPACE_SEQ)
|
||||
|
||||
#define BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE( \
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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,13 +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&))
|
||||
};
|
||||
|
||||
}}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
|
||||
namespace std
|
||||
{
|
||||
|
@ -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,10 +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&))
|
||||
};
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
|
||||
struct nil_iterator : iterator_base<nil_iterator>
|
||||
{
|
||||
|
@ -17,6 +17,11 @@
|
||||
#include <boost/type_traits/is_const.hpp>
|
||||
#include <boost/type_traits/add_const.hpp>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable: 4512) // assignment operator could not be generated.
|
||||
#endif
|
||||
|
||||
namespace boost { namespace fusion
|
||||
{
|
||||
struct random_access_traversal_tag;
|
||||
@ -155,13 +160,13 @@ namespace boost { namespace fusion
|
||||
{};
|
||||
|
||||
Seq& seq_;
|
||||
|
||||
// silence MSVC warning C4512: assignment operator could not be generated
|
||||
BOOST_DELETED_FUNCTION(map_iterator& operator= (map_iterator const&))
|
||||
};
|
||||
|
||||
}}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
|
||||
namespace std
|
||||
{
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
{
|
||||
|
12
include/boost/fusion/include/identity_view.hpp
Normal file
12
include/boost/fusion/include/identity_view.hpp
Normal file
@ -0,0 +1,12 @@
|
||||
/*=============================================================================
|
||||
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(FUSION_INCLUDE_IDENTITY_VIEW)
|
||||
#define FUSION_INCLUDE_IDENTITY_VIEW
|
||||
|
||||
#include <boost/fusion/support/config.hpp>
|
||||
#include <boost/fusion/view/identity_view.hpp>
|
||||
|
||||
#endif
|
@ -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>
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -75,6 +75,10 @@ namespace boost { namespace fusion
|
||||
}
|
||||
};
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable: 4512) // assignment operator could not be generated.
|
||||
#endif
|
||||
template <typename Tag, typename Stream>
|
||||
class string_ios_manip
|
||||
{
|
||||
@ -143,10 +147,10 @@ namespace boost { namespace fusion
|
||||
}
|
||||
|
||||
Stream& stream;
|
||||
|
||||
// silence MSVC warning C4512: assignment operator could not be generated
|
||||
BOOST_DELETED_FUNCTION(string_ios_manip& operator= (string_ios_manip const&))
|
||||
};
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
|
||||
} // detail
|
||||
|
||||
|
@ -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
|
||||
|
@ -10,7 +10,7 @@
|
||||
#define BOOST_FUSION_SUPPORT_DEDUCE_HPP_INCLUDED
|
||||
|
||||
#include <boost/fusion/support/config.hpp>
|
||||
#include <boost/ref.hpp>
|
||||
#include <boost/core/ref.hpp>
|
||||
|
||||
#ifndef BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
#include <functional>
|
||||
|
@ -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>
|
||||
|
@ -17,5 +17,6 @@
|
||||
#include <boost/fusion/view/transform_view.hpp>
|
||||
#include <boost/fusion/view/zip_view.hpp>
|
||||
#include <boost/fusion/view/flatten_view.hpp>
|
||||
#include <boost/fusion/view/identity_view.hpp>
|
||||
|
||||
#endif
|
||||
|
@ -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;
|
||||
@ -51,22 +56,18 @@ namespace boost { namespace fusion
|
||||
: seq(in_seq)
|
||||
{}
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -19,6 +19,10 @@
|
||||
#include <boost/fusion/sequence/intrinsic/end.hpp>
|
||||
#include <boost/fusion/view/flatten_view/flatten_view_iterator.hpp>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable: 4512) // assignment operator could not be generated.
|
||||
#endif
|
||||
|
||||
namespace boost { namespace fusion
|
||||
{
|
||||
@ -52,6 +56,10 @@ namespace boost { namespace fusion
|
||||
};
|
||||
}}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
|
||||
namespace boost { namespace fusion { namespace extension
|
||||
{
|
||||
template<>
|
||||
|
@ -19,6 +19,10 @@
|
||||
#include <boost/fusion/iterator/deref.hpp>
|
||||
#include <boost/fusion/iterator/value_of.hpp>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable: 4512) // assignment operator could not be generated.
|
||||
#endif
|
||||
|
||||
namespace boost { namespace fusion
|
||||
{
|
||||
@ -46,6 +50,10 @@ namespace boost { namespace fusion
|
||||
};
|
||||
}}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
template<class Iterator, class = void>
|
||||
|
14
include/boost/fusion/view/identity_view.hpp
Normal file
14
include/boost/fusion/view/identity_view.hpp
Normal file
@ -0,0 +1,14 @@
|
||||
/*=============================================================================
|
||||
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_SEQUENCE_IDENTITY_VIEW_HPP_INCLUDED)
|
||||
#define BOOST_FUSION_SEQUENCE_IDENTITY_VIEW_HPP_INCLUDED
|
||||
|
||||
#include <boost/fusion/support/config.hpp>
|
||||
#include <boost/fusion/view/identity_view/identity_view.hpp>
|
||||
|
||||
|
||||
#endif
|
50
include/boost/fusion/view/identity_view/identity_view.hpp
Normal file
50
include/boost/fusion/view/identity_view/identity_view.hpp
Normal file
@ -0,0 +1,50 @@
|
||||
/*=============================================================================
|
||||
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_IDENTITY_VIEW_HPP_INCLUDED)
|
||||
#define BOOST_FUSION_IDENTITY_VIEW_HPP_INCLUDED
|
||||
|
||||
#include <boost/fusion/support/config.hpp>
|
||||
#include <boost/fusion/view/transform_view.hpp>
|
||||
#include <boost/functional/identity.hpp>
|
||||
#include <boost/utility/result_of.hpp>
|
||||
|
||||
namespace boost { namespace fusion {
|
||||
namespace detail {
|
||||
struct identity : boost::identity
|
||||
{
|
||||
};
|
||||
}
|
||||
}}
|
||||
|
||||
namespace boost {
|
||||
template<typename T>
|
||||
struct result_of<fusion::detail::identity(T)>
|
||||
{
|
||||
typedef T type;
|
||||
};
|
||||
}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable: 4512) // assignment operator could not be generated.
|
||||
#endif
|
||||
namespace boost { namespace fusion {
|
||||
template<typename Sequence> struct identity_view
|
||||
: transform_view<Sequence, detail::identity>
|
||||
{
|
||||
typedef transform_view<Sequence, detail::identity> base_type;
|
||||
|
||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||
identity_view(Sequence& in_seq)
|
||||
: base_type(in_seq, detail::identity()) {}
|
||||
};
|
||||
}}
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#endif
|
@ -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
|
||||
|
||||
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -26,6 +26,11 @@
|
||||
#include <boost/fusion/view/nview/detail/distance_impl.hpp>
|
||||
#include <boost/fusion/view/nview/detail/equal_to_impl.hpp>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable: 4512) // assignment operator could not be generated.
|
||||
#endif
|
||||
|
||||
namespace boost { namespace fusion
|
||||
{
|
||||
struct nview_iterator_tag;
|
||||
@ -46,13 +51,14 @@ namespace boost { namespace fusion
|
||||
: seq(in_seq) {}
|
||||
|
||||
Sequence& seq;
|
||||
|
||||
// silence MSVC warning C4512: assignment operator could not be generated
|
||||
BOOST_DELETED_FUNCTION(nview_iterator& operator= (nview_iterator const&))
|
||||
};
|
||||
|
||||
}}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
|
||||
namespace std
|
||||
{
|
||||
|
@ -18,6 +18,10 @@
|
||||
#include <boost/fusion/view/repetitive_view/detail/begin_impl.hpp>
|
||||
#include <boost/fusion/view/repetitive_view/detail/end_impl.hpp>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable: 4512) // assignment operator could not be generated.
|
||||
#endif
|
||||
|
||||
namespace boost { namespace fusion
|
||||
{
|
||||
@ -43,11 +47,12 @@ namespace boost { namespace fusion
|
||||
: seq(in_seq) {}
|
||||
|
||||
stored_seq_type seq;
|
||||
|
||||
// silence MSVC warning C4512: assignment operator could not be generated
|
||||
BOOST_DELETED_FUNCTION(repetitive_view& operator= (repetitive_view const&))
|
||||
};
|
||||
|
||||
}}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -19,6 +19,11 @@
|
||||
#include <boost/fusion/view/repetitive_view/detail/next_impl.hpp>
|
||||
#include <boost/fusion/view/repetitive_view/detail/value_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 repetitive_view_iterator_tag;
|
||||
@ -46,12 +51,13 @@ namespace boost { namespace fusion
|
||||
|
||||
Sequence& seq;
|
||||
pos_type pos;
|
||||
|
||||
// silence MSVC warning C4512: assignment operator could not be generated
|
||||
BOOST_DELETED_FUNCTION(repetitive_view_iterator& operator= (repetitive_view_iterator const&))
|
||||
};
|
||||
}}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
|
||||
namespace std
|
||||
{
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*=============================================================================
|
||||
Copyright (c) 2009 Christopher Schmidt
|
||||
Copyright (c) 2021-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)
|
||||
@ -10,6 +11,7 @@
|
||||
|
||||
#include <boost/fusion/support/config.hpp>
|
||||
#include <boost/fusion/iterator/deref_data.hpp>
|
||||
#include <boost/fusion/iterator/prior.hpp>
|
||||
|
||||
namespace boost { namespace fusion { namespace extension
|
||||
{
|
||||
@ -23,14 +25,18 @@ namespace boost { namespace fusion { namespace extension
|
||||
struct apply
|
||||
{
|
||||
typedef typename
|
||||
result_of::deref_data<typename It::first_type>::type
|
||||
result_of::deref_data<
|
||||
typename result_of::prior<
|
||||
typename It::first_type
|
||||
>::type
|
||||
>::type
|
||||
type;
|
||||
|
||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||
static type
|
||||
call(It const& it)
|
||||
{
|
||||
return fusion::deref_data(it.first);
|
||||
return fusion::deref_data(fusion::prior(it.first));
|
||||
}
|
||||
};
|
||||
};
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*=============================================================================
|
||||
Copyright (c) 2009 Christopher Schmidt
|
||||
Copyright (c) 2021-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)
|
||||
@ -10,6 +11,7 @@
|
||||
|
||||
#include <boost/fusion/support/config.hpp>
|
||||
#include <boost/fusion/iterator/key_of.hpp>
|
||||
#include <boost/fusion/iterator/prior.hpp>
|
||||
|
||||
namespace boost { namespace fusion { namespace extension
|
||||
{
|
||||
@ -21,8 +23,15 @@ namespace boost { namespace fusion { namespace extension
|
||||
{
|
||||
template <typename It>
|
||||
struct apply
|
||||
: result_of::key_of<typename It::it_type>
|
||||
{};
|
||||
{
|
||||
typedef typename
|
||||
result_of::key_of<
|
||||
typename result_of::prior<
|
||||
typename It::first_type
|
||||
>::type
|
||||
>::type
|
||||
type;
|
||||
};
|
||||
};
|
||||
}}}
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*=============================================================================
|
||||
Copyright (c) 2009 Christopher Schmidt
|
||||
Copyright (c) 2021-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)
|
||||
@ -10,6 +11,7 @@
|
||||
|
||||
#include <boost/fusion/support/config.hpp>
|
||||
#include <boost/fusion/iterator/value_of_data.hpp>
|
||||
#include <boost/fusion/iterator/prior.hpp>
|
||||
|
||||
namespace boost { namespace fusion { namespace extension
|
||||
{
|
||||
@ -21,8 +23,15 @@ namespace boost { namespace fusion { namespace extension
|
||||
{
|
||||
template <typename It>
|
||||
struct apply
|
||||
: result_of::value_of_data<typename It::first_type>
|
||||
{};
|
||||
{
|
||||
typedef typename
|
||||
result_of::value_of_data<
|
||||
typename result_of::prior<
|
||||
typename It::first_type
|
||||
>::type
|
||||
>::type
|
||||
type;
|
||||
};
|
||||
};
|
||||
}}}
|
||||
|
||||
|
@ -27,6 +27,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 reverse_view_tag;
|
||||
@ -60,12 +65,13 @@ namespace boost { namespace fusion
|
||||
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(reverse_view& operator= (reverse_view const&))
|
||||
};
|
||||
}}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -24,6 +24,11 @@
|
||||
#include <boost/type_traits/is_base_of.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 reverse_view_iterator_tag;
|
||||
@ -47,12 +52,13 @@ namespace boost { namespace fusion
|
||||
: first(converter::call(in_first)) {}
|
||||
|
||||
first_type first;
|
||||
|
||||
// silence MSVC warning C4512: assignment operator could not be generated
|
||||
BOOST_DELETED_FUNCTION(reverse_view_iterator& operator= (reverse_view_iterator const&))
|
||||
};
|
||||
}}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
|
||||
namespace std
|
||||
{
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -0,0 +1,71 @@
|
||||
/*=============================================================================
|
||||
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/mpl/if.hpp>
|
||||
#include <boost/type_traits/add_const.hpp>
|
||||
#include <boost/type_traits/add_reference.hpp>
|
||||
#include <boost/type_traits/is_const.hpp>
|
||||
#include <boost/type_traits/is_reference.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 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
|
@ -0,0 +1,47 @@
|
||||
/*=============================================================================
|
||||
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/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
|
@ -0,0 +1,47 @@
|
||||
/*=============================================================================
|
||||
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/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
|
@ -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
|
||||
|
||||
|
||||
|
@ -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
|
||||
{
|
||||
|
Reference in New Issue
Block a user