diff options
Diffstat (limited to 'boost/fusion/adapted/boost_array')
4 files changed, 21 insertions, 12 deletions
diff --git a/boost/fusion/adapted/boost_array/array_iterator.hpp b/boost/fusion/adapted/boost_array/array_iterator.hpp index 0e39d45709..ca8da0a22c 100644 --- a/boost/fusion/adapted/boost_array/array_iterator.hpp +++ b/boost/fusion/adapted/boost_array/array_iterator.hpp @@ -32,7 +32,7 @@ namespace boost { namespace fusion typedef mpl::int_<Pos> index; typedef Array array_type; - BOOST_FUSION_GPU_ENABLED + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED array_iterator(Array& a) : array(a) {} @@ -57,7 +57,7 @@ namespace boost { namespace fusion >::type type; - BOOST_FUSION_GPU_ENABLED + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static type call(Iterator const & it) { @@ -72,7 +72,7 @@ namespace boost { namespace fusion typedef typename Iterator::array_type array_type; typedef array_iterator<array_type, index::value + N::value> type; - BOOST_FUSION_GPU_ENABLED + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static type call(Iterator const& i) { @@ -95,7 +95,7 @@ namespace boost { namespace fusion >::type type; - BOOST_FUSION_GPU_ENABLED + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static type call(I1 const&, I2 const&) { @@ -109,4 +109,13 @@ namespace boost { namespace fusion }; }} +#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408 +namespace std +{ + template <typename Array, int Pos> + struct iterator_traits< ::boost::fusion::array_iterator<Array, Pos> > + { }; +} +#endif + #endif diff --git a/boost/fusion/adapted/boost_array/detail/at_impl.hpp b/boost/fusion/adapted/boost_array/detail/at_impl.hpp index 15235e8e57..e355d02240 100644 --- a/boost/fusion/adapted/boost_array/detail/at_impl.hpp +++ b/boost/fusion/adapted/boost_array/detail/at_impl.hpp @@ -14,7 +14,7 @@ #include <boost/mpl/if.hpp> namespace boost { namespace fusion { - + struct boost_array_tag; namespace extension @@ -33,7 +33,7 @@ namespace boost { namespace fusion { typename Sequence::const_reference, typename Sequence::reference>::type type; - BOOST_FUSION_GPU_ENABLED + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static type call(Sequence& seq) { diff --git a/boost/fusion/adapted/boost_array/detail/begin_impl.hpp b/boost/fusion/adapted/boost_array/detail/begin_impl.hpp index 5e0752c145..8481b765af 100644 --- a/boost/fusion/adapted/boost_array/detail/begin_impl.hpp +++ b/boost/fusion/adapted/boost_array/detail/begin_impl.hpp @@ -24,11 +24,11 @@ namespace boost { namespace fusion { struct begin_impl<boost_array_tag> { template <typename Sequence> - struct apply + struct apply { typedef array_iterator<Sequence, 0> type; - - BOOST_FUSION_GPU_ENABLED + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static type call(Sequence& v) { diff --git a/boost/fusion/adapted/boost_array/detail/end_impl.hpp b/boost/fusion/adapted/boost_array/detail/end_impl.hpp index 13ed1e3e3d..7574b36405 100644 --- a/boost/fusion/adapted/boost_array/detail/end_impl.hpp +++ b/boost/fusion/adapted/boost_array/detail/end_impl.hpp @@ -24,11 +24,11 @@ namespace boost { namespace fusion { struct end_impl<boost_array_tag> { template <typename Sequence> - struct apply + struct apply { typedef array_iterator<Sequence, Sequence::static_size> type; - - BOOST_FUSION_GPU_ENABLED + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static type call(Sequence& v) { |