annotate DEPENDENCIES/generic/include/boost/proto/detail/preprocessed/make_expr.hpp @ 125:34e428693f5d vext

Vext -> Repoint
author Chris Cannam
date Thu, 14 Jun 2018 11:15:39 +0100
parents 2665513ce2d3
children
rev   line source
Chris@16 1 ///////////////////////////////////////////////////////////////////////////////
Chris@16 2 /// \file make_expr.hpp
Chris@16 3 /// Contains overloads of make_expr() free function.
Chris@16 4 //
Chris@16 5 // Copyright 2008 Eric Niebler. Distributed under the Boost
Chris@16 6 // Software License, Version 1.0. (See accompanying file
Chris@16 7 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Chris@16 8
Chris@16 9
Chris@16 10 template<typename Tag , typename A0 , typename A1>
Chris@16 11 BOOST_FORCEINLINE
Chris@16 12 typename lazy_disable_if<
Chris@16 13 is_domain<A0>
Chris@16 14 , result_of::make_expr<
Chris@16 15 Tag
Chris@16 16 , const A0 , const A1
Chris@16 17 >
Chris@16 18 >::type const
Chris@16 19 make_expr(const A0 &a0 , const A1 &a1)
Chris@16 20 {
Chris@16 21 return proto::detail::make_expr_<
Chris@16 22 Tag
Chris@16 23 , deduce_domain
Chris@16 24 , const A0 , const A1
Chris@16 25 >()(a0 , a1);
Chris@16 26 }
Chris@16 27
Chris@16 28
Chris@16 29 template<typename Tag, typename Domain , typename C0 , typename C1>
Chris@16 30 BOOST_FORCEINLINE
Chris@16 31 typename result_of::make_expr<
Chris@16 32 Tag
Chris@16 33 , Domain
Chris@16 34 , const C0 , const C1
Chris@16 35 >::type const
Chris@16 36 make_expr(const C0 &c0 , const C1 &c1)
Chris@16 37 {
Chris@16 38 return proto::detail::make_expr_<
Chris@16 39 Tag
Chris@16 40 , Domain
Chris@16 41 , const C0 , const C1
Chris@16 42 >()(c0 , c1);
Chris@16 43 }
Chris@16 44
Chris@16 45
Chris@16 46 template<typename Tag , typename A0 , typename A1 , typename A2>
Chris@16 47 BOOST_FORCEINLINE
Chris@16 48 typename lazy_disable_if<
Chris@16 49 is_domain<A0>
Chris@16 50 , result_of::make_expr<
Chris@16 51 Tag
Chris@16 52 , const A0 , const A1 , const A2
Chris@16 53 >
Chris@16 54 >::type const
Chris@16 55 make_expr(const A0 &a0 , const A1 &a1 , const A2 &a2)
Chris@16 56 {
Chris@16 57 return proto::detail::make_expr_<
Chris@16 58 Tag
Chris@16 59 , deduce_domain
Chris@16 60 , const A0 , const A1 , const A2
Chris@16 61 >()(a0 , a1 , a2);
Chris@16 62 }
Chris@16 63
Chris@16 64
Chris@16 65 template<typename Tag, typename Domain , typename C0 , typename C1 , typename C2>
Chris@16 66 BOOST_FORCEINLINE
Chris@16 67 typename result_of::make_expr<
Chris@16 68 Tag
Chris@16 69 , Domain
Chris@16 70 , const C0 , const C1 , const C2
Chris@16 71 >::type const
Chris@16 72 make_expr(const C0 &c0 , const C1 &c1 , const C2 &c2)
Chris@16 73 {
Chris@16 74 return proto::detail::make_expr_<
Chris@16 75 Tag
Chris@16 76 , Domain
Chris@16 77 , const C0 , const C1 , const C2
Chris@16 78 >()(c0 , c1 , c2);
Chris@16 79 }
Chris@16 80
Chris@16 81
Chris@16 82 template<typename Tag , typename A0 , typename A1 , typename A2 , typename A3>
Chris@16 83 BOOST_FORCEINLINE
Chris@16 84 typename lazy_disable_if<
Chris@16 85 is_domain<A0>
Chris@16 86 , result_of::make_expr<
Chris@16 87 Tag
Chris@16 88 , const A0 , const A1 , const A2 , const A3
Chris@16 89 >
Chris@16 90 >::type const
Chris@16 91 make_expr(const A0 &a0 , const A1 &a1 , const A2 &a2 , const A3 &a3)
Chris@16 92 {
Chris@16 93 return proto::detail::make_expr_<
Chris@16 94 Tag
Chris@16 95 , deduce_domain
Chris@16 96 , const A0 , const A1 , const A2 , const A3
Chris@16 97 >()(a0 , a1 , a2 , a3);
Chris@16 98 }
Chris@16 99
Chris@16 100
Chris@16 101 template<typename Tag, typename Domain , typename C0 , typename C1 , typename C2 , typename C3>
Chris@16 102 BOOST_FORCEINLINE
Chris@16 103 typename result_of::make_expr<
Chris@16 104 Tag
Chris@16 105 , Domain
Chris@16 106 , const C0 , const C1 , const C2 , const C3
Chris@16 107 >::type const
Chris@16 108 make_expr(const C0 &c0 , const C1 &c1 , const C2 &c2 , const C3 &c3)
Chris@16 109 {
Chris@16 110 return proto::detail::make_expr_<
Chris@16 111 Tag
Chris@16 112 , Domain
Chris@16 113 , const C0 , const C1 , const C2 , const C3
Chris@16 114 >()(c0 , c1 , c2 , c3);
Chris@16 115 }
Chris@16 116
Chris@16 117
Chris@16 118 template<typename Tag , typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
Chris@16 119 BOOST_FORCEINLINE
Chris@16 120 typename lazy_disable_if<
Chris@16 121 is_domain<A0>
Chris@16 122 , result_of::make_expr<
Chris@16 123 Tag
Chris@16 124 , const A0 , const A1 , const A2 , const A3 , const A4
Chris@16 125 >
Chris@16 126 >::type const
Chris@16 127 make_expr(const A0 &a0 , const A1 &a1 , const A2 &a2 , const A3 &a3 , const A4 &a4)
Chris@16 128 {
Chris@16 129 return proto::detail::make_expr_<
Chris@16 130 Tag
Chris@16 131 , deduce_domain
Chris@16 132 , const A0 , const A1 , const A2 , const A3 , const A4
Chris@16 133 >()(a0 , a1 , a2 , a3 , a4);
Chris@16 134 }
Chris@16 135
Chris@16 136
Chris@16 137 template<typename Tag, typename Domain , typename C0 , typename C1 , typename C2 , typename C3 , typename C4>
Chris@16 138 BOOST_FORCEINLINE
Chris@16 139 typename result_of::make_expr<
Chris@16 140 Tag
Chris@16 141 , Domain
Chris@16 142 , const C0 , const C1 , const C2 , const C3 , const C4
Chris@16 143 >::type const
Chris@16 144 make_expr(const C0 &c0 , const C1 &c1 , const C2 &c2 , const C3 &c3 , const C4 &c4)
Chris@16 145 {
Chris@16 146 return proto::detail::make_expr_<
Chris@16 147 Tag
Chris@16 148 , Domain
Chris@16 149 , const C0 , const C1 , const C2 , const C3 , const C4
Chris@16 150 >()(c0 , c1 , c2 , c3 , c4);
Chris@16 151 }
Chris@16 152
Chris@16 153
Chris@16 154 template<typename Tag , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
Chris@16 155 BOOST_FORCEINLINE
Chris@16 156 typename lazy_disable_if<
Chris@16 157 is_domain<A0>
Chris@16 158 , result_of::make_expr<
Chris@16 159 Tag
Chris@16 160 , const A0 , const A1 , const A2 , const A3 , const A4 , const A5
Chris@16 161 >
Chris@16 162 >::type const
Chris@16 163 make_expr(const A0 &a0 , const A1 &a1 , const A2 &a2 , const A3 &a3 , const A4 &a4 , const A5 &a5)
Chris@16 164 {
Chris@16 165 return proto::detail::make_expr_<
Chris@16 166 Tag
Chris@16 167 , deduce_domain
Chris@16 168 , const A0 , const A1 , const A2 , const A3 , const A4 , const A5
Chris@16 169 >()(a0 , a1 , a2 , a3 , a4 , a5);
Chris@16 170 }
Chris@16 171
Chris@16 172
Chris@16 173 template<typename Tag, typename Domain , typename C0 , typename C1 , typename C2 , typename C3 , typename C4 , typename C5>
Chris@16 174 BOOST_FORCEINLINE
Chris@16 175 typename result_of::make_expr<
Chris@16 176 Tag
Chris@16 177 , Domain
Chris@16 178 , const C0 , const C1 , const C2 , const C3 , const C4 , const C5
Chris@16 179 >::type const
Chris@16 180 make_expr(const C0 &c0 , const C1 &c1 , const C2 &c2 , const C3 &c3 , const C4 &c4 , const C5 &c5)
Chris@16 181 {
Chris@16 182 return proto::detail::make_expr_<
Chris@16 183 Tag
Chris@16 184 , Domain
Chris@16 185 , const C0 , const C1 , const C2 , const C3 , const C4 , const C5
Chris@16 186 >()(c0 , c1 , c2 , c3 , c4 , c5);
Chris@16 187 }
Chris@16 188
Chris@16 189
Chris@16 190 template<typename Tag , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
Chris@16 191 BOOST_FORCEINLINE
Chris@16 192 typename lazy_disable_if<
Chris@16 193 is_domain<A0>
Chris@16 194 , result_of::make_expr<
Chris@16 195 Tag
Chris@16 196 , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6
Chris@16 197 >
Chris@16 198 >::type const
Chris@16 199 make_expr(const A0 &a0 , const A1 &a1 , const A2 &a2 , const A3 &a3 , const A4 &a4 , const A5 &a5 , const A6 &a6)
Chris@16 200 {
Chris@16 201 return proto::detail::make_expr_<
Chris@16 202 Tag
Chris@16 203 , deduce_domain
Chris@16 204 , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6
Chris@16 205 >()(a0 , a1 , a2 , a3 , a4 , a5 , a6);
Chris@16 206 }
Chris@16 207
Chris@16 208
Chris@16 209 template<typename Tag, typename Domain , typename C0 , typename C1 , typename C2 , typename C3 , typename C4 , typename C5 , typename C6>
Chris@16 210 BOOST_FORCEINLINE
Chris@16 211 typename result_of::make_expr<
Chris@16 212 Tag
Chris@16 213 , Domain
Chris@16 214 , const C0 , const C1 , const C2 , const C3 , const C4 , const C5 , const C6
Chris@16 215 >::type const
Chris@16 216 make_expr(const C0 &c0 , const C1 &c1 , const C2 &c2 , const C3 &c3 , const C4 &c4 , const C5 &c5 , const C6 &c6)
Chris@16 217 {
Chris@16 218 return proto::detail::make_expr_<
Chris@16 219 Tag
Chris@16 220 , Domain
Chris@16 221 , const C0 , const C1 , const C2 , const C3 , const C4 , const C5 , const C6
Chris@16 222 >()(c0 , c1 , c2 , c3 , c4 , c5 , c6);
Chris@16 223 }
Chris@16 224
Chris@16 225
Chris@16 226 template<typename Tag , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
Chris@16 227 BOOST_FORCEINLINE
Chris@16 228 typename lazy_disable_if<
Chris@16 229 is_domain<A0>
Chris@16 230 , result_of::make_expr<
Chris@16 231 Tag
Chris@16 232 , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7
Chris@16 233 >
Chris@16 234 >::type const
Chris@16 235 make_expr(const A0 &a0 , const A1 &a1 , const A2 &a2 , const A3 &a3 , const A4 &a4 , const A5 &a5 , const A6 &a6 , const A7 &a7)
Chris@16 236 {
Chris@16 237 return proto::detail::make_expr_<
Chris@16 238 Tag
Chris@16 239 , deduce_domain
Chris@16 240 , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7
Chris@16 241 >()(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
Chris@16 242 }
Chris@16 243
Chris@16 244
Chris@16 245 template<typename Tag, typename Domain , typename C0 , typename C1 , typename C2 , typename C3 , typename C4 , typename C5 , typename C6 , typename C7>
Chris@16 246 BOOST_FORCEINLINE
Chris@16 247 typename result_of::make_expr<
Chris@16 248 Tag
Chris@16 249 , Domain
Chris@16 250 , const C0 , const C1 , const C2 , const C3 , const C4 , const C5 , const C6 , const C7
Chris@16 251 >::type const
Chris@16 252 make_expr(const C0 &c0 , const C1 &c1 , const C2 &c2 , const C3 &c3 , const C4 &c4 , const C5 &c5 , const C6 &c6 , const C7 &c7)
Chris@16 253 {
Chris@16 254 return proto::detail::make_expr_<
Chris@16 255 Tag
Chris@16 256 , Domain
Chris@16 257 , const C0 , const C1 , const C2 , const C3 , const C4 , const C5 , const C6 , const C7
Chris@16 258 >()(c0 , c1 , c2 , c3 , c4 , c5 , c6 , c7);
Chris@16 259 }
Chris@16 260
Chris@16 261
Chris@16 262 template<typename Tag , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
Chris@16 263 BOOST_FORCEINLINE
Chris@16 264 typename lazy_disable_if<
Chris@16 265 is_domain<A0>
Chris@16 266 , result_of::make_expr<
Chris@16 267 Tag
Chris@16 268 , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8
Chris@16 269 >
Chris@16 270 >::type const
Chris@16 271 make_expr(const A0 &a0 , const A1 &a1 , const A2 &a2 , const A3 &a3 , const A4 &a4 , const A5 &a5 , const A6 &a6 , const A7 &a7 , const A8 &a8)
Chris@16 272 {
Chris@16 273 return proto::detail::make_expr_<
Chris@16 274 Tag
Chris@16 275 , deduce_domain
Chris@16 276 , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8
Chris@16 277 >()(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
Chris@16 278 }
Chris@16 279
Chris@16 280
Chris@16 281 template<typename Tag, typename Domain , typename C0 , typename C1 , typename C2 , typename C3 , typename C4 , typename C5 , typename C6 , typename C7 , typename C8>
Chris@16 282 BOOST_FORCEINLINE
Chris@16 283 typename result_of::make_expr<
Chris@16 284 Tag
Chris@16 285 , Domain
Chris@16 286 , const C0 , const C1 , const C2 , const C3 , const C4 , const C5 , const C6 , const C7 , const C8
Chris@16 287 >::type const
Chris@16 288 make_expr(const C0 &c0 , const C1 &c1 , const C2 &c2 , const C3 &c3 , const C4 &c4 , const C5 &c5 , const C6 &c6 , const C7 &c7 , const C8 &c8)
Chris@16 289 {
Chris@16 290 return proto::detail::make_expr_<
Chris@16 291 Tag
Chris@16 292 , Domain
Chris@16 293 , const C0 , const C1 , const C2 , const C3 , const C4 , const C5 , const C6 , const C7 , const C8
Chris@16 294 >()(c0 , c1 , c2 , c3 , c4 , c5 , c6 , c7 , c8);
Chris@16 295 }
Chris@16 296
Chris@16 297
Chris@16 298 template<typename Tag , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
Chris@16 299 BOOST_FORCEINLINE
Chris@16 300 typename lazy_disable_if<
Chris@16 301 is_domain<A0>
Chris@16 302 , result_of::make_expr<
Chris@16 303 Tag
Chris@16 304 , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8 , const A9
Chris@16 305 >
Chris@16 306 >::type const
Chris@16 307 make_expr(const A0 &a0 , const A1 &a1 , const A2 &a2 , const A3 &a3 , const A4 &a4 , const A5 &a5 , const A6 &a6 , const A7 &a7 , const A8 &a8 , const A9 &a9)
Chris@16 308 {
Chris@16 309 return proto::detail::make_expr_<
Chris@16 310 Tag
Chris@16 311 , deduce_domain
Chris@16 312 , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8 , const A9
Chris@16 313 >()(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
Chris@16 314 }
Chris@16 315
Chris@16 316
Chris@16 317 template<typename Tag, typename Domain , typename C0 , typename C1 , typename C2 , typename C3 , typename C4 , typename C5 , typename C6 , typename C7 , typename C8 , typename C9>
Chris@16 318 BOOST_FORCEINLINE
Chris@16 319 typename result_of::make_expr<
Chris@16 320 Tag
Chris@16 321 , Domain
Chris@16 322 , const C0 , const C1 , const C2 , const C3 , const C4 , const C5 , const C6 , const C7 , const C8 , const C9
Chris@16 323 >::type const
Chris@16 324 make_expr(const C0 &c0 , const C1 &c1 , const C2 &c2 , const C3 &c3 , const C4 &c4 , const C5 &c5 , const C6 &c6 , const C7 &c7 , const C8 &c8 , const C9 &c9)
Chris@16 325 {
Chris@16 326 return proto::detail::make_expr_<
Chris@16 327 Tag
Chris@16 328 , Domain
Chris@16 329 , const C0 , const C1 , const C2 , const C3 , const C4 , const C5 , const C6 , const C7 , const C8 , const C9
Chris@16 330 >()(c0 , c1 , c2 , c3 , c4 , c5 , c6 , c7 , c8 , c9);
Chris@16 331 }