File indexing completed on 2025-02-23 09:35:05
0001
0002
0003
0004
0005
0006
0007
0008
0009 namespace boost { namespace fusion { namespace detail
0010 {
0011 template<typename Key, typename Value, typename Rest>
0012 struct keyed_element;
0013 struct nil_keyed_element;
0014 template<typename N, typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_>
0015 struct deque_keyed_values_impl;
0016 template<typename N>
0017 struct deque_keyed_values_impl<N, void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
0018 {
0019 typedef nil_keyed_element type;
0020 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0021 static type construct()
0022 {
0023 return type();
0024 }
0025 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0026 static type forward_()
0027 {
0028 return type();
0029 }
0030 };
0031 template<typename N, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
0032 struct deque_keyed_values_impl
0033 {
0034 typedef mpl::int_<mpl::plus<N, mpl::int_<1> >::value> next_index;
0035 typedef typename deque_keyed_values_impl<
0036 next_index,
0037 T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>::type tail;
0038 typedef keyed_element<N, T0, tail> type;
0039 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0040 static type construct(typename detail::call_param<T0 >::type t0)
0041 {
0042 return type(t0,
0043 deque_keyed_values_impl<
0044 next_index
0045 >::construct());
0046 }
0047 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0048 template <typename T_0>
0049 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0050 static type forward_(T_0 && t0)
0051 {
0052 return type(std::forward<T_0>( t0),
0053 deque_keyed_values_impl<
0054 next_index
0055 >::forward_());
0056 }
0057 # endif
0058 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0059 static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1)
0060 {
0061 return type(t0,
0062 deque_keyed_values_impl<
0063 next_index
0064 , T1
0065 >::construct(t1));
0066 }
0067 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0068 template <typename T_0 , typename T_1>
0069 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0070 static type forward_(T_0 && t0 , T_1 && t1)
0071 {
0072 return type(std::forward<T_0>( t0),
0073 deque_keyed_values_impl<
0074 next_index
0075 , T_1
0076 >::forward_(std::forward<T_1>( t1)));
0077 }
0078 # endif
0079 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0080 static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2)
0081 {
0082 return type(t0,
0083 deque_keyed_values_impl<
0084 next_index
0085 , T1 , T2
0086 >::construct(t1 , t2));
0087 }
0088 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0089 template <typename T_0 , typename T_1 , typename T_2>
0090 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0091 static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2)
0092 {
0093 return type(std::forward<T_0>( t0),
0094 deque_keyed_values_impl<
0095 next_index
0096 , T_1 , T_2
0097 >::forward_(std::forward<T_1>( t1) , std::forward<T_2>( t2)));
0098 }
0099 # endif
0100 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0101 static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3)
0102 {
0103 return type(t0,
0104 deque_keyed_values_impl<
0105 next_index
0106 , T1 , T2 , T3
0107 >::construct(t1 , t2 , t3));
0108 }
0109 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0110 template <typename T_0 , typename T_1 , typename T_2 , typename T_3>
0111 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0112 static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3)
0113 {
0114 return type(std::forward<T_0>( t0),
0115 deque_keyed_values_impl<
0116 next_index
0117 , T_1 , T_2 , T_3
0118 >::forward_(std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3)));
0119 }
0120 # endif
0121 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0122 static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4)
0123 {
0124 return type(t0,
0125 deque_keyed_values_impl<
0126 next_index
0127 , T1 , T2 , T3 , T4
0128 >::construct(t1 , t2 , t3 , t4));
0129 }
0130 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0131 template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4>
0132 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0133 static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4)
0134 {
0135 return type(std::forward<T_0>( t0),
0136 deque_keyed_values_impl<
0137 next_index
0138 , T_1 , T_2 , T_3 , T_4
0139 >::forward_(std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4)));
0140 }
0141 # endif
0142 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0143 static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5)
0144 {
0145 return type(t0,
0146 deque_keyed_values_impl<
0147 next_index
0148 , T1 , T2 , T3 , T4 , T5
0149 >::construct(t1 , t2 , t3 , t4 , t5));
0150 }
0151 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0152 template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5>
0153 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0154 static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5)
0155 {
0156 return type(std::forward<T_0>( t0),
0157 deque_keyed_values_impl<
0158 next_index
0159 , T_1 , T_2 , T_3 , T_4 , T_5
0160 >::forward_(std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5)));
0161 }
0162 # endif
0163 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0164 static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6)
0165 {
0166 return type(t0,
0167 deque_keyed_values_impl<
0168 next_index
0169 , T1 , T2 , T3 , T4 , T5 , T6
0170 >::construct(t1 , t2 , t3 , t4 , t5 , t6));
0171 }
0172 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0173 template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6>
0174 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0175 static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6)
0176 {
0177 return type(std::forward<T_0>( t0),
0178 deque_keyed_values_impl<
0179 next_index
0180 , T_1 , T_2 , T_3 , T_4 , T_5 , T_6
0181 >::forward_(std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6)));
0182 }
0183 # endif
0184 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0185 static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6 , typename detail::call_param<T7 >::type t7)
0186 {
0187 return type(t0,
0188 deque_keyed_values_impl<
0189 next_index
0190 , T1 , T2 , T3 , T4 , T5 , T6 , T7
0191 >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7));
0192 }
0193 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0194 template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6 , typename T_7>
0195 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0196 static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7)
0197 {
0198 return type(std::forward<T_0>( t0),
0199 deque_keyed_values_impl<
0200 next_index
0201 , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7
0202 >::forward_(std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6) , std::forward<T_7>( t7)));
0203 }
0204 # endif
0205 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0206 static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6 , typename detail::call_param<T7 >::type t7 , typename detail::call_param<T8 >::type t8)
0207 {
0208 return type(t0,
0209 deque_keyed_values_impl<
0210 next_index
0211 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
0212 >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8));
0213 }
0214 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0215 template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6 , typename T_7 , typename T_8>
0216 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0217 static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8)
0218 {
0219 return type(std::forward<T_0>( t0),
0220 deque_keyed_values_impl<
0221 next_index
0222 , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8
0223 >::forward_(std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6) , std::forward<T_7>( t7) , std::forward<T_8>( t8)));
0224 }
0225 # endif
0226 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0227 static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6 , typename detail::call_param<T7 >::type t7 , typename detail::call_param<T8 >::type t8 , typename detail::call_param<T9 >::type t9)
0228 {
0229 return type(t0,
0230 deque_keyed_values_impl<
0231 next_index
0232 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
0233 >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9));
0234 }
0235 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0236 template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6 , typename T_7 , typename T_8 , typename T_9>
0237 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0238 static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9)
0239 {
0240 return type(std::forward<T_0>( t0),
0241 deque_keyed_values_impl<
0242 next_index
0243 , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9
0244 >::forward_(std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6) , std::forward<T_7>( t7) , std::forward<T_8>( t8) , std::forward<T_9>( t9)));
0245 }
0246 # endif
0247 };
0248 template<typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_>
0249 struct deque_keyed_values
0250 : deque_keyed_values_impl<mpl::int_<0>, T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>
0251 {};
0252 }}}