summaryrefslogtreecommitdiff
path: root/boost/fusion/view/transform_view/transform_view_iterator.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/fusion/view/transform_view/transform_view_iterator.hpp')
-rw-r--r--boost/fusion/view/transform_view/transform_view_iterator.hpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/boost/fusion/view/transform_view/transform_view_iterator.hpp b/boost/fusion/view/transform_view/transform_view_iterator.hpp
index 0762228fca..ab40bd748f 100644
--- a/boost/fusion/view/transform_view/transform_view_iterator.hpp
+++ b/boost/fusion/view/transform_view/transform_view_iterator.hpp
@@ -35,7 +35,7 @@ namespace boost { namespace fusion
typedef typename traits::category_of<first_type>::type category;
typedef F transform_type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
transform_view_iterator(First const& in_first, F const& in_f)
: first(converter::call(in_first)), f(in_f) {}
@@ -62,7 +62,7 @@ namespace boost { namespace fusion
typedef typename traits::category_of<first1_type>::type category;
typedef F transform_type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
transform_view_iterator2(First1 const& in_first1, First2 const& in_first2, F const& in_f)
: first1(converter1::call(in_first1)), first2(converter2::call(in_first2)), f(in_f) {}
@@ -76,5 +76,17 @@ namespace boost { namespace fusion
};
}}
+#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
+namespace std
+{
+ template <typename First, typename F>
+ struct iterator_traits< ::boost::fusion::transform_view_iterator<First, F> >
+ { };
+ template <typename First1, typename First2, typename F>
+ struct iterator_traits< ::boost::fusion::transform_view_iterator2<First1, First2, F> >
+ { };
+}
+#endif
+
#endif