summaryrefslogtreecommitdiff
path: root/boost/fusion/support
diff options
context:
space:
mode:
Diffstat (limited to 'boost/fusion/support')
-rw-r--r--boost/fusion/support/as_const.hpp1
-rw-r--r--boost/fusion/support/category_of.hpp1
-rw-r--r--boost/fusion/support/config.hpp16
-rw-r--r--boost/fusion/support/deduce.hpp1
-rw-r--r--boost/fusion/support/deduce_sequence.hpp4
-rw-r--r--boost/fusion/support/detail/access.hpp9
-rw-r--r--boost/fusion/support/detail/as_fusion_element.hpp1
-rw-r--r--boost/fusion/support/detail/is_mpl_sequence.hpp1
-rw-r--r--boost/fusion/support/detail/pp_round.hpp1
-rw-r--r--boost/fusion/support/detail/segmented_fold_until_impl.hpp12
-rw-r--r--boost/fusion/support/is_iterator.hpp1
-rw-r--r--boost/fusion/support/is_segmented.hpp1
-rw-r--r--boost/fusion/support/is_sequence.hpp3
-rw-r--r--boost/fusion/support/is_view.hpp1
-rw-r--r--boost/fusion/support/iterator_base.hpp4
-rw-r--r--boost/fusion/support/pair.hpp54
-rw-r--r--boost/fusion/support/segmented_fold_until.hpp11
-rw-r--r--boost/fusion/support/sequence_base.hpp4
-rw-r--r--boost/fusion/support/tag_of.hpp1
-rw-r--r--boost/fusion/support/unused.hpp8
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&) {}
};
}