1 /*============================================================================== 2 Copyright (c) 2005-2010 Joel de Guzman 3 Copyright (c) 2010 Thomas Heller 4 5 Distributed under the Boost Software License, Version 1.0. (See accompanying 6 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 ==============================================================================*/ 8 9 10 11 12 13 14 15 template <typename A0> 16 struct dynamic<A0> : noncopyable 17 { 18 typedef 19 vector1<A0> 20 tuple_type; 21 typedef 22 dynamic<A0> 23 self_type; 24 typedef 25 dynamic_frame<self_type> 26 dynamic_frame_type; dynamicdynamic27 dynamic() 28 : frame(0) {} 29 template <int N> 30 static 31 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic32 init(self_type * scope) 33 { 34 return 35 expression:: 36 dynamic_member<mpl::int_<N>, self_type *>:: 37 make(mpl::int_<N>(), scope); 38 } 39 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; 40 mutable dynamic_frame_type* frame; 41 }; 42 43 44 45 46 47 48 49 template <typename A0 , typename A1> 50 struct dynamic<A0 , A1> : noncopyable 51 { 52 typedef 53 vector2<A0 , A1> 54 tuple_type; 55 typedef 56 dynamic<A0 , A1> 57 self_type; 58 typedef 59 dynamic_frame<self_type> 60 dynamic_frame_type; dynamicdynamic61 dynamic() 62 : frame(0) {} 63 template <int N> 64 static 65 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic66 init(self_type * scope) 67 { 68 return 69 expression:: 70 dynamic_member<mpl::int_<N>, self_type *>:: 71 make(mpl::int_<N>(), scope); 72 } 73 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; 74 mutable dynamic_frame_type* frame; 75 }; 76 77 78 79 80 81 82 83 template <typename A0 , typename A1 , typename A2> 84 struct dynamic<A0 , A1 , A2> : noncopyable 85 { 86 typedef 87 vector3<A0 , A1 , A2> 88 tuple_type; 89 typedef 90 dynamic<A0 , A1 , A2> 91 self_type; 92 typedef 93 dynamic_frame<self_type> 94 dynamic_frame_type; dynamicdynamic95 dynamic() 96 : frame(0) {} 97 template <int N> 98 static 99 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic100 init(self_type * scope) 101 { 102 return 103 expression:: 104 dynamic_member<mpl::int_<N>, self_type *>:: 105 make(mpl::int_<N>(), scope); 106 } 107 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; 108 mutable dynamic_frame_type* frame; 109 }; 110 111 112 113 114 115 116 117 template <typename A0 , typename A1 , typename A2 , typename A3> 118 struct dynamic<A0 , A1 , A2 , A3> : noncopyable 119 { 120 typedef 121 vector4<A0 , A1 , A2 , A3> 122 tuple_type; 123 typedef 124 dynamic<A0 , A1 , A2 , A3> 125 self_type; 126 typedef 127 dynamic_frame<self_type> 128 dynamic_frame_type; dynamicdynamic129 dynamic() 130 : frame(0) {} 131 template <int N> 132 static 133 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic134 init(self_type * scope) 135 { 136 return 137 expression:: 138 dynamic_member<mpl::int_<N>, self_type *>:: 139 make(mpl::int_<N>(), scope); 140 } 141 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; 142 mutable dynamic_frame_type* frame; 143 }; 144 145 146 147 148 149 150 151 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4> 152 struct dynamic<A0 , A1 , A2 , A3 , A4> : noncopyable 153 { 154 typedef 155 vector5<A0 , A1 , A2 , A3 , A4> 156 tuple_type; 157 typedef 158 dynamic<A0 , A1 , A2 , A3 , A4> 159 self_type; 160 typedef 161 dynamic_frame<self_type> 162 dynamic_frame_type; dynamicdynamic163 dynamic() 164 : frame(0) {} 165 template <int N> 166 static 167 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic168 init(self_type * scope) 169 { 170 return 171 expression:: 172 dynamic_member<mpl::int_<N>, self_type *>:: 173 make(mpl::int_<N>(), scope); 174 } 175 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; 176 mutable dynamic_frame_type* frame; 177 }; 178 179 180 181 182 183 184 185 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5> 186 struct dynamic<A0 , A1 , A2 , A3 , A4 , A5> : noncopyable 187 { 188 typedef 189 vector6<A0 , A1 , A2 , A3 , A4 , A5> 190 tuple_type; 191 typedef 192 dynamic<A0 , A1 , A2 , A3 , A4 , A5> 193 self_type; 194 typedef 195 dynamic_frame<self_type> 196 dynamic_frame_type; dynamicdynamic197 dynamic() 198 : frame(0) {} 199 template <int N> 200 static 201 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic202 init(self_type * scope) 203 { 204 return 205 expression:: 206 dynamic_member<mpl::int_<N>, self_type *>:: 207 make(mpl::int_<N>(), scope); 208 } 209 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; 210 mutable dynamic_frame_type* frame; 211 }; 212 213 214 215 216 217 218 219 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6> 220 struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6> : noncopyable 221 { 222 typedef 223 vector7<A0 , A1 , A2 , A3 , A4 , A5 , A6> 224 tuple_type; 225 typedef 226 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6> 227 self_type; 228 typedef 229 dynamic_frame<self_type> 230 dynamic_frame_type; dynamicdynamic231 dynamic() 232 : frame(0) {} 233 template <int N> 234 static 235 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic236 init(self_type * scope) 237 { 238 return 239 expression:: 240 dynamic_member<mpl::int_<N>, self_type *>:: 241 make(mpl::int_<N>(), scope); 242 } 243 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7; 244 mutable dynamic_frame_type* frame; 245 }; 246 247 248 249 250 251 252 253 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7> 254 struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7> : noncopyable 255 { 256 typedef 257 vector8<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7> 258 tuple_type; 259 typedef 260 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7> 261 self_type; 262 typedef 263 dynamic_frame<self_type> 264 dynamic_frame_type; dynamicdynamic265 dynamic() 266 : frame(0) {} 267 template <int N> 268 static 269 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic270 init(self_type * scope) 271 { 272 return 273 expression:: 274 dynamic_member<mpl::int_<N>, self_type *>:: 275 make(mpl::int_<N>(), scope); 276 } 277 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type member8; 278 mutable dynamic_frame_type* frame; 279 }; 280 281 282 283 284 285 286 287 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8> 288 struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8> : noncopyable 289 { 290 typedef 291 vector9<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8> 292 tuple_type; 293 typedef 294 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8> 295 self_type; 296 typedef 297 dynamic_frame<self_type> 298 dynamic_frame_type; dynamicdynamic299 dynamic() 300 : frame(0) {} 301 template <int N> 302 static 303 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic304 init(self_type * scope) 305 { 306 return 307 expression:: 308 dynamic_member<mpl::int_<N>, self_type *>:: 309 make(mpl::int_<N>(), scope); 310 } 311 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type member9; 312 mutable dynamic_frame_type* frame; 313 }; 314 315 316 317 318 319 320 321 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9> 322 struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> : noncopyable 323 { 324 typedef 325 vector10<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> 326 tuple_type; 327 typedef 328 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> 329 self_type; 330 typedef 331 dynamic_frame<self_type> 332 dynamic_frame_type; dynamicdynamic333 dynamic() 334 : frame(0) {} 335 template <int N> 336 static 337 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic338 init(self_type * scope) 339 { 340 return 341 expression:: 342 dynamic_member<mpl::int_<N>, self_type *>:: 343 make(mpl::int_<N>(), scope); 344 } 345 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type member10; 346 mutable dynamic_frame_type* frame; 347 }; 348 349 350 351 352 353 354 355 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10> 356 struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10> : noncopyable 357 { 358 typedef 359 vector11<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10> 360 tuple_type; 361 typedef 362 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10> 363 self_type; 364 typedef 365 dynamic_frame<self_type> 366 dynamic_frame_type; dynamicdynamic367 dynamic() 368 : frame(0) {} 369 template <int N> 370 static 371 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic372 init(self_type * scope) 373 { 374 return 375 expression:: 376 dynamic_member<mpl::int_<N>, self_type *>:: 377 make(mpl::int_<N>(), scope); 378 } 379 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type member11; 380 mutable dynamic_frame_type* frame; 381 }; 382 383 384 385 386 387 388 389 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11> 390 struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11> : noncopyable 391 { 392 typedef 393 vector12<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11> 394 tuple_type; 395 typedef 396 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11> 397 self_type; 398 typedef 399 dynamic_frame<self_type> 400 dynamic_frame_type; dynamicdynamic401 dynamic() 402 : frame(0) {} 403 template <int N> 404 static 405 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic406 init(self_type * scope) 407 { 408 return 409 expression:: 410 dynamic_member<mpl::int_<N>, self_type *>:: 411 make(mpl::int_<N>(), scope); 412 } 413 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type member12; 414 mutable dynamic_frame_type* frame; 415 }; 416 417 418 419 420 421 422 423 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12> 424 struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12> : noncopyable 425 { 426 typedef 427 vector13<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12> 428 tuple_type; 429 typedef 430 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12> 431 self_type; 432 typedef 433 dynamic_frame<self_type> 434 dynamic_frame_type; dynamicdynamic435 dynamic() 436 : frame(0) {} 437 template <int N> 438 static 439 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic440 init(self_type * scope) 441 { 442 return 443 expression:: 444 dynamic_member<mpl::int_<N>, self_type *>:: 445 make(mpl::int_<N>(), scope); 446 } 447 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_< 12> , self_type * >::type member13; 448 mutable dynamic_frame_type* frame; 449 }; 450 451 452 453 454 455 456 457 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13> 458 struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13> : noncopyable 459 { 460 typedef 461 vector14<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13> 462 tuple_type; 463 typedef 464 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13> 465 self_type; 466 typedef 467 dynamic_frame<self_type> 468 dynamic_frame_type; dynamicdynamic469 dynamic() 470 : frame(0) {} 471 template <int N> 472 static 473 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic474 init(self_type * scope) 475 { 476 return 477 expression:: 478 dynamic_member<mpl::int_<N>, self_type *>:: 479 make(mpl::int_<N>(), scope); 480 } 481 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_< 12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_< 13> , self_type * >::type member14; 482 mutable dynamic_frame_type* frame; 483 }; 484 485 486 487 488 489 490 491 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14> 492 struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14> : noncopyable 493 { 494 typedef 495 vector15<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14> 496 tuple_type; 497 typedef 498 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14> 499 self_type; 500 typedef 501 dynamic_frame<self_type> 502 dynamic_frame_type; dynamicdynamic503 dynamic() 504 : frame(0) {} 505 template <int N> 506 static 507 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic508 init(self_type * scope) 509 { 510 return 511 expression:: 512 dynamic_member<mpl::int_<N>, self_type *>:: 513 make(mpl::int_<N>(), scope); 514 } 515 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_< 12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_< 13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_< 14> , self_type * >::type member15; 516 mutable dynamic_frame_type* frame; 517 }; 518 519 520 521 522 523 524 525 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15> 526 struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15> : noncopyable 527 { 528 typedef 529 vector16<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15> 530 tuple_type; 531 typedef 532 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15> 533 self_type; 534 typedef 535 dynamic_frame<self_type> 536 dynamic_frame_type; dynamicdynamic537 dynamic() 538 : frame(0) {} 539 template <int N> 540 static 541 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic542 init(self_type * scope) 543 { 544 return 545 expression:: 546 dynamic_member<mpl::int_<N>, self_type *>:: 547 make(mpl::int_<N>(), scope); 548 } 549 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_< 12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_< 13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_< 14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_< 15> , self_type * >::type member16; 550 mutable dynamic_frame_type* frame; 551 }; 552 553 554 555 556 557 558 559 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16> 560 struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16> : noncopyable 561 { 562 typedef 563 vector17<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16> 564 tuple_type; 565 typedef 566 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16> 567 self_type; 568 typedef 569 dynamic_frame<self_type> 570 dynamic_frame_type; dynamicdynamic571 dynamic() 572 : frame(0) {} 573 template <int N> 574 static 575 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic576 init(self_type * scope) 577 { 578 return 579 expression:: 580 dynamic_member<mpl::int_<N>, self_type *>:: 581 make(mpl::int_<N>(), scope); 582 } 583 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_< 12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_< 13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_< 14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_< 15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_< 16> , self_type * >::type member17; 584 mutable dynamic_frame_type* frame; 585 }; 586 587 588 589 590 591 592 593 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17> 594 struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17> : noncopyable 595 { 596 typedef 597 vector18<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17> 598 tuple_type; 599 typedef 600 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17> 601 self_type; 602 typedef 603 dynamic_frame<self_type> 604 dynamic_frame_type; dynamicdynamic605 dynamic() 606 : frame(0) {} 607 template <int N> 608 static 609 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic610 init(self_type * scope) 611 { 612 return 613 expression:: 614 dynamic_member<mpl::int_<N>, self_type *>:: 615 make(mpl::int_<N>(), scope); 616 } 617 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_< 12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_< 13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_< 14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_< 15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_< 16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_< 17> , self_type * >::type member18; 618 mutable dynamic_frame_type* frame; 619 }; 620 621 622 623 624 625 626 627 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18> 628 struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18> : noncopyable 629 { 630 typedef 631 vector19<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18> 632 tuple_type; 633 typedef 634 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18> 635 self_type; 636 typedef 637 dynamic_frame<self_type> 638 dynamic_frame_type; dynamicdynamic639 dynamic() 640 : frame(0) {} 641 template <int N> 642 static 643 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic644 init(self_type * scope) 645 { 646 return 647 expression:: 648 dynamic_member<mpl::int_<N>, self_type *>:: 649 make(mpl::int_<N>(), scope); 650 } 651 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_< 12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_< 13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_< 14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_< 15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_< 16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_< 17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_< 18> , self_type * >::type member19; 652 mutable dynamic_frame_type* frame; 653 }; 654 655 656 657 658 659 660 661 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19> 662 struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19> : noncopyable 663 { 664 typedef 665 vector20<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19> 666 tuple_type; 667 typedef 668 dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19> 669 self_type; 670 typedef 671 dynamic_frame<self_type> 672 dynamic_frame_type; dynamicdynamic673 dynamic() 674 : frame(0) {} 675 template <int N> 676 static 677 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type initdynamic678 init(self_type * scope) 679 { 680 return 681 expression:: 682 dynamic_member<mpl::int_<N>, self_type *>:: 683 make(mpl::int_<N>(), scope); 684 } 685 typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type member12; typedef typename expression::dynamic_member< mpl::int_< 12> , self_type * >::type member13; typedef typename expression::dynamic_member< mpl::int_< 13> , self_type * >::type member14; typedef typename expression::dynamic_member< mpl::int_< 14> , self_type * >::type member15; typedef typename expression::dynamic_member< mpl::int_< 15> , self_type * >::type member16; typedef typename expression::dynamic_member< mpl::int_< 16> , self_type * >::type member17; typedef typename expression::dynamic_member< mpl::int_< 17> , self_type * >::type member18; typedef typename expression::dynamic_member< mpl::int_< 18> , self_type * >::type member19; typedef typename expression::dynamic_member< mpl::int_< 19> , self_type * >::type member20; 686 mutable dynamic_frame_type* frame; 687 }; 688