annotate DEPENDENCIES/generic/include/boost/proto/transform/detail/preprocessed/lazy.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents 2665513ce2d3
children
rev   line source
Chris@16 1 ///////////////////////////////////////////////////////////////////////////////
Chris@16 2 /// \file lazy.hpp
Chris@16 3 /// Contains definition of the lazy<> transform.
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
Chris@16 11
Chris@16 12
Chris@16 13
Chris@16 14
Chris@16 15
Chris@16 16 template<typename Object >
Chris@16 17 struct lazy<Object()>
Chris@16 18 : transform<lazy<Object()> >
Chris@16 19 {
Chris@16 20 template<typename Expr, typename State, typename Data>
Chris@16 21 struct impl
Chris@16 22 : call<
Chris@16 23 typename make<Object>::template impl<Expr, State, Data>::result_type
Chris@16 24 ()
Chris@16 25 >::template impl<Expr, State, Data>
Chris@16 26 {};
Chris@16 27 };
Chris@16 28
Chris@16 29
Chris@16 30
Chris@16 31
Chris@16 32
Chris@16 33
Chris@16 34
Chris@16 35
Chris@16 36 template<typename Object , typename A0>
Chris@16 37 struct lazy<Object(A0)>
Chris@16 38 : transform<lazy<Object(A0)> >
Chris@16 39 {
Chris@16 40 template<typename Expr, typename State, typename Data>
Chris@16 41 struct impl
Chris@16 42 : call<
Chris@16 43 typename make<Object>::template impl<Expr, State, Data>::result_type
Chris@16 44 (A0)
Chris@16 45 >::template impl<Expr, State, Data>
Chris@16 46 {};
Chris@16 47 };
Chris@16 48 template<typename Object , typename A0>
Chris@16 49 struct lazy<Object(A0...)>
Chris@16 50 : transform<lazy<Object(A0...)> >
Chris@16 51 {
Chris@16 52 template<typename Expr, typename State, typename Data>
Chris@16 53 struct impl
Chris@16 54 : lazy<
Chris@16 55 typename detail::expand_pattern<
Chris@16 56 proto::arity_of<Expr>::value
Chris@16 57 , A0
Chris@16 58 , detail::expand_pattern_rest_0<
Chris@16 59 Object
Chris@16 60
Chris@16 61 >
Chris@16 62 >::type
Chris@16 63 >::template impl<Expr, State, Data>
Chris@16 64 {};
Chris@16 65 };
Chris@16 66
Chris@16 67
Chris@16 68
Chris@16 69
Chris@16 70
Chris@16 71
Chris@16 72
Chris@16 73
Chris@16 74 template<typename Object , typename A0 , typename A1>
Chris@16 75 struct lazy<Object(A0 , A1)>
Chris@16 76 : transform<lazy<Object(A0 , A1)> >
Chris@16 77 {
Chris@16 78 template<typename Expr, typename State, typename Data>
Chris@16 79 struct impl
Chris@16 80 : call<
Chris@16 81 typename make<Object>::template impl<Expr, State, Data>::result_type
Chris@16 82 (A0 , A1)
Chris@16 83 >::template impl<Expr, State, Data>
Chris@16 84 {};
Chris@16 85 };
Chris@16 86 template<typename Object , typename A0 , typename A1>
Chris@16 87 struct lazy<Object(A0 , A1...)>
Chris@16 88 : transform<lazy<Object(A0 , A1...)> >
Chris@16 89 {
Chris@16 90 template<typename Expr, typename State, typename Data>
Chris@16 91 struct impl
Chris@16 92 : lazy<
Chris@16 93 typename detail::expand_pattern<
Chris@16 94 proto::arity_of<Expr>::value
Chris@16 95 , A1
Chris@16 96 , detail::expand_pattern_rest_1<
Chris@16 97 Object
Chris@16 98 , A0
Chris@16 99 >
Chris@16 100 >::type
Chris@16 101 >::template impl<Expr, State, Data>
Chris@16 102 {};
Chris@16 103 };
Chris@16 104
Chris@16 105
Chris@16 106
Chris@16 107
Chris@16 108
Chris@16 109
Chris@16 110
Chris@16 111
Chris@16 112 template<typename Object , typename A0 , typename A1 , typename A2>
Chris@16 113 struct lazy<Object(A0 , A1 , A2)>
Chris@16 114 : transform<lazy<Object(A0 , A1 , A2)> >
Chris@16 115 {
Chris@16 116 template<typename Expr, typename State, typename Data>
Chris@16 117 struct impl
Chris@16 118 : call<
Chris@16 119 typename make<Object>::template impl<Expr, State, Data>::result_type
Chris@16 120 (A0 , A1 , A2)
Chris@16 121 >::template impl<Expr, State, Data>
Chris@16 122 {};
Chris@16 123 };
Chris@16 124 template<typename Object , typename A0 , typename A1 , typename A2>
Chris@16 125 struct lazy<Object(A0 , A1 , A2...)>
Chris@16 126 : transform<lazy<Object(A0 , A1 , A2...)> >
Chris@16 127 {
Chris@16 128 template<typename Expr, typename State, typename Data>
Chris@16 129 struct impl
Chris@16 130 : lazy<
Chris@16 131 typename detail::expand_pattern<
Chris@16 132 proto::arity_of<Expr>::value
Chris@16 133 , A2
Chris@16 134 , detail::expand_pattern_rest_2<
Chris@16 135 Object
Chris@16 136 , A0 , A1
Chris@16 137 >
Chris@16 138 >::type
Chris@16 139 >::template impl<Expr, State, Data>
Chris@16 140 {};
Chris@16 141 };
Chris@16 142
Chris@16 143
Chris@16 144
Chris@16 145
Chris@16 146
Chris@16 147
Chris@16 148
Chris@16 149
Chris@16 150 template<typename Object , typename A0 , typename A1 , typename A2 , typename A3>
Chris@16 151 struct lazy<Object(A0 , A1 , A2 , A3)>
Chris@16 152 : transform<lazy<Object(A0 , A1 , A2 , A3)> >
Chris@16 153 {
Chris@16 154 template<typename Expr, typename State, typename Data>
Chris@16 155 struct impl
Chris@16 156 : call<
Chris@16 157 typename make<Object>::template impl<Expr, State, Data>::result_type
Chris@16 158 (A0 , A1 , A2 , A3)
Chris@16 159 >::template impl<Expr, State, Data>
Chris@16 160 {};
Chris@16 161 };
Chris@16 162 template<typename Object , typename A0 , typename A1 , typename A2 , typename A3>
Chris@16 163 struct lazy<Object(A0 , A1 , A2 , A3...)>
Chris@16 164 : transform<lazy<Object(A0 , A1 , A2 , A3...)> >
Chris@16 165 {
Chris@16 166 template<typename Expr, typename State, typename Data>
Chris@16 167 struct impl
Chris@16 168 : lazy<
Chris@16 169 typename detail::expand_pattern<
Chris@16 170 proto::arity_of<Expr>::value
Chris@16 171 , A3
Chris@16 172 , detail::expand_pattern_rest_3<
Chris@16 173 Object
Chris@16 174 , A0 , A1 , A2
Chris@16 175 >
Chris@16 176 >::type
Chris@16 177 >::template impl<Expr, State, Data>
Chris@16 178 {};
Chris@16 179 };
Chris@16 180
Chris@16 181
Chris@16 182
Chris@16 183
Chris@16 184
Chris@16 185
Chris@16 186
Chris@16 187
Chris@16 188 template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
Chris@16 189 struct lazy<Object(A0 , A1 , A2 , A3 , A4)>
Chris@16 190 : transform<lazy<Object(A0 , A1 , A2 , A3 , A4)> >
Chris@16 191 {
Chris@16 192 template<typename Expr, typename State, typename Data>
Chris@16 193 struct impl
Chris@16 194 : call<
Chris@16 195 typename make<Object>::template impl<Expr, State, Data>::result_type
Chris@16 196 (A0 , A1 , A2 , A3 , A4)
Chris@16 197 >::template impl<Expr, State, Data>
Chris@16 198 {};
Chris@16 199 };
Chris@16 200 template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
Chris@16 201 struct lazy<Object(A0 , A1 , A2 , A3 , A4...)>
Chris@16 202 : transform<lazy<Object(A0 , A1 , A2 , A3 , A4...)> >
Chris@16 203 {
Chris@16 204 template<typename Expr, typename State, typename Data>
Chris@16 205 struct impl
Chris@16 206 : lazy<
Chris@16 207 typename detail::expand_pattern<
Chris@16 208 proto::arity_of<Expr>::value
Chris@16 209 , A4
Chris@16 210 , detail::expand_pattern_rest_4<
Chris@16 211 Object
Chris@16 212 , A0 , A1 , A2 , A3
Chris@16 213 >
Chris@16 214 >::type
Chris@16 215 >::template impl<Expr, State, Data>
Chris@16 216 {};
Chris@16 217 };
Chris@16 218
Chris@16 219
Chris@16 220
Chris@16 221
Chris@16 222
Chris@16 223
Chris@16 224
Chris@16 225
Chris@16 226 template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
Chris@16 227 struct lazy<Object(A0 , A1 , A2 , A3 , A4 , A5)>
Chris@16 228 : transform<lazy<Object(A0 , A1 , A2 , A3 , A4 , A5)> >
Chris@16 229 {
Chris@16 230 template<typename Expr, typename State, typename Data>
Chris@16 231 struct impl
Chris@16 232 : call<
Chris@16 233 typename make<Object>::template impl<Expr, State, Data>::result_type
Chris@16 234 (A0 , A1 , A2 , A3 , A4 , A5)
Chris@16 235 >::template impl<Expr, State, Data>
Chris@16 236 {};
Chris@16 237 };
Chris@16 238 template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
Chris@16 239 struct lazy<Object(A0 , A1 , A2 , A3 , A4 , A5...)>
Chris@16 240 : transform<lazy<Object(A0 , A1 , A2 , A3 , A4 , A5...)> >
Chris@16 241 {
Chris@16 242 template<typename Expr, typename State, typename Data>
Chris@16 243 struct impl
Chris@16 244 : lazy<
Chris@16 245 typename detail::expand_pattern<
Chris@16 246 proto::arity_of<Expr>::value
Chris@16 247 , A5
Chris@16 248 , detail::expand_pattern_rest_5<
Chris@16 249 Object
Chris@16 250 , A0 , A1 , A2 , A3 , A4
Chris@16 251 >
Chris@16 252 >::type
Chris@16 253 >::template impl<Expr, State, Data>
Chris@16 254 {};
Chris@16 255 };
Chris@16 256
Chris@16 257
Chris@16 258
Chris@16 259
Chris@16 260
Chris@16 261
Chris@16 262
Chris@16 263
Chris@16 264 template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
Chris@16 265 struct lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6)>
Chris@16 266 : transform<lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6)> >
Chris@16 267 {
Chris@16 268 template<typename Expr, typename State, typename Data>
Chris@16 269 struct impl
Chris@16 270 : call<
Chris@16 271 typename make<Object>::template impl<Expr, State, Data>::result_type
Chris@16 272 (A0 , A1 , A2 , A3 , A4 , A5 , A6)
Chris@16 273 >::template impl<Expr, State, Data>
Chris@16 274 {};
Chris@16 275 };
Chris@16 276 template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
Chris@16 277 struct lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6...)>
Chris@16 278 : transform<lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6...)> >
Chris@16 279 {
Chris@16 280 template<typename Expr, typename State, typename Data>
Chris@16 281 struct impl
Chris@16 282 : lazy<
Chris@16 283 typename detail::expand_pattern<
Chris@16 284 proto::arity_of<Expr>::value
Chris@16 285 , A6
Chris@16 286 , detail::expand_pattern_rest_6<
Chris@16 287 Object
Chris@16 288 , A0 , A1 , A2 , A3 , A4 , A5
Chris@16 289 >
Chris@16 290 >::type
Chris@16 291 >::template impl<Expr, State, Data>
Chris@16 292 {};
Chris@16 293 };
Chris@16 294
Chris@16 295
Chris@16 296
Chris@16 297
Chris@16 298
Chris@16 299
Chris@16 300
Chris@16 301
Chris@16 302 template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
Chris@16 303 struct lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)>
Chris@16 304 : transform<lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)> >
Chris@16 305 {
Chris@16 306 template<typename Expr, typename State, typename Data>
Chris@16 307 struct impl
Chris@16 308 : call<
Chris@16 309 typename make<Object>::template impl<Expr, State, Data>::result_type
Chris@16 310 (A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)
Chris@16 311 >::template impl<Expr, State, Data>
Chris@16 312 {};
Chris@16 313 };
Chris@16 314 template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
Chris@16 315 struct lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7...)>
Chris@16 316 : transform<lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7...)> >
Chris@16 317 {
Chris@16 318 template<typename Expr, typename State, typename Data>
Chris@16 319 struct impl
Chris@16 320 : lazy<
Chris@16 321 typename detail::expand_pattern<
Chris@16 322 proto::arity_of<Expr>::value
Chris@16 323 , A7
Chris@16 324 , detail::expand_pattern_rest_7<
Chris@16 325 Object
Chris@16 326 , A0 , A1 , A2 , A3 , A4 , A5 , A6
Chris@16 327 >
Chris@16 328 >::type
Chris@16 329 >::template impl<Expr, State, Data>
Chris@16 330 {};
Chris@16 331 };
Chris@16 332
Chris@16 333
Chris@16 334
Chris@16 335
Chris@16 336
Chris@16 337
Chris@16 338
Chris@16 339
Chris@16 340 template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
Chris@16 341 struct lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)>
Chris@16 342 : transform<lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)> >
Chris@16 343 {
Chris@16 344 template<typename Expr, typename State, typename Data>
Chris@16 345 struct impl
Chris@16 346 : call<
Chris@16 347 typename make<Object>::template impl<Expr, State, Data>::result_type
Chris@16 348 (A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)
Chris@16 349 >::template impl<Expr, State, Data>
Chris@16 350 {};
Chris@16 351 };
Chris@16 352 template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
Chris@16 353 struct lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8...)>
Chris@16 354 : transform<lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8...)> >
Chris@16 355 {
Chris@16 356 template<typename Expr, typename State, typename Data>
Chris@16 357 struct impl
Chris@16 358 : lazy<
Chris@16 359 typename detail::expand_pattern<
Chris@16 360 proto::arity_of<Expr>::value
Chris@16 361 , A8
Chris@16 362 , detail::expand_pattern_rest_8<
Chris@16 363 Object
Chris@16 364 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
Chris@16 365 >
Chris@16 366 >::type
Chris@16 367 >::template impl<Expr, State, Data>
Chris@16 368 {};
Chris@16 369 };
Chris@16 370
Chris@16 371
Chris@16 372
Chris@16 373
Chris@16 374
Chris@16 375
Chris@16 376
Chris@16 377
Chris@16 378 template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
Chris@16 379 struct lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)>
Chris@16 380 : transform<lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)> >
Chris@16 381 {
Chris@16 382 template<typename Expr, typename State, typename Data>
Chris@16 383 struct impl
Chris@16 384 : call<
Chris@16 385 typename make<Object>::template impl<Expr, State, Data>::result_type
Chris@16 386 (A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)
Chris@16 387 >::template impl<Expr, State, Data>
Chris@16 388 {};
Chris@16 389 };
Chris@16 390 template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
Chris@16 391 struct lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9...)>
Chris@16 392 : transform<lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9...)> >
Chris@16 393 {
Chris@16 394 template<typename Expr, typename State, typename Data>
Chris@16 395 struct impl
Chris@16 396 : lazy<
Chris@16 397 typename detail::expand_pattern<
Chris@16 398 proto::arity_of<Expr>::value
Chris@16 399 , A9
Chris@16 400 , detail::expand_pattern_rest_9<
Chris@16 401 Object
Chris@16 402 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
Chris@16 403 >
Chris@16 404 >::type
Chris@16 405 >::template impl<Expr, State, Data>
Chris@16 406 {};
Chris@16 407 };