Merge pull request #257 from Kojoley/deprecated-copy-again

Fix Clang 13 `-Wdeprecated-copy` warnings
This commit is contained in:
Joel de Guzman
2022-09-10 06:22:02 +08:00
committed by GitHub
34 changed files with 282 additions and 80 deletions

View File

@ -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
{

View File

@ -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

View File

@ -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

View File

@ -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
{

View File

@ -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( \

View File

@ -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( \

View File

@ -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>

View File

@ -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

View File

@ -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

View File

@ -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
{

View File

@ -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>
{

View File

@ -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
{

View File

@ -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
{

View File

@ -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>

View File

@ -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
{

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
{

View File

@ -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<>

View File

@ -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>

View File

@ -28,6 +28,10 @@ namespace boost {
};
}
#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>
@ -39,5 +43,8 @@ namespace boost { namespace fusion {
: base_type(in_seq, detail::identity()) {}
};
}}
#ifdef _MSC_VER
# pragma warning(pop)
#endif
#endif

View File

@ -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

View File

@ -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
{

View File

@ -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
{

View File

@ -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

View File

@ -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
{

View File

@ -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

View File

@ -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
{

View File

@ -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
{

View File

@ -10,6 +10,11 @@
#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
{

View File

@ -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

View File

@ -23,6 +23,11 @@
#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
{
// Unary Version
@ -44,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
@ -71,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
{

View File

@ -21,6 +21,10 @@
#include <boost/static_assert.hpp>
#include "tree.hpp"
#ifdef _MSC_VER
# pragma warning(push)
# pragma warning(disable: 4512) // assignment operator could not be generated.
#endif
struct ostream_fun
{
ostream_fun(std::ostream &sout)
@ -34,6 +38,9 @@ struct ostream_fun
private:
std::ostream & sout_;
};
#ifdef _MSC_VER
# pragma warning(pop)
#endif
template<typename Tree>
void