vector_20.hpp 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866
  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. namespace boost { namespace phoenix
  8. {
  9. template <typename Dummy = void>
  10. struct vector0
  11. {
  12. typedef mpl::int_<0> size_type;
  13. static const int size_value = 0;
  14. };
  15. template <int> struct vector_chooser;
  16. template <>
  17. struct vector_chooser<0>
  18. {
  19. template <typename Dummy = void>
  20. struct apply
  21. {
  22. typedef vector0<> type;
  23. };
  24. };
  25. }}
  26. namespace boost { namespace phoenix
  27. {
  28. template <typename A0>
  29. struct vector1
  30. {
  31. typedef A0 member_type0; A0 a0;
  32. typedef mpl::int_<1> size_type;
  33. static const int size_value = 1;
  34. typedef
  35. vector0<>
  36. args_type;
  37. args_type args() const
  38. {
  39. args_type r = {};
  40. return r;
  41. }
  42. };
  43. template <>
  44. struct vector_chooser<1>
  45. {
  46. template <typename A0>
  47. struct apply
  48. {
  49. typedef vector1<A0> type;
  50. };
  51. };
  52. }}
  53. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  54. (A0)
  55. , ( boost::phoenix::vector1 ) (A0)
  56. , (A0, a0)
  57. )
  58. namespace boost { namespace phoenix
  59. {
  60. template <typename A0 , typename A1>
  61. struct vector2
  62. {
  63. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1;
  64. typedef mpl::int_<2> size_type;
  65. static const int size_value = 2;
  66. typedef
  67. vector1<A1>
  68. args_type;
  69. args_type args() const
  70. {
  71. args_type r = {a1};
  72. return r;
  73. }
  74. };
  75. template <>
  76. struct vector_chooser<2>
  77. {
  78. template <typename A0 , typename A1>
  79. struct apply
  80. {
  81. typedef vector2<A0 , A1> type;
  82. };
  83. };
  84. }}
  85. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  86. (A0) (A1)
  87. , ( boost::phoenix::vector2 ) (A0) (A1)
  88. , (A0, a0) (A1, a1)
  89. )
  90. namespace boost { namespace phoenix
  91. {
  92. template <typename A0 , typename A1 , typename A2>
  93. struct vector3
  94. {
  95. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2;
  96. typedef mpl::int_<3> size_type;
  97. static const int size_value = 3;
  98. typedef
  99. vector2<A1 , A2>
  100. args_type;
  101. args_type args() const
  102. {
  103. args_type r = {a1 , a2};
  104. return r;
  105. }
  106. };
  107. template <>
  108. struct vector_chooser<3>
  109. {
  110. template <typename A0 , typename A1 , typename A2>
  111. struct apply
  112. {
  113. typedef vector3<A0 , A1 , A2> type;
  114. };
  115. };
  116. }}
  117. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  118. (A0) (A1) (A2)
  119. , ( boost::phoenix::vector3 ) (A0) (A1) (A2)
  120. , (A0, a0) (A1, a1) (A2, a2)
  121. )
  122. namespace boost { namespace phoenix
  123. {
  124. template <typename A0 , typename A1 , typename A2 , typename A3>
  125. struct vector4
  126. {
  127. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3;
  128. typedef mpl::int_<4> size_type;
  129. static const int size_value = 4;
  130. typedef
  131. vector3<A1 , A2 , A3>
  132. args_type;
  133. args_type args() const
  134. {
  135. args_type r = {a1 , a2 , a3};
  136. return r;
  137. }
  138. };
  139. template <>
  140. struct vector_chooser<4>
  141. {
  142. template <typename A0 , typename A1 , typename A2 , typename A3>
  143. struct apply
  144. {
  145. typedef vector4<A0 , A1 , A2 , A3> type;
  146. };
  147. };
  148. }}
  149. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  150. (A0) (A1) (A2) (A3)
  151. , ( boost::phoenix::vector4 ) (A0) (A1) (A2) (A3)
  152. , (A0, a0) (A1, a1) (A2, a2) (A3, a3)
  153. )
  154. namespace boost { namespace phoenix
  155. {
  156. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
  157. struct vector5
  158. {
  159. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4;
  160. typedef mpl::int_<5> size_type;
  161. static const int size_value = 5;
  162. typedef
  163. vector4<A1 , A2 , A3 , A4>
  164. args_type;
  165. args_type args() const
  166. {
  167. args_type r = {a1 , a2 , a3 , a4};
  168. return r;
  169. }
  170. };
  171. template <>
  172. struct vector_chooser<5>
  173. {
  174. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
  175. struct apply
  176. {
  177. typedef vector5<A0 , A1 , A2 , A3 , A4> type;
  178. };
  179. };
  180. }}
  181. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  182. (A0) (A1) (A2) (A3) (A4)
  183. , ( boost::phoenix::vector5 ) (A0) (A1) (A2) (A3) (A4)
  184. , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4)
  185. )
  186. namespace boost { namespace phoenix
  187. {
  188. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
  189. struct vector6
  190. {
  191. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5;
  192. typedef mpl::int_<6> size_type;
  193. static const int size_value = 6;
  194. typedef
  195. vector5<A1 , A2 , A3 , A4 , A5>
  196. args_type;
  197. args_type args() const
  198. {
  199. args_type r = {a1 , a2 , a3 , a4 , a5};
  200. return r;
  201. }
  202. };
  203. template <>
  204. struct vector_chooser<6>
  205. {
  206. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
  207. struct apply
  208. {
  209. typedef vector6<A0 , A1 , A2 , A3 , A4 , A5> type;
  210. };
  211. };
  212. }}
  213. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  214. (A0) (A1) (A2) (A3) (A4) (A5)
  215. , ( boost::phoenix::vector6 ) (A0) (A1) (A2) (A3) (A4) (A5)
  216. , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5)
  217. )
  218. namespace boost { namespace phoenix
  219. {
  220. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
  221. struct vector7
  222. {
  223. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6;
  224. typedef mpl::int_<7> size_type;
  225. static const int size_value = 7;
  226. typedef
  227. vector6<A1 , A2 , A3 , A4 , A5 , A6>
  228. args_type;
  229. args_type args() const
  230. {
  231. args_type r = {a1 , a2 , a3 , a4 , a5 , a6};
  232. return r;
  233. }
  234. };
  235. template <>
  236. struct vector_chooser<7>
  237. {
  238. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
  239. struct apply
  240. {
  241. typedef vector7<A0 , A1 , A2 , A3 , A4 , A5 , A6> type;
  242. };
  243. };
  244. }}
  245. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  246. (A0) (A1) (A2) (A3) (A4) (A5) (A6)
  247. , ( boost::phoenix::vector7 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6)
  248. , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6)
  249. )
  250. namespace boost { namespace phoenix
  251. {
  252. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
  253. struct vector8
  254. {
  255. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7;
  256. typedef mpl::int_<8> size_type;
  257. static const int size_value = 8;
  258. typedef
  259. vector7<A1 , A2 , A3 , A4 , A5 , A6 , A7>
  260. args_type;
  261. args_type args() const
  262. {
  263. args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7};
  264. return r;
  265. }
  266. };
  267. template <>
  268. struct vector_chooser<8>
  269. {
  270. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
  271. struct apply
  272. {
  273. typedef vector8<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7> type;
  274. };
  275. };
  276. }}
  277. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  278. (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7)
  279. , ( boost::phoenix::vector8 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7)
  280. , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7)
  281. )
  282. namespace boost { namespace phoenix
  283. {
  284. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
  285. struct vector9
  286. {
  287. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7; typedef A8 member_type8; A8 a8;
  288. typedef mpl::int_<9> size_type;
  289. static const int size_value = 9;
  290. typedef
  291. vector8<A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
  292. args_type;
  293. args_type args() const
  294. {
  295. args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
  296. return r;
  297. }
  298. };
  299. template <>
  300. struct vector_chooser<9>
  301. {
  302. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
  303. struct apply
  304. {
  305. typedef vector9<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8> type;
  306. };
  307. };
  308. }}
  309. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  310. (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8)
  311. , ( boost::phoenix::vector9 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8)
  312. , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7) (A8, a8)
  313. )
  314. namespace boost { namespace phoenix
  315. {
  316. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
  317. struct vector10
  318. {
  319. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7; typedef A8 member_type8; A8 a8; typedef A9 member_type9; A9 a9;
  320. typedef mpl::int_<10> size_type;
  321. static const int size_value = 10;
  322. typedef
  323. vector9<A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
  324. args_type;
  325. args_type args() const
  326. {
  327. args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
  328. return r;
  329. }
  330. };
  331. template <>
  332. struct vector_chooser<10>
  333. {
  334. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
  335. struct apply
  336. {
  337. typedef vector10<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> type;
  338. };
  339. };
  340. }}
  341. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  342. (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9)
  343. , ( boost::phoenix::vector10 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9)
  344. , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7) (A8, a8) (A9, a9)
  345. )
  346. namespace boost { namespace phoenix
  347. {
  348. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
  349. struct vector11
  350. {
  351. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7; typedef A8 member_type8; A8 a8; typedef A9 member_type9; A9 a9; typedef A10 member_type10; A10 a10;
  352. typedef mpl::int_<11> size_type;
  353. static const int size_value = 11;
  354. typedef
  355. vector10<A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
  356. args_type;
  357. args_type args() const
  358. {
  359. args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10};
  360. return r;
  361. }
  362. };
  363. template <>
  364. struct vector_chooser<11>
  365. {
  366. template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
  367. struct apply
  368. {
  369. typedef vector11<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10> type;
  370. };
  371. };
  372. }}
  373. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  374. (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10)
  375. , ( boost::phoenix::vector11 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10)
  376. , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7) (A8, a8) (A9, a9) (A10, a10)
  377. )
  378. namespace boost { namespace phoenix
  379. {
  380. 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>
  381. struct vector12
  382. {
  383. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7; typedef A8 member_type8; A8 a8; typedef A9 member_type9; A9 a9; typedef A10 member_type10; A10 a10; typedef A11 member_type11; A11 a11;
  384. typedef mpl::int_<12> size_type;
  385. static const int size_value = 12;
  386. typedef
  387. vector11<A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
  388. args_type;
  389. args_type args() const
  390. {
  391. args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11};
  392. return r;
  393. }
  394. };
  395. template <>
  396. struct vector_chooser<12>
  397. {
  398. 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>
  399. struct apply
  400. {
  401. typedef vector12<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11> type;
  402. };
  403. };
  404. }}
  405. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  406. (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11)
  407. , ( boost::phoenix::vector12 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11)
  408. , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7) (A8, a8) (A9, a9) (A10, a10) (A11, a11)
  409. )
  410. namespace boost { namespace phoenix
  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>
  413. struct vector13
  414. {
  415. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7; typedef A8 member_type8; A8 a8; typedef A9 member_type9; A9 a9; typedef A10 member_type10; A10 a10; typedef A11 member_type11; A11 a11; typedef A12 member_type12; A12 a12;
  416. typedef mpl::int_<13> size_type;
  417. static const int size_value = 13;
  418. typedef
  419. vector12<A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
  420. args_type;
  421. args_type args() const
  422. {
  423. args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12};
  424. return r;
  425. }
  426. };
  427. template <>
  428. struct vector_chooser<13>
  429. {
  430. 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>
  431. struct apply
  432. {
  433. typedef vector13<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12> type;
  434. };
  435. };
  436. }}
  437. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  438. (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12)
  439. , ( boost::phoenix::vector13 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12)
  440. , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7) (A8, a8) (A9, a9) (A10, a10) (A11, a11) (A12, a12)
  441. )
  442. namespace boost { namespace phoenix
  443. {
  444. 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>
  445. struct vector14
  446. {
  447. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7; typedef A8 member_type8; A8 a8; typedef A9 member_type9; A9 a9; typedef A10 member_type10; A10 a10; typedef A11 member_type11; A11 a11; typedef A12 member_type12; A12 a12; typedef A13 member_type13; A13 a13;
  448. typedef mpl::int_<14> size_type;
  449. static const int size_value = 14;
  450. typedef
  451. vector13<A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
  452. args_type;
  453. args_type args() const
  454. {
  455. args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13};
  456. return r;
  457. }
  458. };
  459. template <>
  460. struct vector_chooser<14>
  461. {
  462. 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>
  463. struct apply
  464. {
  465. typedef vector14<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13> type;
  466. };
  467. };
  468. }}
  469. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  470. (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12) (A13)
  471. , ( boost::phoenix::vector14 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12) (A13)
  472. , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7) (A8, a8) (A9, a9) (A10, a10) (A11, a11) (A12, a12) (A13, a13)
  473. )
  474. namespace boost { namespace phoenix
  475. {
  476. 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>
  477. struct vector15
  478. {
  479. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7; typedef A8 member_type8; A8 a8; typedef A9 member_type9; A9 a9; typedef A10 member_type10; A10 a10; typedef A11 member_type11; A11 a11; typedef A12 member_type12; A12 a12; typedef A13 member_type13; A13 a13; typedef A14 member_type14; A14 a14;
  480. typedef mpl::int_<15> size_type;
  481. static const int size_value = 15;
  482. typedef
  483. vector14<A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
  484. args_type;
  485. args_type args() const
  486. {
  487. args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14};
  488. return r;
  489. }
  490. };
  491. template <>
  492. struct vector_chooser<15>
  493. {
  494. 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>
  495. struct apply
  496. {
  497. typedef vector15<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14> type;
  498. };
  499. };
  500. }}
  501. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  502. (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12) (A13) (A14)
  503. , ( boost::phoenix::vector15 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12) (A13) (A14)
  504. , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7) (A8, a8) (A9, a9) (A10, a10) (A11, a11) (A12, a12) (A13, a13) (A14, a14)
  505. )
  506. namespace boost { namespace phoenix
  507. {
  508. 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>
  509. struct vector16
  510. {
  511. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7; typedef A8 member_type8; A8 a8; typedef A9 member_type9; A9 a9; typedef A10 member_type10; A10 a10; typedef A11 member_type11; A11 a11; typedef A12 member_type12; A12 a12; typedef A13 member_type13; A13 a13; typedef A14 member_type14; A14 a14; typedef A15 member_type15; A15 a15;
  512. typedef mpl::int_<16> size_type;
  513. static const int size_value = 16;
  514. typedef
  515. vector15<A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
  516. args_type;
  517. args_type args() const
  518. {
  519. args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15};
  520. return r;
  521. }
  522. };
  523. template <>
  524. struct vector_chooser<16>
  525. {
  526. 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>
  527. struct apply
  528. {
  529. typedef vector16<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15> type;
  530. };
  531. };
  532. }}
  533. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  534. (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12) (A13) (A14) (A15)
  535. , ( boost::phoenix::vector16 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12) (A13) (A14) (A15)
  536. , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7) (A8, a8) (A9, a9) (A10, a10) (A11, a11) (A12, a12) (A13, a13) (A14, a14) (A15, a15)
  537. )
  538. namespace boost { namespace phoenix
  539. {
  540. 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>
  541. struct vector17
  542. {
  543. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7; typedef A8 member_type8; A8 a8; typedef A9 member_type9; A9 a9; typedef A10 member_type10; A10 a10; typedef A11 member_type11; A11 a11; typedef A12 member_type12; A12 a12; typedef A13 member_type13; A13 a13; typedef A14 member_type14; A14 a14; typedef A15 member_type15; A15 a15; typedef A16 member_type16; A16 a16;
  544. typedef mpl::int_<17> size_type;
  545. static const int size_value = 17;
  546. typedef
  547. vector16<A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
  548. args_type;
  549. args_type args() const
  550. {
  551. args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16};
  552. return r;
  553. }
  554. };
  555. template <>
  556. struct vector_chooser<17>
  557. {
  558. 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>
  559. struct apply
  560. {
  561. typedef vector17<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16> type;
  562. };
  563. };
  564. }}
  565. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  566. (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12) (A13) (A14) (A15) (A16)
  567. , ( boost::phoenix::vector17 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12) (A13) (A14) (A15) (A16)
  568. , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7) (A8, a8) (A9, a9) (A10, a10) (A11, a11) (A12, a12) (A13, a13) (A14, a14) (A15, a15) (A16, a16)
  569. )
  570. namespace boost { namespace phoenix
  571. {
  572. 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>
  573. struct vector18
  574. {
  575. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7; typedef A8 member_type8; A8 a8; typedef A9 member_type9; A9 a9; typedef A10 member_type10; A10 a10; typedef A11 member_type11; A11 a11; typedef A12 member_type12; A12 a12; typedef A13 member_type13; A13 a13; typedef A14 member_type14; A14 a14; typedef A15 member_type15; A15 a15; typedef A16 member_type16; A16 a16; typedef A17 member_type17; A17 a17;
  576. typedef mpl::int_<18> size_type;
  577. static const int size_value = 18;
  578. typedef
  579. vector17<A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
  580. args_type;
  581. args_type args() const
  582. {
  583. args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17};
  584. return r;
  585. }
  586. };
  587. template <>
  588. struct vector_chooser<18>
  589. {
  590. 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>
  591. struct apply
  592. {
  593. typedef vector18<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17> type;
  594. };
  595. };
  596. }}
  597. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  598. (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12) (A13) (A14) (A15) (A16) (A17)
  599. , ( boost::phoenix::vector18 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12) (A13) (A14) (A15) (A16) (A17)
  600. , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7) (A8, a8) (A9, a9) (A10, a10) (A11, a11) (A12, a12) (A13, a13) (A14, a14) (A15, a15) (A16, a16) (A17, a17)
  601. )
  602. namespace boost { namespace phoenix
  603. {
  604. 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>
  605. struct vector19
  606. {
  607. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7; typedef A8 member_type8; A8 a8; typedef A9 member_type9; A9 a9; typedef A10 member_type10; A10 a10; typedef A11 member_type11; A11 a11; typedef A12 member_type12; A12 a12; typedef A13 member_type13; A13 a13; typedef A14 member_type14; A14 a14; typedef A15 member_type15; A15 a15; typedef A16 member_type16; A16 a16; typedef A17 member_type17; A17 a17; typedef A18 member_type18; A18 a18;
  608. typedef mpl::int_<19> size_type;
  609. static const int size_value = 19;
  610. typedef
  611. vector18<A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
  612. args_type;
  613. args_type args() const
  614. {
  615. args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18};
  616. return r;
  617. }
  618. };
  619. template <>
  620. struct vector_chooser<19>
  621. {
  622. 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>
  623. struct apply
  624. {
  625. typedef vector19<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18> type;
  626. };
  627. };
  628. }}
  629. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  630. (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12) (A13) (A14) (A15) (A16) (A17) (A18)
  631. , ( boost::phoenix::vector19 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12) (A13) (A14) (A15) (A16) (A17) (A18)
  632. , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7) (A8, a8) (A9, a9) (A10, a10) (A11, a11) (A12, a12) (A13, a13) (A14, a14) (A15, a15) (A16, a16) (A17, a17) (A18, a18)
  633. )
  634. namespace boost { namespace phoenix
  635. {
  636. 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>
  637. struct vector20
  638. {
  639. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7; typedef A8 member_type8; A8 a8; typedef A9 member_type9; A9 a9; typedef A10 member_type10; A10 a10; typedef A11 member_type11; A11 a11; typedef A12 member_type12; A12 a12; typedef A13 member_type13; A13 a13; typedef A14 member_type14; A14 a14; typedef A15 member_type15; A15 a15; typedef A16 member_type16; A16 a16; typedef A17 member_type17; A17 a17; typedef A18 member_type18; A18 a18; typedef A19 member_type19; A19 a19;
  640. typedef mpl::int_<20> size_type;
  641. static const int size_value = 20;
  642. typedef
  643. vector19<A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
  644. args_type;
  645. args_type args() const
  646. {
  647. args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19};
  648. return r;
  649. }
  650. };
  651. template <>
  652. struct vector_chooser<20>
  653. {
  654. 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>
  655. struct apply
  656. {
  657. typedef vector20<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19> type;
  658. };
  659. };
  660. }}
  661. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  662. (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12) (A13) (A14) (A15) (A16) (A17) (A18) (A19)
  663. , ( boost::phoenix::vector20 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12) (A13) (A14) (A15) (A16) (A17) (A18) (A19)
  664. , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7) (A8, a8) (A9, a9) (A10, a10) (A11, a11) (A12, a12) (A13, a13) (A14, a14) (A15, a15) (A16, a16) (A17, a17) (A18, a18) (A19, a19)
  665. )
  666. namespace boost { namespace phoenix
  667. {
  668. 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 , typename A20>
  669. struct vector21
  670. {
  671. typedef A0 member_type0; A0 a0; typedef A1 member_type1; A1 a1; typedef A2 member_type2; A2 a2; typedef A3 member_type3; A3 a3; typedef A4 member_type4; A4 a4; typedef A5 member_type5; A5 a5; typedef A6 member_type6; A6 a6; typedef A7 member_type7; A7 a7; typedef A8 member_type8; A8 a8; typedef A9 member_type9; A9 a9; typedef A10 member_type10; A10 a10; typedef A11 member_type11; A11 a11; typedef A12 member_type12; A12 a12; typedef A13 member_type13; A13 a13; typedef A14 member_type14; A14 a14; typedef A15 member_type15; A15 a15; typedef A16 member_type16; A16 a16; typedef A17 member_type17; A17 a17; typedef A18 member_type18; A18 a18; typedef A19 member_type19; A19 a19; typedef A20 member_type20; A20 a20;
  672. typedef mpl::int_<21> size_type;
  673. static const int size_value = 21;
  674. typedef
  675. vector20<A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
  676. args_type;
  677. args_type args() const
  678. {
  679. args_type r = {a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20};
  680. return r;
  681. }
  682. };
  683. template <>
  684. struct vector_chooser<21>
  685. {
  686. 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 , typename A20>
  687. struct apply
  688. {
  689. typedef vector21<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20> type;
  690. };
  691. };
  692. }}
  693. BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL(
  694. (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12) (A13) (A14) (A15) (A16) (A17) (A18) (A19) (A20)
  695. , ( boost::phoenix::vector21 ) (A0) (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12) (A13) (A14) (A15) (A16) (A17) (A18) (A19) (A20)
  696. , (A0, a0) (A1, a1) (A2, a2) (A3, a3) (A4, a4) (A5, a5) (A6, a6) (A7, a7) (A8, a8) (A9, a9) (A10, a10) (A11, a11) (A12, a12) (A13, a13) (A14, a14) (A15, a15) (A16, a16) (A17, a17) (A18, a18) (A19, a19) (A20, a20)
  697. )