diff options
Diffstat (limited to 'boost/fusion/view/joint_view')
10 files changed, 23 insertions, 0 deletions
diff --git a/boost/fusion/view/joint_view/detail/begin_impl.hpp b/boost/fusion/view/joint_view/detail/begin_impl.hpp index a85a7e152e..f58d129042 100644 --- a/boost/fusion/view/joint_view/detail/begin_impl.hpp +++ b/boost/fusion/view/joint_view/detail/begin_impl.hpp @@ -7,6 +7,7 @@ #if !defined(FUSION_BEGIN_IMPL_07162005_0115) #define FUSION_BEGIN_IMPL_07162005_0115 +#include <boost/fusion/support/config.hpp> #include <boost/fusion/iterator/equal_to.hpp> #include <boost/mpl/if.hpp> @@ -42,18 +43,21 @@ namespace boost { namespace fusion >::type type; + BOOST_FUSION_GPU_ENABLED static type call(Sequence& s, mpl::true_) { return s.concat(); } + BOOST_FUSION_GPU_ENABLED static type call(Sequence& s, mpl::false_) { return type(s.first(), s.concat()); } + BOOST_FUSION_GPU_ENABLED static type call(Sequence& s) { diff --git a/boost/fusion/view/joint_view/detail/deref_data_impl.hpp b/boost/fusion/view/joint_view/detail/deref_data_impl.hpp index a60a125fa9..02780d99d9 100644 --- a/boost/fusion/view/joint_view/detail/deref_data_impl.hpp +++ b/boost/fusion/view/joint_view/detail/deref_data_impl.hpp @@ -8,6 +8,7 @@ #ifndef BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_DEREF_DATA_IMPL_HPP #define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_DEREF_DATA_IMPL_HPP +#include <boost/fusion/support/config.hpp> #include <boost/fusion/iterator/deref_data.hpp> namespace boost { namespace fusion { namespace extension @@ -25,6 +26,7 @@ namespace boost { namespace fusion { namespace extension result_of::deref_data<typename It::first_type>::type type; + BOOST_FUSION_GPU_ENABLED static type call(It const& it) { diff --git a/boost/fusion/view/joint_view/detail/deref_impl.hpp b/boost/fusion/view/joint_view/detail/deref_impl.hpp index ea4055de8a..0e1e39fffa 100644 --- a/boost/fusion/view/joint_view/detail/deref_impl.hpp +++ b/boost/fusion/view/joint_view/detail/deref_impl.hpp @@ -7,6 +7,7 @@ #if !defined(FUSION_DEREF_IMPL_07162005_0137) #define FUSION_DEREF_IMPL_07162005_0137 +#include <boost/fusion/support/config.hpp> #include <boost/fusion/iterator/detail/adapt_deref_traits.hpp> namespace boost { namespace fusion diff --git a/boost/fusion/view/joint_view/detail/end_impl.hpp b/boost/fusion/view/joint_view/detail/end_impl.hpp index 7b88e56c48..b9e0113815 100644 --- a/boost/fusion/view/joint_view/detail/end_impl.hpp +++ b/boost/fusion/view/joint_view/detail/end_impl.hpp @@ -7,6 +7,7 @@ #if !defined(FUSION_END_IMPL_07162005_0128) #define FUSION_END_IMPL_07162005_0128 +#include <boost/fusion/support/config.hpp> #include <boost/fusion/iterator/equal_to.hpp> #include <boost/mpl/if.hpp> @@ -27,6 +28,7 @@ namespace boost { namespace fusion { typedef typename Sequence::concat_last_type type; + BOOST_FUSION_GPU_ENABLED static type call(Sequence& s) { diff --git a/boost/fusion/view/joint_view/detail/key_of_impl.hpp b/boost/fusion/view/joint_view/detail/key_of_impl.hpp index e413c3d441..ec682f614d 100644 --- a/boost/fusion/view/joint_view/detail/key_of_impl.hpp +++ b/boost/fusion/view/joint_view/detail/key_of_impl.hpp @@ -8,6 +8,7 @@ #ifndef BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_KEY_OF_IMPL_HPP #define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_KEY_OF_IMPL_HPP +#include <boost/fusion/support/config.hpp> #include <boost/fusion/iterator/key_of.hpp> namespace boost { namespace fusion { namespace extension diff --git a/boost/fusion/view/joint_view/detail/next_impl.hpp b/boost/fusion/view/joint_view/detail/next_impl.hpp index 47b4d486f2..a3c066d1f3 100644 --- a/boost/fusion/view/joint_view/detail/next_impl.hpp +++ b/boost/fusion/view/joint_view/detail/next_impl.hpp @@ -7,6 +7,7 @@ #if !defined(FUSION_NEXT_IMPL_07162005_0136) #define FUSION_NEXT_IMPL_07162005_0136 +#include <boost/fusion/support/config.hpp> #include <boost/fusion/iterator/next.hpp> #include <boost/fusion/iterator/equal_to.hpp> #include <boost/mpl/if.hpp> @@ -44,18 +45,21 @@ namespace boost { namespace fusion >::type type; + BOOST_FUSION_GPU_ENABLED static type call(Iterator const& i, mpl::true_) { return i.concat; } + BOOST_FUSION_GPU_ENABLED static type call(Iterator const& i, mpl::false_) { return type(fusion::next(i.first), i.concat); } + BOOST_FUSION_GPU_ENABLED static type call(Iterator const& i) { diff --git a/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp b/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp index cc883d7023..f797135b39 100644 --- a/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp +++ b/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp @@ -8,6 +8,7 @@ #ifndef BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP #define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP +#include <boost/fusion/support/config.hpp> #include <boost/fusion/iterator/value_of_data.hpp> namespace boost { namespace fusion { namespace extension diff --git a/boost/fusion/view/joint_view/detail/value_of_impl.hpp b/boost/fusion/view/joint_view/detail/value_of_impl.hpp index 98637e4e5f..f058a60cbc 100644 --- a/boost/fusion/view/joint_view/detail/value_of_impl.hpp +++ b/boost/fusion/view/joint_view/detail/value_of_impl.hpp @@ -7,6 +7,7 @@ #if !defined(FUSION_VALUE_IMPL_07162005_0132) #define FUSION_VALUE_IMPL_07162005_0132 +#include <boost/fusion/support/config.hpp> #include <boost/fusion/iterator/detail/adapt_value_traits.hpp> namespace boost { namespace fusion diff --git a/boost/fusion/view/joint_view/joint_view.hpp b/boost/fusion/view/joint_view/joint_view.hpp index 11b74f9c26..3ad3191420 100644 --- a/boost/fusion/view/joint_view/joint_view.hpp +++ b/boost/fusion/view/joint_view/joint_view.hpp @@ -7,6 +7,7 @@ #if !defined(FUSION_JOINT_VIEW_07162005_0140) #define FUSION_JOINT_VIEW_07162005_0140 +#include <boost/fusion/support/config.hpp> #include <boost/fusion/view/joint_view/joint_view_fwd.hpp> #include <boost/fusion/support/detail/access.hpp> #include <boost/fusion/support/is_view.hpp> @@ -55,13 +56,17 @@ namespace boost { namespace fusion result_of::size<Sequence1>::value + result_of::size<Sequence2>::value> size; + BOOST_FUSION_GPU_ENABLED joint_view(Sequence1& in_seq1, Sequence2& in_seq2) : seq1(in_seq1) , seq2(in_seq2) {} + BOOST_FUSION_GPU_ENABLED first_type first() const { return fusion::begin(seq1); } + BOOST_FUSION_GPU_ENABLED concat_type concat() const { return fusion::begin(seq2); } + BOOST_FUSION_GPU_ENABLED concat_last_type concat_last() const { return fusion::end(seq2); } private: diff --git a/boost/fusion/view/joint_view/joint_view_iterator.hpp b/boost/fusion/view/joint_view/joint_view_iterator.hpp index 6f5824851f..9858474078 100644 --- a/boost/fusion/view/joint_view/joint_view_iterator.hpp +++ b/boost/fusion/view/joint_view/joint_view_iterator.hpp @@ -7,6 +7,7 @@ #if !defined(FUSION_JOINT_VIEW_ITERATOR_07162005_0140) #define FUSION_JOINT_VIEW_ITERATOR_07162005_0140 +#include <boost/fusion/support/config.hpp> #include <boost/fusion/support/iterator_base.hpp> #include <boost/fusion/iterator/equal_to.hpp> #include <boost/fusion/iterator/mpl/convert_iterator.hpp> @@ -40,6 +41,7 @@ namespace boost { namespace fusion typedef Category category; BOOST_STATIC_ASSERT((!result_of::equal_to<first_type, last_type>::value)); + BOOST_FUSION_GPU_ENABLED joint_view_iterator(First const& in_first, Concat const& in_concat) : first(first_converter::call(in_first)) , concat(concat_converter::call(in_concat)) |