comparison DEPENDENCIES/generic/include/boost/fusion/view/nview/nview.hpp @ 101:c530137014c0

Update Boost headers (1.58.0)
author Chris Cannam
date Mon, 07 Sep 2015 11:12:49 +0100
parents 2665513ce2d3
children
comparison
equal deleted inserted replaced
100:793467b5e61c 101:c530137014c0
6 ==============================================================================*/ 6 ==============================================================================*/
7 7
8 #if !defined(BOOST_FUSION_NVIEW_SEP_23_2009_0948PM) 8 #if !defined(BOOST_FUSION_NVIEW_SEP_23_2009_0948PM)
9 #define BOOST_FUSION_NVIEW_SEP_23_2009_0948PM 9 #define BOOST_FUSION_NVIEW_SEP_23_2009_0948PM
10 10
11 #include <boost/fusion/support/config.hpp>
11 #include <boost/mpl/size.hpp> 12 #include <boost/mpl/size.hpp>
12 #include <boost/mpl/if.hpp> 13 #include <boost/mpl/if.hpp>
13 #include <boost/mpl/vector_c.hpp> 14 #include <boost/mpl/vector_c.hpp>
14 #include <boost/utility/result_of.hpp> 15 #include <boost/utility/result_of.hpp>
15 16
37 template<typename U> 38 template<typename U>
38 struct result<addref(U)> : add_reference<U> {}; 39 struct result<addref(U)> : add_reference<U> {};
39 40
40 #ifdef BOOST_NO_CXX11_RVALUE_REFERENCES 41 #ifdef BOOST_NO_CXX11_RVALUE_REFERENCES
41 template <typename T> 42 template <typename T>
43 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
42 typename add_reference<T>::type 44 typename add_reference<T>::type
43 operator()(T& x) const 45 operator()(T& x) const
44 { 46 {
45 return x; 47 return x;
46 } 48 }
47 #else 49 #else
48 template <typename T> 50 template <typename T>
51 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
49 typename result<addref(T)>::type 52 typename result<addref(T)>::type
50 operator()(T&& x) const 53 operator()(T&& x) const
51 { 54 {
52 return x; 55 return x;
53 } 56 }
63 struct result<addconstref(U)> 66 struct result<addconstref(U)>
64 : add_reference<typename add_const<U>::type> 67 : add_reference<typename add_const<U>::type>
65 {}; 68 {};
66 69
67 template <typename T> 70 template <typename T>
71 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
68 typename add_reference<typename add_const<T>::type>::type 72 typename add_reference<typename add_const<T>::type>::type
69 operator()(T& x) const 73 operator()(T& x) const
70 { 74 {
71 return x; 75 return x;
72 } 76 }
73 77
74 template <typename T> 78 template <typename T>
79 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
75 typename add_reference<typename add_const<T>::type>::type 80 typename add_reference<typename add_const<T>::type>::type
76 operator()(T const& x) const 81 operator()(T const& x) const
77 { 82 {
78 return x; 83 return x;
79 } 84 }
101 >::type transform_type; 106 >::type transform_type;
102 typedef transform_view<Sequence, transform_type> transform_view_type; 107 typedef transform_view<Sequence, transform_type> transform_view_type;
103 typedef typename result_of::as_vector<transform_view_type>::type 108 typedef typename result_of::as_vector<transform_view_type>::type
104 sequence_type; 109 sequence_type;
105 110
111 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
106 explicit nview(Sequence& val) 112 explicit nview(Sequence& val)
107 : seq(sequence_type(transform_view_type(val, transform_type()))) 113 : seq(sequence_type(transform_view_type(val, transform_type())))
108 {} 114 {}
109 115
110 sequence_type seq; 116 sequence_type seq;