diff options
Diffstat (limited to 'boost/fusion/support')
-rw-r--r-- | boost/fusion/support/as_const.hpp | 1 | ||||
-rw-r--r-- | boost/fusion/support/category_of.hpp | 1 | ||||
-rw-r--r-- | boost/fusion/support/config.hpp | 16 | ||||
-rw-r--r-- | boost/fusion/support/deduce.hpp | 1 | ||||
-rw-r--r-- | boost/fusion/support/deduce_sequence.hpp | 4 | ||||
-rw-r--r-- | boost/fusion/support/detail/access.hpp | 9 | ||||
-rw-r--r-- | boost/fusion/support/detail/as_fusion_element.hpp | 1 | ||||
-rw-r--r-- | boost/fusion/support/detail/is_mpl_sequence.hpp | 1 | ||||
-rw-r--r-- | boost/fusion/support/detail/pp_round.hpp | 1 | ||||
-rw-r--r-- | boost/fusion/support/detail/segmented_fold_until_impl.hpp | 12 | ||||
-rw-r--r-- | boost/fusion/support/is_iterator.hpp | 1 | ||||
-rw-r--r-- | boost/fusion/support/is_segmented.hpp | 1 | ||||
-rw-r--r-- | boost/fusion/support/is_sequence.hpp | 3 | ||||
-rw-r--r-- | boost/fusion/support/is_view.hpp | 1 | ||||
-rw-r--r-- | boost/fusion/support/iterator_base.hpp | 4 | ||||
-rw-r--r-- | boost/fusion/support/pair.hpp | 54 | ||||
-rw-r--r-- | boost/fusion/support/segmented_fold_until.hpp | 11 | ||||
-rw-r--r-- | boost/fusion/support/sequence_base.hpp | 4 | ||||
-rw-r--r-- | boost/fusion/support/tag_of.hpp | 1 | ||||
-rw-r--r-- | boost/fusion/support/unused.hpp | 8 |
20 files changed, 125 insertions, 10 deletions
diff --git a/boost/fusion/support/as_const.hpp b/boost/fusion/support/as_const.hpp index bb2a96a65d..ed535970c3 100644 --- a/boost/fusion/support/as_const.hpp +++ b/boost/fusion/support/as_const.hpp @@ -16,6 +16,7 @@ namespace boost { namespace fusion { namespace extension // such contexts with calls to this function. Users can // specialize this function for their own wrappers. template <typename T> + BOOST_FUSION_GPU_ENABLED const T& as_const(const T& obj) { return obj; diff --git a/boost/fusion/support/category_of.hpp b/boost/fusion/support/category_of.hpp index 805d895ba2..6bdf6d0291 100644 --- a/boost/fusion/support/category_of.hpp +++ b/boost/fusion/support/category_of.hpp @@ -7,6 +7,7 @@ #if !defined(FUSION_CATEGORY_OF_07202005_0308) #define FUSION_CATEGORY_OF_07202005_0308 +#include <boost/fusion/support/config.hpp> #include <boost/fusion/support/detail/category_of.hpp> #include <boost/fusion/support/tag_of.hpp> #include <boost/type_traits/is_base_of.hpp> diff --git a/boost/fusion/support/config.hpp b/boost/fusion/support/config.hpp new file mode 100644 index 0000000000..16e38f9587 --- /dev/null +++ b/boost/fusion/support/config.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2014 Eric Niebler + + 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_SUPPORT_CONFIG_01092014_1718) +#define FUSION_SUPPORT_CONFIG_01092014_1718 + +#include <boost/config.hpp> + +#ifndef BOOST_FUSION_GPU_ENABLED +#define BOOST_FUSION_GPU_ENABLED BOOST_GPU_ENABLED +#endif + +#endif diff --git a/boost/fusion/support/deduce.hpp b/boost/fusion/support/deduce.hpp index 3a7231bdf1..8d53115ffc 100644 --- a/boost/fusion/support/deduce.hpp +++ b/boost/fusion/support/deduce.hpp @@ -9,6 +9,7 @@ #if !defined(BOOST_FUSION_SUPPORT_DEDUCE_HPP_INCLUDED) #define BOOST_FUSION_SUPPORT_DEDUCE_HPP_INCLUDED +#include <boost/fusion/support/config.hpp> #include <boost/ref.hpp> namespace boost { namespace fusion { namespace traits diff --git a/boost/fusion/support/deduce_sequence.hpp b/boost/fusion/support/deduce_sequence.hpp index ce02a3cd0d..24f4e2d821 100644 --- a/boost/fusion/support/deduce_sequence.hpp +++ b/boost/fusion/support/deduce_sequence.hpp @@ -9,6 +9,7 @@ #if !defined(BOOST_FUSION_SUPPORT_DEDUCE_SEQUENCE_HPP_INCLUDED) #define BOOST_FUSION_SUPPORT_DEDUCE_SEQUENCE_HPP_INCLUDED +#include <boost/fusion/support/config.hpp> #include <boost/fusion/support/deduce.hpp> #include <boost/fusion/container/vector/convert.hpp> #include <boost/fusion/view/transform_view.hpp> @@ -32,8 +33,9 @@ namespace boost { namespace fusion { namespace traits { }; // never called, but needed for decltype-based result_of (C++0x) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES template <typename T> + BOOST_FUSION_GPU_ENABLED typename result< deducer(T) >::type operator()(T&&) const; #endif diff --git a/boost/fusion/support/detail/access.hpp b/boost/fusion/support/detail/access.hpp index ced7cea18b..ab88538314 100644 --- a/boost/fusion/support/detail/access.hpp +++ b/boost/fusion/support/detail/access.hpp @@ -1,12 +1,13 @@ /*============================================================================= Copyright (c) 2001-2011 Joel de Guzman - Distributed under the Boost Software License, Version 1.0. (See accompanying + 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_ACCESS_04182005_0737) #define FUSION_ACCESS_04182005_0737 +#include <boost/fusion/support/config.hpp> #include <boost/type_traits/add_const.hpp> #include <boost/type_traits/add_reference.hpp> @@ -21,10 +22,10 @@ namespace boost { namespace fusion { namespace detail template <typename T> struct cref_result { - typedef typename + typedef typename add_reference< typename add_const<T>::type - >::type + >::type type; }; @@ -35,7 +36,7 @@ namespace boost { namespace fusion { namespace detail }; template <typename T> - struct call_param<T &> + struct call_param<T&> { typedef T& type; }; diff --git a/boost/fusion/support/detail/as_fusion_element.hpp b/boost/fusion/support/detail/as_fusion_element.hpp index 96cf2d004e..628dca4d16 100644 --- a/boost/fusion/support/detail/as_fusion_element.hpp +++ b/boost/fusion/support/detail/as_fusion_element.hpp @@ -8,6 +8,7 @@ #if !defined(FUSION_AS_FUSION_ELEMENT_05052005_0338) #define FUSION_AS_FUSION_ELEMENT_05052005_0338 +#include <boost/fusion/support/config.hpp> #include <boost/ref.hpp> namespace boost { namespace fusion { namespace detail diff --git a/boost/fusion/support/detail/is_mpl_sequence.hpp b/boost/fusion/support/detail/is_mpl_sequence.hpp index 376afc281c..1c485f91c5 100644 --- a/boost/fusion/support/detail/is_mpl_sequence.hpp +++ b/boost/fusion/support/detail/is_mpl_sequence.hpp @@ -8,6 +8,7 @@ #if !defined(FUSION_DETAIL_IS_MPL_SEQUENCE_29122006_1105) #define FUSION_DETAIL_IS_MPL_SEQUENCE_29122006_1105 +#include <boost/fusion/support/config.hpp> #include <boost/fusion/support/sequence_base.hpp> #include <boost/mpl/is_sequence.hpp> #include <boost/mpl/and.hpp> diff --git a/boost/fusion/support/detail/pp_round.hpp b/boost/fusion/support/detail/pp_round.hpp index e1a6161166..6c43b66f11 100644 --- a/boost/fusion/support/detail/pp_round.hpp +++ b/boost/fusion/support/detail/pp_round.hpp @@ -8,6 +8,7 @@ #ifndef BOOST_BOOST_FUSION_SUPPORT_PP_ROUND_HPP #define BOOST_BOOST_FUSION_SUPPORT_PP_ROUND_HPP +#include <boost/fusion/support/config.hpp> #include <boost/preprocessor/cat.hpp> #include <boost/preprocessor/comparison/less.hpp> #include <boost/preprocessor/control/if.hpp> diff --git a/boost/fusion/support/detail/segmented_fold_until_impl.hpp b/boost/fusion/support/detail/segmented_fold_until_impl.hpp index 08096c16ae..514e8d950b 100644 --- a/boost/fusion/support/detail/segmented_fold_until_impl.hpp +++ b/boost/fusion/support/detail/segmented_fold_until_impl.hpp @@ -7,6 +7,7 @@ #if !defined(BOOST_FUSION_SEGMENTED_FOLD_UNTIL_IMPL_HPP_INCLUDED) #define BOOST_FUSION_SEGMENTED_FOLD_UNTIL_IMPL_HPP_INCLUDED +#include <boost/fusion/support/config.hpp> #include <boost/mpl/bool.hpp> #include <boost/mpl/eval_if.hpp> #include <boost/mpl/identity.hpp> @@ -65,6 +66,7 @@ namespace boost { namespace fusion } template <typename Cur, typename Context> + BOOST_FUSION_GPU_ENABLED typename result_of::make_segmented_iterator<Cur, Context>::type make_segmented_iterator(Cur const& cur, Context const& context) { @@ -119,6 +121,7 @@ namespace boost { namespace fusion typedef iterator_range<Cur, End> range_type; typedef cons<range_type, Context> type; + BOOST_FUSION_GPU_ENABLED static type call(Cur const& cur, End const& end, Context const& context) { return cons<range_type, Context>(range_type(cur, end), context); @@ -167,6 +170,7 @@ namespace boost { namespace fusion typedef typename impl::type type; typedef typename impl::continue_type continue_type; + BOOST_FUSION_GPU_ENABLED static type call(Sequence& seq, State const& state, Context const& context, Fun const& fun) { return impl::call(fusion::segments(seq), state, context, fun); @@ -188,6 +192,7 @@ namespace boost { namespace fusion typedef typename apply_type::type type; typedef typename apply_type::continue_type continue_type; + BOOST_FUSION_GPU_ENABLED static type call(Sequence& seq, State const& state, Context const& context, Fun const& fun) { return apply_type::call(seq, state, context, fun); @@ -269,12 +274,14 @@ namespace boost { namespace fusion >::type continue_type; + BOOST_FUSION_GPU_ENABLED static type call(Begin const& beg, End const& end, State const& state , Context const& context, Fun const& fun) { return call(beg, end, state, context, fun, typename fold_recurse_impl::continue_type()); } + BOOST_FUSION_GPU_ENABLED static type call(Begin const& beg, End const& end, State const& state , Context const& context, Fun const& fun, mpl::true_) // continue { @@ -290,6 +297,7 @@ namespace boost { namespace fusion , fun); } + BOOST_FUSION_GPU_ENABLED static type call(Begin const& beg, End const& end, State const& state , Context const& context, Fun const& fun, mpl::false_) // break { @@ -317,6 +325,7 @@ namespace boost { namespace fusion typedef typename impl::type type; typedef typename impl::continue_type continue_type; + BOOST_FUSION_GPU_ENABLED static type call(Begin const& beg, End const& end, State const& state , Context const& context, Fun const& fun) { @@ -342,6 +351,7 @@ namespace boost { namespace fusion typedef typename impl::type type; typedef typename impl::continue_type continue_type; + BOOST_FUSION_GPU_ENABLED static type call(Begin const& beg, End const& end, State const& state , Context const& context, Fun const& fun) { @@ -355,6 +365,7 @@ namespace boost { namespace fusion typedef State type; typedef mpl::true_ continue_type; + BOOST_FUSION_GPU_ENABLED static type call(Begin const&, End const&, State const& state , Context const&, Fun const&) { @@ -378,6 +389,7 @@ namespace boost { namespace fusion typedef typename impl::type type; typedef typename impl::continue_type continue_type; + BOOST_FUSION_GPU_ENABLED static type call(Segments& segs, State const& state, Context const& context, Fun const& fun) { return impl::call(fusion::begin(segs), fusion::end(segs), state, context, fun); diff --git a/boost/fusion/support/is_iterator.hpp b/boost/fusion/support/is_iterator.hpp index f0272d05a9..b48aab8c3f 100644 --- a/boost/fusion/support/is_iterator.hpp +++ b/boost/fusion/support/is_iterator.hpp @@ -7,6 +7,7 @@ #if !defined(FUSION_IS_ITERATOR_05062005_1219) #define FUSION_IS_ITERATOR_05062005_1219 +#include <boost/fusion/support/config.hpp> #include <boost/type_traits/is_base_of.hpp> namespace boost { namespace fusion diff --git a/boost/fusion/support/is_segmented.hpp b/boost/fusion/support/is_segmented.hpp index 6e62eac430..1326feb346 100644 --- a/boost/fusion/support/is_segmented.hpp +++ b/boost/fusion/support/is_segmented.hpp @@ -7,6 +7,7 @@ #if !defined(FUSION_IS_SEGMENTED_03202006_0015) #define FUSION_IS_SEGMENTED_03202006_0015 +#include <boost/fusion/support/config.hpp> #include <boost/mpl/bool.hpp> #include <boost/fusion/support/tag_of.hpp> diff --git a/boost/fusion/support/is_sequence.hpp b/boost/fusion/support/is_sequence.hpp index 184bbbb6dc..8b5821042f 100644 --- a/boost/fusion/support/is_sequence.hpp +++ b/boost/fusion/support/is_sequence.hpp @@ -7,6 +7,7 @@ #if !defined(FUSION_IS_SEQUENCE_05052005_1002) #define FUSION_IS_SEQUENCE_05052005_1002 +#include <boost/fusion/support/config.hpp> #include <boost/fusion/support/sequence_base.hpp> #include <boost/fusion/support/tag_of.hpp> #include <boost/mpl/is_sequence.hpp> @@ -61,7 +62,7 @@ namespace boost { namespace fusion struct is_sequence : mpl::bool_< (bool)extension::is_sequence_impl< - typename fusion::detail::tag_of<T>::type + typename fusion::detail::tag_of<T>::type >::template apply<T>::type::value > {}; diff --git a/boost/fusion/support/is_view.hpp b/boost/fusion/support/is_view.hpp index 4ec9e06528..c54e60e19b 100644 --- a/boost/fusion/support/is_view.hpp +++ b/boost/fusion/support/is_view.hpp @@ -7,6 +7,7 @@ #if !defined(FUSION_IS_VIEW_03202006_0015) #define FUSION_IS_VIEW_03202006_0015 +#include <boost/fusion/support/config.hpp> #include <boost/mpl/bool.hpp> #include <boost/fusion/support/detail/is_view.hpp> #include <boost/fusion/support/tag_of.hpp> diff --git a/boost/fusion/support/iterator_base.hpp b/boost/fusion/support/iterator_base.hpp index ad24d93f6f..d23d05c62e 100644 --- a/boost/fusion/support/iterator_base.hpp +++ b/boost/fusion/support/iterator_base.hpp @@ -7,6 +7,8 @@ #if !defined(FUSION_ITERATOR_BASE_05042005_1008) #define FUSION_ITERATOR_BASE_05042005_1008 +#include <boost/fusion/support/config.hpp> + namespace boost { namespace fusion { struct iterator_root {}; @@ -14,12 +16,14 @@ namespace boost { namespace fusion template <typename Iterator> struct iterator_base : iterator_root { + BOOST_FUSION_GPU_ENABLED Iterator const& cast() const { return static_cast<Iterator const&>(*this); } + BOOST_FUSION_GPU_ENABLED Iterator& cast() { diff --git a/boost/fusion/support/pair.hpp b/boost/fusion/support/pair.hpp index 11ad1ffe7e..c547926e9b 100644 --- a/boost/fusion/support/pair.hpp +++ b/boost/fusion/support/pair.hpp @@ -8,11 +8,14 @@ #if !defined(FUSION_PAIR_07222005_1203) #define FUSION_PAIR_07222005_1203 +#include <boost/fusion/support/config.hpp> #include <iosfwd> #include <boost/fusion/support/detail/access.hpp> #include <boost/fusion/support/detail/as_fusion_element.hpp> #include <boost/config.hpp> +#include <boost/utility/enable_if.hpp> +#include <boost/type_traits/is_convertible.hpp> #if defined (BOOST_MSVC) # pragma warning(push) @@ -25,23 +28,63 @@ namespace boost { namespace fusion template <typename First, typename Second> struct pair { + BOOST_FUSION_GPU_ENABLED pair() : second() {} + BOOST_FUSION_GPU_ENABLED + pair(pair const& rhs) + : second(rhs.second) {} + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + BOOST_FUSION_GPU_ENABLED + pair(pair&& rhs) + : second(std::forward<Second>(rhs.second)) {} +#endif + + BOOST_FUSION_GPU_ENABLED pair(typename detail::call_param<Second>::type val) : second(val) {} +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + + template <typename Second2> + BOOST_FUSION_GPU_ENABLED + pair(Second2&& val + , typename boost::enable_if<is_convertible<Second2, Second> >::type* /*dummy*/ = 0 + ) : second(std::forward<Second2>(val)) {} + +#endif + template <typename Second2> + BOOST_FUSION_GPU_ENABLED pair(pair<First, Second2> const& rhs) : second(rhs.second) {} template <typename Second2> + BOOST_FUSION_GPU_ENABLED pair& operator=(pair<First, Second2> const& rhs) { second = rhs.second; return *this; } + BOOST_FUSION_GPU_ENABLED + pair& operator=(pair const& rhs) + { + second = rhs.second; + return *this; + } + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + BOOST_FUSION_GPU_ENABLED + pair& operator=(pair&& rhs) + { + second = std::forward<Second>(rhs.second); + return *this; + } +#endif + typedef First first_type; typedef Second second_type; Second second; @@ -70,6 +113,7 @@ namespace boost { namespace fusion } template <typename First, typename Second> + BOOST_FUSION_GPU_ENABLED inline typename result_of::make_pair<First,Second>::type make_pair(Second const& val) { @@ -93,6 +137,7 @@ namespace boost { namespace fusion } template <typename First, typename SecondL, typename SecondR> + BOOST_FUSION_GPU_ENABLED inline bool operator==(pair<First, SecondL> const& l, pair<First, SecondR> const& r) { @@ -100,11 +145,20 @@ namespace boost { namespace fusion } template <typename First, typename SecondL, typename SecondR> + BOOST_FUSION_GPU_ENABLED inline bool operator!=(pair<First, SecondL> const& l, pair<First, SecondR> const& r) { return l.second != r.second; } + + template <typename First, typename SecondL, typename SecondR> + BOOST_FUSION_GPU_ENABLED + inline bool + operator<(pair<First, SecondL> const& l, pair<First, SecondR> const& r) + { + return l.second < r.second; + } }} #if defined (BOOST_MSVC) diff --git a/boost/fusion/support/segmented_fold_until.hpp b/boost/fusion/support/segmented_fold_until.hpp index 6ea58ac611..8d3ea68219 100644 --- a/boost/fusion/support/segmented_fold_until.hpp +++ b/boost/fusion/support/segmented_fold_until.hpp @@ -7,6 +7,7 @@ #if !defined(BOOST_FUSION_SEGMENTED_FOLD_UNTIL_HPP_INCLUDED) #define BOOST_FUSION_SEGMENTED_FOLD_UNTIL_HPP_INCLUDED +#include <boost/fusion/support/config.hpp> #include <boost/type_traits/is_const.hpp> #include <boost/utility/enable_if.hpp> #include <boost/fusion/support/detail/segmented_fold_until_impl.hpp> @@ -20,7 +21,7 @@ namespace boost { namespace fusion { //auto segmented_fold_until(seq, state, fun) //{ - // return first(segmented_fold_until_impl(seq, state, nil, fun)); + // return first(segmented_fold_until_impl(seq, state, nil_, fun)); //} namespace result_of @@ -32,7 +33,7 @@ namespace boost { namespace fusion detail::segmented_fold_until_impl< Sequence , State - , fusion::nil + , fusion::nil_ , Fun > filter; @@ -44,6 +45,7 @@ namespace boost { namespace fusion } template <typename Sequence, typename State, typename Fun> + BOOST_FUSION_GPU_ENABLED typename lazy_disable_if< is_const<Sequence> @@ -55,10 +57,11 @@ namespace boost { namespace fusion typename result_of::segmented_fold_until<Sequence, State, Fun>::filter filter; - return filter::call(seq, state, fusion::nil(), fun); + return filter::call(seq, state, fusion::nil_(), fun); } template <typename Sequence, typename State, typename Fun> + BOOST_FUSION_GPU_ENABLED typename result_of::segmented_fold_until<Sequence const, State, Fun>::type segmented_fold_until(Sequence const& seq, State const& state, Fun const& fun) { @@ -66,7 +69,7 @@ namespace boost { namespace fusion typename result_of::segmented_fold_until<Sequence const, State, Fun>::filter filter; - return filter::call(seq, state, fusion::nil(), fun); + return filter::call(seq, state, fusion::nil_(), fun); } }} diff --git a/boost/fusion/support/sequence_base.hpp b/boost/fusion/support/sequence_base.hpp index 89affab666..b59121c09b 100644 --- a/boost/fusion/support/sequence_base.hpp +++ b/boost/fusion/support/sequence_base.hpp @@ -8,6 +8,7 @@ #if !defined(FUSION_SEQUENCE_BASE_04182005_0737) #define FUSION_SEQUENCE_BASE_04182005_0737 +#include <boost/fusion/support/config.hpp> #include <boost/mpl/begin_end_fwd.hpp> namespace boost { namespace fusion @@ -21,18 +22,21 @@ namespace boost { namespace fusion template <typename Sequence> struct sequence_base { + BOOST_FUSION_GPU_ENABLED Sequence const& derived() const { return static_cast<Sequence const&>(*this); } + BOOST_FUSION_GPU_ENABLED Sequence& derived() { return static_cast<Sequence&>(*this); } + BOOST_FUSION_GPU_ENABLED operator detail::from_sequence_convertible_type()const { return detail::from_sequence_convertible_type(); diff --git a/boost/fusion/support/tag_of.hpp b/boost/fusion/support/tag_of.hpp index a3fef3ba20..61cb3b19ae 100644 --- a/boost/fusion/support/tag_of.hpp +++ b/boost/fusion/support/tag_of.hpp @@ -7,6 +7,7 @@ #if !defined(FUSION_TAG_OF_09232005_0845) #define FUSION_TAG_OF_09232005_0845 +#include <boost/fusion/support/config.hpp> #include <boost/utility/enable_if.hpp> #include <boost/type_traits/remove_const.hpp> #include <boost/fusion/support/tag_of_fwd.hpp> diff --git a/boost/fusion/support/unused.hpp b/boost/fusion/support/unused.hpp index 8e0d5f2753..b3eec5ce13 100644 --- a/boost/fusion/support/unused.hpp +++ b/boost/fusion/support/unused.hpp @@ -7,6 +7,7 @@ #if !defined(BOOST_FUSION_SUPPORT_UNUSED_20070305_1038) #define BOOST_FUSION_SUPPORT_UNUSED_20070305_1038 +#include <boost/fusion/support/config.hpp> #include <iosfwd> #include <boost/config.hpp> @@ -21,16 +22,19 @@ namespace boost { namespace fusion { struct unused_type { + BOOST_FUSION_GPU_ENABLED unused_type() { } template <typename T> + BOOST_FUSION_GPU_ENABLED unused_type(T const&) { } template <typename T> + BOOST_FUSION_GPU_ENABLED unused_type const& operator=(T const&) const { @@ -38,18 +42,21 @@ namespace boost { namespace fusion } template <typename T> + BOOST_FUSION_GPU_ENABLED unused_type& operator=(T const&) { return *this; } + BOOST_FUSION_GPU_ENABLED unused_type const& operator=(unused_type const&) const { return *this; } + BOOST_FUSION_GPU_ENABLED unused_type& operator=(unused_type const&) { @@ -63,6 +70,7 @@ namespace boost { namespace fusion { struct unused_only { + BOOST_FUSION_GPU_ENABLED unused_only(unused_type const&) {} }; } |