summaryrefslogtreecommitdiff
path: root/boost/fusion/iterator/basic_iterator.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/fusion/iterator/basic_iterator.hpp')
-rw-r--r--boost/fusion/iterator/basic_iterator.hpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/boost/fusion/iterator/basic_iterator.hpp b/boost/fusion/iterator/basic_iterator.hpp
index bab6a4a6a8..eae46e6355 100644
--- a/boost/fusion/iterator/basic_iterator.hpp
+++ b/boost/fusion/iterator/basic_iterator.hpp
@@ -77,7 +77,7 @@ namespace boost { namespace fusion
basic_iterator<Tag, Category, Seq, Index + N::value>
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(It const& it)
{
@@ -100,7 +100,7 @@ namespace boost { namespace fusion
{
typedef mpl::minus<typename It2::index, typename It1::index> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static
type
call(It1 const&, It2 const&)
@@ -121,18 +121,18 @@ namespace boost { namespace fusion
{};
template<typename OtherSeq>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
basic_iterator(basic_iterator<Tag,Category,OtherSeq,Index> const& it)
: seq(it.seq)
{}
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
basic_iterator(Seq& in_seq, int)
: seq(&in_seq)
{}
template<typename OtherSeq>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
basic_iterator&
operator=(basic_iterator<Tag,Category,OtherSeq,Index> const& it)
{
@@ -144,4 +144,13 @@ namespace boost { namespace fusion
};
}}
+#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
+namespace std
+{
+ template <typename Tag, typename Category, typename Seq, int Index>
+ struct iterator_traits< ::boost::fusion::basic_iterator<Tag, Category, Seq, Index> >
+ { };
+}
+#endif
+
#endif