diff options
Diffstat (limited to 'boost/fusion/view/joint_view')
6 files changed, 22 insertions, 13 deletions
diff --git a/boost/fusion/view/joint_view/detail/begin_impl.hpp b/boost/fusion/view/joint_view/detail/begin_impl.hpp index f58d129042..b7a961a7f2 100644 --- a/boost/fusion/view/joint_view/detail/begin_impl.hpp +++ b/boost/fusion/view/joint_view/detail/begin_impl.hpp @@ -43,21 +43,21 @@ namespace boost { namespace fusion >::type type; - BOOST_FUSION_GPU_ENABLED + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static type call(Sequence& s, mpl::true_) { return s.concat(); } - BOOST_FUSION_GPU_ENABLED + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static type call(Sequence& s, mpl::false_) { return type(s.first(), s.concat()); } - BOOST_FUSION_GPU_ENABLED + BOOST_CONSTEXPR 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 02780d99d9..2d5f8317e1 100644 --- a/boost/fusion/view/joint_view/detail/deref_data_impl.hpp +++ b/boost/fusion/view/joint_view/detail/deref_data_impl.hpp @@ -26,7 +26,7 @@ namespace boost { namespace fusion { namespace extension result_of::deref_data<typename It::first_type>::type type; - BOOST_FUSION_GPU_ENABLED + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static type call(It const& it) { diff --git a/boost/fusion/view/joint_view/detail/end_impl.hpp b/boost/fusion/view/joint_view/detail/end_impl.hpp index b9e0113815..0b4b9b0abd 100644 --- a/boost/fusion/view/joint_view/detail/end_impl.hpp +++ b/boost/fusion/view/joint_view/detail/end_impl.hpp @@ -28,7 +28,7 @@ namespace boost { namespace fusion { typedef typename Sequence::concat_last_type type; - BOOST_FUSION_GPU_ENABLED + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static type call(Sequence& s) { diff --git a/boost/fusion/view/joint_view/detail/next_impl.hpp b/boost/fusion/view/joint_view/detail/next_impl.hpp index a3c066d1f3..a7d18757da 100644 --- a/boost/fusion/view/joint_view/detail/next_impl.hpp +++ b/boost/fusion/view/joint_view/detail/next_impl.hpp @@ -45,21 +45,21 @@ namespace boost { namespace fusion >::type type; - BOOST_FUSION_GPU_ENABLED + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static type call(Iterator const& i, mpl::true_) { return i.concat; } - BOOST_FUSION_GPU_ENABLED + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static type call(Iterator const& i, mpl::false_) { return type(fusion::next(i.first), i.concat); } - BOOST_FUSION_GPU_ENABLED + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static type call(Iterator const& i) { diff --git a/boost/fusion/view/joint_view/joint_view.hpp b/boost/fusion/view/joint_view/joint_view.hpp index 3ad3191420..676cbc54dd 100644 --- a/boost/fusion/view/joint_view/joint_view.hpp +++ b/boost/fusion/view/joint_view/joint_view.hpp @@ -56,17 +56,17 @@ namespace boost { namespace fusion result_of::size<Sequence1>::value + result_of::size<Sequence2>::value> size; - BOOST_FUSION_GPU_ENABLED + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED joint_view(Sequence1& in_seq1, Sequence2& in_seq2) : seq1(in_seq1) , seq2(in_seq2) {} - BOOST_FUSION_GPU_ENABLED + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED first_type first() const { return fusion::begin(seq1); } - BOOST_FUSION_GPU_ENABLED + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED concat_type concat() const { return fusion::begin(seq2); } - BOOST_FUSION_GPU_ENABLED + BOOST_CONSTEXPR 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 9858474078..ddd1341ee1 100644 --- a/boost/fusion/view/joint_view/joint_view_iterator.hpp +++ b/boost/fusion/view/joint_view/joint_view_iterator.hpp @@ -41,7 +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 + BOOST_CONSTEXPR 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)) @@ -56,6 +56,15 @@ namespace boost { namespace fusion }; }} +#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408 +namespace std +{ + template <typename Category, typename First, typename Last, typename Concat> + struct iterator_traits< ::boost::fusion::joint_view_iterator<Category, First, Last, Concat> > + { }; +} +#endif + #endif |