dynamic_20.hpp 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687
  1. /*==============================================================================
  2. Copyright (c) 2005-2010 Joel de Guzman
  3. Copyright (c) 2010 Thomas Heller
  4. Distributed under the Boost Software License, Version 1.0. (See accompanying
  5. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6. ==============================================================================*/
  7. template <typename A0>
  8. struct dynamic<A0> : noncopyable
  9. {
  10. typedef
  11. vector1<A0>
  12. tuple_type;
  13. typedef
  14. dynamic<A0>
  15. self_type;
  16. typedef
  17. dynamic_frame<self_type>
  18. dynamic_frame_type;
  19. dynamic()
  20. : frame(0) {}
  21. template <int N>
  22. static
  23. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  24. init(self_type * scope)
  25. {
  26. return
  27. expression::
  28. dynamic_member<mpl::int_<N>, self_type *>::
  29. make(mpl::int_<N>(), scope);
  30. }
  31. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1;
  32. mutable dynamic_frame_type* frame;
  33. };
  34. template <typename A0 , typename A1>
  35. struct dynamic<A0 , A1> : noncopyable
  36. {
  37. typedef
  38. vector2<A0 , A1>
  39. tuple_type;
  40. typedef
  41. dynamic<A0 , A1>
  42. self_type;
  43. typedef
  44. dynamic_frame<self_type>
  45. dynamic_frame_type;
  46. dynamic()
  47. : frame(0) {}
  48. template <int N>
  49. static
  50. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  51. init(self_type * scope)
  52. {
  53. return
  54. expression::
  55. dynamic_member<mpl::int_<N>, self_type *>::
  56. make(mpl::int_<N>(), scope);
  57. }
  58. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2;
  59. mutable dynamic_frame_type* frame;
  60. };
  61. template <typename A0 , typename A1 , typename A2>
  62. struct dynamic<A0 , A1 , A2> : noncopyable
  63. {
  64. typedef
  65. vector3<A0 , A1 , A2>
  66. tuple_type;
  67. typedef
  68. dynamic<A0 , A1 , A2>
  69. self_type;
  70. typedef
  71. dynamic_frame<self_type>
  72. dynamic_frame_type;
  73. dynamic()
  74. : frame(0) {}
  75. template <int N>
  76. static
  77. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  78. init(self_type * scope)
  79. {
  80. return
  81. expression::
  82. dynamic_member<mpl::int_<N>, self_type *>::
  83. make(mpl::int_<N>(), scope);
  84. }
  85. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3;
  86. mutable dynamic_frame_type* frame;
  87. };
  88. template <typename A0 , typename A1 , typename A2 , typename A3>
  89. struct dynamic<A0 , A1 , A2 , A3> : noncopyable
  90. {
  91. typedef
  92. vector4<A0 , A1 , A2 , A3>
  93. tuple_type;
  94. typedef
  95. dynamic<A0 , A1 , A2 , A3>
  96. self_type;
  97. typedef
  98. dynamic_frame<self_type>
  99. dynamic_frame_type;
  100. dynamic()
  101. : frame(0) {}
  102. template <int N>
  103. static
  104. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  105. init(self_type * scope)
  106. {
  107. return
  108. expression::
  109. dynamic_member<mpl::int_<N>, self_type *>::
  110. make(mpl::int_<N>(), scope);
  111. }
  112. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4;
  113. mutable dynamic_frame_type* frame;
  114. };
  115. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
  116. struct dynamic<A0 , A1 , A2 , A3 , A4> : noncopyable
  117. {
  118. typedef
  119. vector5<A0 , A1 , A2 , A3 , A4>
  120. tuple_type;
  121. typedef
  122. dynamic<A0 , A1 , A2 , A3 , A4>
  123. self_type;
  124. typedef
  125. dynamic_frame<self_type>
  126. dynamic_frame_type;
  127. dynamic()
  128. : frame(0) {}
  129. template <int N>
  130. static
  131. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  132. init(self_type * scope)
  133. {
  134. return
  135. expression::
  136. dynamic_member<mpl::int_<N>, self_type *>::
  137. make(mpl::int_<N>(), scope);
  138. }
  139. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5;
  140. mutable dynamic_frame_type* frame;
  141. };
  142. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
  143. struct dynamic<A0 , A1 , A2 , A3 , A4 , A5> : noncopyable
  144. {
  145. typedef
  146. vector6<A0 , A1 , A2 , A3 , A4 , A5>
  147. tuple_type;
  148. typedef
  149. dynamic<A0 , A1 , A2 , A3 , A4 , A5>
  150. self_type;
  151. typedef
  152. dynamic_frame<self_type>
  153. dynamic_frame_type;
  154. dynamic()
  155. : frame(0) {}
  156. template <int N>
  157. static
  158. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  159. init(self_type * scope)
  160. {
  161. return
  162. expression::
  163. dynamic_member<mpl::int_<N>, self_type *>::
  164. make(mpl::int_<N>(), scope);
  165. }
  166. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6;
  167. mutable dynamic_frame_type* frame;
  168. };
  169. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
  170. struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6> : noncopyable
  171. {
  172. typedef
  173. vector7<A0 , A1 , A2 , A3 , A4 , A5 , A6>
  174. tuple_type;
  175. typedef
  176. dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6>
  177. self_type;
  178. typedef
  179. dynamic_frame<self_type>
  180. dynamic_frame_type;
  181. dynamic()
  182. : frame(0) {}
  183. template <int N>
  184. static
  185. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  186. init(self_type * scope)
  187. {
  188. return
  189. expression::
  190. dynamic_member<mpl::int_<N>, self_type *>::
  191. make(mpl::int_<N>(), scope);
  192. }
  193. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const member7;
  194. mutable dynamic_frame_type* frame;
  195. };
  196. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
  197. struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7> : noncopyable
  198. {
  199. typedef
  200. vector8<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
  201. tuple_type;
  202. typedef
  203. dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
  204. self_type;
  205. typedef
  206. dynamic_frame<self_type>
  207. dynamic_frame_type;
  208. dynamic()
  209. : frame(0) {}
  210. template <int N>
  211. static
  212. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  213. init(self_type * scope)
  214. {
  215. return
  216. expression::
  217. dynamic_member<mpl::int_<N>, self_type *>::
  218. make(mpl::int_<N>(), scope);
  219. }
  220. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type const member8;
  221. mutable dynamic_frame_type* frame;
  222. };
  223. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
  224. struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8> : noncopyable
  225. {
  226. typedef
  227. vector9<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
  228. tuple_type;
  229. typedef
  230. dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
  231. self_type;
  232. typedef
  233. dynamic_frame<self_type>
  234. dynamic_frame_type;
  235. dynamic()
  236. : frame(0) {}
  237. template <int N>
  238. static
  239. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  240. init(self_type * scope)
  241. {
  242. return
  243. expression::
  244. dynamic_member<mpl::int_<N>, self_type *>::
  245. make(mpl::int_<N>(), scope);
  246. }
  247. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type const member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type const member9;
  248. mutable dynamic_frame_type* frame;
  249. };
  250. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
  251. struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> : noncopyable
  252. {
  253. typedef
  254. vector10<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
  255. tuple_type;
  256. typedef
  257. dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
  258. self_type;
  259. typedef
  260. dynamic_frame<self_type>
  261. dynamic_frame_type;
  262. dynamic()
  263. : frame(0) {}
  264. template <int N>
  265. static
  266. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  267. init(self_type * scope)
  268. {
  269. return
  270. expression::
  271. dynamic_member<mpl::int_<N>, self_type *>::
  272. make(mpl::int_<N>(), scope);
  273. }
  274. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type const member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type const member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type const member10;
  275. mutable dynamic_frame_type* frame;
  276. };
  277. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
  278. struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10> : noncopyable
  279. {
  280. typedef
  281. vector11<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
  282. tuple_type;
  283. typedef
  284. dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
  285. self_type;
  286. typedef
  287. dynamic_frame<self_type>
  288. dynamic_frame_type;
  289. dynamic()
  290. : frame(0) {}
  291. template <int N>
  292. static
  293. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  294. init(self_type * scope)
  295. {
  296. return
  297. expression::
  298. dynamic_member<mpl::int_<N>, self_type *>::
  299. make(mpl::int_<N>(), scope);
  300. }
  301. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type const member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type const member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type const member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type const member11;
  302. mutable dynamic_frame_type* frame;
  303. };
  304. 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>
  305. struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11> : noncopyable
  306. {
  307. typedef
  308. vector12<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
  309. tuple_type;
  310. typedef
  311. dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
  312. self_type;
  313. typedef
  314. dynamic_frame<self_type>
  315. dynamic_frame_type;
  316. dynamic()
  317. : frame(0) {}
  318. template <int N>
  319. static
  320. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  321. init(self_type * scope)
  322. {
  323. return
  324. expression::
  325. dynamic_member<mpl::int_<N>, self_type *>::
  326. make(mpl::int_<N>(), scope);
  327. }
  328. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type const member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type const member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type const member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type const member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type const member12;
  329. mutable dynamic_frame_type* frame;
  330. };
  331. 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>
  332. struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12> : noncopyable
  333. {
  334. typedef
  335. vector13<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
  336. tuple_type;
  337. typedef
  338. dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
  339. self_type;
  340. typedef
  341. dynamic_frame<self_type>
  342. dynamic_frame_type;
  343. dynamic()
  344. : frame(0) {}
  345. template <int N>
  346. static
  347. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  348. init(self_type * scope)
  349. {
  350. return
  351. expression::
  352. dynamic_member<mpl::int_<N>, self_type *>::
  353. make(mpl::int_<N>(), scope);
  354. }
  355. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type const member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type const member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type const member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type const member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type const member12; typedef typename expression::dynamic_member< mpl::int_< 12> , self_type * >::type const member13;
  356. mutable dynamic_frame_type* frame;
  357. };
  358. 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>
  359. struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13> : noncopyable
  360. {
  361. typedef
  362. vector14<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
  363. tuple_type;
  364. typedef
  365. dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
  366. self_type;
  367. typedef
  368. dynamic_frame<self_type>
  369. dynamic_frame_type;
  370. dynamic()
  371. : frame(0) {}
  372. template <int N>
  373. static
  374. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  375. init(self_type * scope)
  376. {
  377. return
  378. expression::
  379. dynamic_member<mpl::int_<N>, self_type *>::
  380. make(mpl::int_<N>(), scope);
  381. }
  382. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type const member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type const member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type const member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type const member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type const member12; typedef typename expression::dynamic_member< mpl::int_< 12> , self_type * >::type const member13; typedef typename expression::dynamic_member< mpl::int_< 13> , self_type * >::type const member14;
  383. mutable dynamic_frame_type* frame;
  384. };
  385. 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>
  386. struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14> : noncopyable
  387. {
  388. typedef
  389. vector15<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
  390. tuple_type;
  391. typedef
  392. dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
  393. self_type;
  394. typedef
  395. dynamic_frame<self_type>
  396. dynamic_frame_type;
  397. dynamic()
  398. : frame(0) {}
  399. template <int N>
  400. static
  401. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  402. init(self_type * scope)
  403. {
  404. return
  405. expression::
  406. dynamic_member<mpl::int_<N>, self_type *>::
  407. make(mpl::int_<N>(), scope);
  408. }
  409. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type const member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type const member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type const member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type const member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type const member12; typedef typename expression::dynamic_member< mpl::int_< 12> , self_type * >::type const member13; typedef typename expression::dynamic_member< mpl::int_< 13> , self_type * >::type const member14; typedef typename expression::dynamic_member< mpl::int_< 14> , self_type * >::type const member15;
  410. mutable dynamic_frame_type* frame;
  411. };
  412. 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>
  413. struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15> : noncopyable
  414. {
  415. typedef
  416. vector16<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
  417. tuple_type;
  418. typedef
  419. dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
  420. self_type;
  421. typedef
  422. dynamic_frame<self_type>
  423. dynamic_frame_type;
  424. dynamic()
  425. : frame(0) {}
  426. template <int N>
  427. static
  428. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  429. init(self_type * scope)
  430. {
  431. return
  432. expression::
  433. dynamic_member<mpl::int_<N>, self_type *>::
  434. make(mpl::int_<N>(), scope);
  435. }
  436. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type const member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type const member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type const member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type const member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type const member12; typedef typename expression::dynamic_member< mpl::int_< 12> , self_type * >::type const member13; typedef typename expression::dynamic_member< mpl::int_< 13> , self_type * >::type const member14; typedef typename expression::dynamic_member< mpl::int_< 14> , self_type * >::type const member15; typedef typename expression::dynamic_member< mpl::int_< 15> , self_type * >::type const member16;
  437. mutable dynamic_frame_type* frame;
  438. };
  439. 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>
  440. struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16> : noncopyable
  441. {
  442. typedef
  443. vector17<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
  444. tuple_type;
  445. typedef
  446. dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
  447. self_type;
  448. typedef
  449. dynamic_frame<self_type>
  450. dynamic_frame_type;
  451. dynamic()
  452. : frame(0) {}
  453. template <int N>
  454. static
  455. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  456. init(self_type * scope)
  457. {
  458. return
  459. expression::
  460. dynamic_member<mpl::int_<N>, self_type *>::
  461. make(mpl::int_<N>(), scope);
  462. }
  463. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type const member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type const member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type const member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type const member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type const member12; typedef typename expression::dynamic_member< mpl::int_< 12> , self_type * >::type const member13; typedef typename expression::dynamic_member< mpl::int_< 13> , self_type * >::type const member14; typedef typename expression::dynamic_member< mpl::int_< 14> , self_type * >::type const member15; typedef typename expression::dynamic_member< mpl::int_< 15> , self_type * >::type const member16; typedef typename expression::dynamic_member< mpl::int_< 16> , self_type * >::type const member17;
  464. mutable dynamic_frame_type* frame;
  465. };
  466. 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>
  467. struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17> : noncopyable
  468. {
  469. typedef
  470. vector18<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
  471. tuple_type;
  472. typedef
  473. dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
  474. self_type;
  475. typedef
  476. dynamic_frame<self_type>
  477. dynamic_frame_type;
  478. dynamic()
  479. : frame(0) {}
  480. template <int N>
  481. static
  482. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  483. init(self_type * scope)
  484. {
  485. return
  486. expression::
  487. dynamic_member<mpl::int_<N>, self_type *>::
  488. make(mpl::int_<N>(), scope);
  489. }
  490. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type const member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type const member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type const member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type const member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type const member12; typedef typename expression::dynamic_member< mpl::int_< 12> , self_type * >::type const member13; typedef typename expression::dynamic_member< mpl::int_< 13> , self_type * >::type const member14; typedef typename expression::dynamic_member< mpl::int_< 14> , self_type * >::type const member15; typedef typename expression::dynamic_member< mpl::int_< 15> , self_type * >::type const member16; typedef typename expression::dynamic_member< mpl::int_< 16> , self_type * >::type const member17; typedef typename expression::dynamic_member< mpl::int_< 17> , self_type * >::type const member18;
  491. mutable dynamic_frame_type* frame;
  492. };
  493. 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>
  494. struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18> : noncopyable
  495. {
  496. typedef
  497. vector19<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
  498. tuple_type;
  499. typedef
  500. dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
  501. self_type;
  502. typedef
  503. dynamic_frame<self_type>
  504. dynamic_frame_type;
  505. dynamic()
  506. : frame(0) {}
  507. template <int N>
  508. static
  509. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  510. init(self_type * scope)
  511. {
  512. return
  513. expression::
  514. dynamic_member<mpl::int_<N>, self_type *>::
  515. make(mpl::int_<N>(), scope);
  516. }
  517. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type const member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type const member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type const member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type const member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type const member12; typedef typename expression::dynamic_member< mpl::int_< 12> , self_type * >::type const member13; typedef typename expression::dynamic_member< mpl::int_< 13> , self_type * >::type const member14; typedef typename expression::dynamic_member< mpl::int_< 14> , self_type * >::type const member15; typedef typename expression::dynamic_member< mpl::int_< 15> , self_type * >::type const member16; typedef typename expression::dynamic_member< mpl::int_< 16> , self_type * >::type const member17; typedef typename expression::dynamic_member< mpl::int_< 17> , self_type * >::type const member18; typedef typename expression::dynamic_member< mpl::int_< 18> , self_type * >::type const member19;
  518. mutable dynamic_frame_type* frame;
  519. };
  520. 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>
  521. struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19> : noncopyable
  522. {
  523. typedef
  524. vector20<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
  525. tuple_type;
  526. typedef
  527. dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
  528. self_type;
  529. typedef
  530. dynamic_frame<self_type>
  531. dynamic_frame_type;
  532. dynamic()
  533. : frame(0) {}
  534. template <int N>
  535. static
  536. typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const
  537. init(self_type * scope)
  538. {
  539. return
  540. expression::
  541. dynamic_member<mpl::int_<N>, self_type *>::
  542. make(mpl::int_<N>(), scope);
  543. }
  544. typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type const member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type const member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type const member10; typedef typename expression::dynamic_member< mpl::int_< 10> , self_type * >::type const member11; typedef typename expression::dynamic_member< mpl::int_< 11> , self_type * >::type const member12; typedef typename expression::dynamic_member< mpl::int_< 12> , self_type * >::type const member13; typedef typename expression::dynamic_member< mpl::int_< 13> , self_type * >::type const member14; typedef typename expression::dynamic_member< mpl::int_< 14> , self_type * >::type const member15; typedef typename expression::dynamic_member< mpl::int_< 15> , self_type * >::type const member16; typedef typename expression::dynamic_member< mpl::int_< 16> , self_type * >::type const member17; typedef typename expression::dynamic_member< mpl::int_< 17> , self_type * >::type const member18; typedef typename expression::dynamic_member< mpl::int_< 18> , self_type * >::type const member19; typedef typename expression::dynamic_member< mpl::int_< 19> , self_type * >::type const member20;
  545. mutable dynamic_frame_type* frame;
  546. };