summaryrefslogtreecommitdiff
path: root/boost/fusion/adapted/std_tuple/std_tuple_iterator.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/fusion/adapted/std_tuple/std_tuple_iterator.hpp')
-rw-r--r--boost/fusion/adapted/std_tuple/std_tuple_iterator.hpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/boost/fusion/adapted/std_tuple/std_tuple_iterator.hpp b/boost/fusion/adapted/std_tuple/std_tuple_iterator.hpp
index c4d957ea0b..a3421e0f99 100644
--- a/boost/fusion/adapted/std_tuple/std_tuple_iterator.hpp
+++ b/boost/fusion/adapted/std_tuple/std_tuple_iterator.hpp
@@ -36,7 +36,8 @@ namespace boost { namespace fusion
typename add_const<Tuple>::type, Index>
identity;
- BOOST_FUSION_GPU_ENABLED explicit std_tuple_iterator(Tuple& tuple)
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ explicit std_tuple_iterator(Tuple& tuple)
: tuple(tuple) {}
Tuple& tuple;
@@ -58,7 +59,7 @@ namespace boost { namespace fusion
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& iter)
{
@@ -73,7 +74,7 @@ namespace boost { namespace fusion
typedef typename Iterator::tuple_type tuple_type;
typedef std_tuple_iterator<tuple_type, index+N::value> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& i)
{
@@ -96,7 +97,7 @@ namespace boost { namespace fusion
{
typedef mpl::int_<Last::index-First::index> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(First const&, Last const&)
{
@@ -106,6 +107,15 @@ namespace boost { namespace fusion
};
}}
+#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
+namespace std
+{
+ template <typename Tuple, int Index>
+ struct iterator_traits< ::boost::fusion::std_tuple_iterator<Tuple, Index> >
+ { };
+}
+#endif
+
#endif