summaryrefslogtreecommitdiff
path: root/boost/fusion/view/repetitive_view
diff options
context:
space:
mode:
Diffstat (limited to 'boost/fusion/view/repetitive_view')
-rw-r--r--boost/fusion/view/repetitive_view/detail/begin_impl.hpp2
-rw-r--r--boost/fusion/view/repetitive_view/detail/deref_impl.hpp2
-rw-r--r--boost/fusion/view/repetitive_view/detail/end_impl.hpp2
-rw-r--r--boost/fusion/view/repetitive_view/detail/next_impl.hpp6
-rw-r--r--boost/fusion/view/repetitive_view/repetitive_view.hpp2
-rw-r--r--boost/fusion/view/repetitive_view/repetitive_view_iterator.hpp19
6 files changed, 21 insertions, 12 deletions
diff --git a/boost/fusion/view/repetitive_view/detail/begin_impl.hpp b/boost/fusion/view/repetitive_view/detail/begin_impl.hpp
index 3da6b21dbf..9a27156c85 100644
--- a/boost/fusion/view/repetitive_view/detail/begin_impl.hpp
+++ b/boost/fusion/view/repetitive_view/detail/begin_impl.hpp
@@ -35,7 +35,7 @@ namespace boost { namespace fusion
typedef repetitive_view_iterator<sequence_type,
typename result_of::begin<sequence_type>::type > type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call(View const& v)
{
return type(v.seq);
diff --git a/boost/fusion/view/repetitive_view/detail/deref_impl.hpp b/boost/fusion/view/repetitive_view/detail/deref_impl.hpp
index c54ff38ef8..c96ef5eba5 100644
--- a/boost/fusion/view/repetitive_view/detail/deref_impl.hpp
+++ b/boost/fusion/view/repetitive_view/detail/deref_impl.hpp
@@ -30,7 +30,7 @@ namespace boost { namespace fusion
result_of::deref<typename Iterator::pos_type>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call(Iterator const& i)
{
return *i.pos;
diff --git a/boost/fusion/view/repetitive_view/detail/end_impl.hpp b/boost/fusion/view/repetitive_view/detail/end_impl.hpp
index ca1c270f95..af1fa6ee44 100644
--- a/boost/fusion/view/repetitive_view/detail/end_impl.hpp
+++ b/boost/fusion/view/repetitive_view/detail/end_impl.hpp
@@ -35,7 +35,7 @@ namespace boost { namespace fusion
typedef repetitive_view_iterator<sequence_type,
typename result_of::end<sequence_type>::type > type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call(View const& v)
{
return type(v.seq,end(v.seq));
diff --git a/boost/fusion/view/repetitive_view/detail/next_impl.hpp b/boost/fusion/view/repetitive_view/detail/next_impl.hpp
index acefd513c0..fab7540814 100644
--- a/boost/fusion/view/repetitive_view/detail/next_impl.hpp
+++ b/boost/fusion/view/repetitive_view/detail/next_impl.hpp
@@ -42,7 +42,7 @@ namespace boost { namespace fusion
>
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call(Iterator const& i)
{
return type(i.seq, next(i.pos));
@@ -59,7 +59,7 @@ namespace boost { namespace fusion
>
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call(Iterator const& i)
{
return type(i.seq);
@@ -80,7 +80,7 @@ namespace boost { namespace fusion
typedef Iterator type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call(Iterator const& i)
{
return type(i);
diff --git a/boost/fusion/view/repetitive_view/repetitive_view.hpp b/boost/fusion/view/repetitive_view/repetitive_view.hpp
index ab0a3b181f..32718e047e 100644
--- a/boost/fusion/view/repetitive_view/repetitive_view.hpp
+++ b/boost/fusion/view/repetitive_view/repetitive_view.hpp
@@ -38,7 +38,7 @@ namespace boost { namespace fusion
mpl::if_<traits::is_view<Sequence>, Sequence, sequence_type&>::type
stored_seq_type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
repetitive_view(Sequence& in_seq)
: seq(in_seq) {}
diff --git a/boost/fusion/view/repetitive_view/repetitive_view_iterator.hpp b/boost/fusion/view/repetitive_view/repetitive_view_iterator.hpp
index 7d5d139d66..74cc723e41 100644
--- a/boost/fusion/view/repetitive_view/repetitive_view_iterator.hpp
+++ b/boost/fusion/view/repetitive_view/repetitive_view_iterator.hpp
@@ -5,8 +5,8 @@
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
-#if !defined(BOOST_FUSION_REPETITIVE_VIEW_ITERATOR_HPP_INCLUDED)
-#define BOOST_FUSION_REPETITIVE_VIEW_HPP_ITERATOR_INCLUDED
+#ifndef BOOST_FUSION_REPETITIVE_VIEW_ITERATOR_HPP_INCLUDED
+#define BOOST_FUSION_REPETITIVE_VIEW_ITERATOR_HPP_INCLUDED
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/support/iterator_base.hpp>
@@ -36,16 +36,16 @@ namespace boost { namespace fusion
typedef typename convert_iterator<typename result_of::end<Sequence>::type>::type end_type;
typedef single_pass_traversal_tag category;
- BOOST_FUSION_GPU_ENABLED explicit repetitive_view_iterator(Sequence& in_seq)
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ explicit repetitive_view_iterator(Sequence& in_seq)
: seq(in_seq), pos(begin(in_seq)) {}
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
repetitive_view_iterator(Sequence& in_seq, pos_type const& in_pos)
: seq(in_seq), pos(in_pos) {}
Sequence& seq;
pos_type pos;
-
private:
// silence MSVC warning C4512: assignment operator could not be generated
@@ -53,5 +53,14 @@ namespace boost { namespace fusion
};
}}
+#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
+namespace std
+{
+ template <typename Sequence, typename Pos>
+ struct iterator_traits< ::boost::fusion::repetitive_view_iterator<Sequence, Pos> >
+ { };
+}
+#endif
+
#endif