summaryrefslogtreecommitdiff
path: root/boost/fusion/view/filter_view
diff options
context:
space:
mode:
Diffstat (limited to 'boost/fusion/view/filter_view')
-rw-r--r--boost/fusion/view/filter_view/detail/begin_impl.hpp2
-rw-r--r--boost/fusion/view/filter_view/detail/deref_data_impl.hpp2
-rw-r--r--boost/fusion/view/filter_view/detail/end_impl.hpp2
-rw-r--r--boost/fusion/view/filter_view/detail/next_impl.hpp2
-rw-r--r--boost/fusion/view/filter_view/filter_view.hpp6
-rw-r--r--boost/fusion/view/filter_view/filter_view_iterator.hpp11
6 files changed, 17 insertions, 8 deletions
diff --git a/boost/fusion/view/filter_view/detail/begin_impl.hpp b/boost/fusion/view/filter_view/detail/begin_impl.hpp
index 89f67d02ad..3ce439a41f 100644
--- a/boost/fusion/view/filter_view/detail/begin_impl.hpp
+++ b/boost/fusion/view/filter_view/detail/begin_impl.hpp
@@ -31,7 +31,7 @@ namespace boost { namespace fusion
typedef typename Sequence::category category;
typedef filter_iterator<category, first_type, last_type, pred_type> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence& s)
{
diff --git a/boost/fusion/view/filter_view/detail/deref_data_impl.hpp b/boost/fusion/view/filter_view/detail/deref_data_impl.hpp
index ba8631f501..e0d9a0edb0 100644
--- a/boost/fusion/view/filter_view/detail/deref_data_impl.hpp
+++ b/boost/fusion/view/filter_view/detail/deref_data_impl.hpp
@@ -26,7 +26,7 @@ namespace boost { namespace fusion { namespace extension
result_of::deref_data<typename It::first_type>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(It const& it)
{
diff --git a/boost/fusion/view/filter_view/detail/end_impl.hpp b/boost/fusion/view/filter_view/detail/end_impl.hpp
index fee9f6d459..1a2a5ba48d 100644
--- a/boost/fusion/view/filter_view/detail/end_impl.hpp
+++ b/boost/fusion/view/filter_view/detail/end_impl.hpp
@@ -30,7 +30,7 @@ namespace boost { namespace fusion
typedef typename Sequence::category category;
typedef filter_iterator<category,last_type, last_type, pred_type> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence& s)
{
diff --git a/boost/fusion/view/filter_view/detail/next_impl.hpp b/boost/fusion/view/filter_view/detail/next_impl.hpp
index 0091e897ea..4f17455766 100644
--- a/boost/fusion/view/filter_view/detail/next_impl.hpp
+++ b/boost/fusion/view/filter_view/detail/next_impl.hpp
@@ -63,7 +63,7 @@ namespace boost { namespace fusion
category, typename filter::type, last_type, pred_type>
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& i)
{
diff --git a/boost/fusion/view/filter_view/filter_view.hpp b/boost/fusion/view/filter_view/filter_view.hpp
index dd710fabd1..db61cad60e 100644
--- a/boost/fusion/view/filter_view/filter_view.hpp
+++ b/boost/fusion/view/filter_view/filter_view.hpp
@@ -46,14 +46,14 @@ namespace boost { namespace fusion
typedef typename result_of::end<Sequence>::type last_type;
typedef Pred pred_type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
filter_view(Sequence& in_seq)
: seq(in_seq)
{}
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
first_type first() const { return fusion::begin(seq); }
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
last_type last() const { return fusion::end(seq); }
typename mpl::if_<traits::is_view<Sequence>, Sequence, Sequence&>::type seq;
diff --git a/boost/fusion/view/filter_view/filter_view_iterator.hpp b/boost/fusion/view/filter_view/filter_view_iterator.hpp
index 14aaa46005..f1b9f54de3 100644
--- a/boost/fusion/view/filter_view/filter_view_iterator.hpp
+++ b/boost/fusion/view/filter_view/filter_view_iterator.hpp
@@ -55,7 +55,7 @@ namespace boost { namespace fusion
typedef last_iter last_type;
typedef Pred pred_type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
filter_iterator(First const& in_first)
: first(filter::iter_call(first_converter::call(in_first))) {}
@@ -67,6 +67,15 @@ namespace boost { namespace fusion
};
}}
+#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
+namespace std
+{
+ template <typename Category, typename First, typename Last, typename Pred>
+ struct iterator_traits< ::boost::fusion::filter_iterator<Category, First, Last, Pred> >
+ { };
+}
+#endif
+
#endif