list.hpp 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. // Copyright Aleksey Gurtovoy 2000-2004
  2. //
  3. // Distributed under the Boost Software License, Version 1.0.
  4. // (See accompanying file LICENSE_1_0.txt or copy at
  5. // http://www.boost.org/LICENSE_1_0.txt)
  6. //
  7. // Preprocessed version of "boost/mpl/list.hpp" header
  8. // -- DO NOT modify by hand!
  9. namespace boost { namespace mpl {
  10. template<
  11. typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
  12. , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
  13. , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
  14. , typename T12 = na, typename T13 = na, typename T14 = na
  15. , typename T15 = na, typename T16 = na, typename T17 = na
  16. , typename T18 = na, typename T19 = na
  17. >
  18. struct list;
  19. template<
  20. >
  21. struct list<
  22. na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
  23. , na, na, na
  24. >
  25. : list0< >
  26. {
  27. typedef list0< >::type type;
  28. };
  29. template<
  30. typename T0
  31. >
  32. struct list<
  33. T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
  34. , na, na, na
  35. >
  36. : list1<T0>
  37. {
  38. typedef typename list1<T0>::type type;
  39. };
  40. template<
  41. typename T0, typename T1
  42. >
  43. struct list<
  44. T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
  45. , na, na, na
  46. >
  47. : list2< T0,T1 >
  48. {
  49. typedef typename list2< T0,T1 >::type type;
  50. };
  51. template<
  52. typename T0, typename T1, typename T2
  53. >
  54. struct list<
  55. T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
  56. , na, na, na
  57. >
  58. : list3< T0,T1,T2 >
  59. {
  60. typedef typename list3< T0,T1,T2 >::type type;
  61. };
  62. template<
  63. typename T0, typename T1, typename T2, typename T3
  64. >
  65. struct list<
  66. T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
  67. , na, na, na
  68. >
  69. : list4< T0,T1,T2,T3 >
  70. {
  71. typedef typename list4< T0,T1,T2,T3 >::type type;
  72. };
  73. template<
  74. typename T0, typename T1, typename T2, typename T3, typename T4
  75. >
  76. struct list<
  77. T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
  78. , na, na, na
  79. >
  80. : list5< T0,T1,T2,T3,T4 >
  81. {
  82. typedef typename list5< T0,T1,T2,T3,T4 >::type type;
  83. };
  84. template<
  85. typename T0, typename T1, typename T2, typename T3, typename T4
  86. , typename T5
  87. >
  88. struct list<
  89. T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
  90. , na, na, na
  91. >
  92. : list6< T0,T1,T2,T3,T4,T5 >
  93. {
  94. typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
  95. };
  96. template<
  97. typename T0, typename T1, typename T2, typename T3, typename T4
  98. , typename T5, typename T6
  99. >
  100. struct list<
  101. T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
  102. , na, na, na
  103. >
  104. : list7< T0,T1,T2,T3,T4,T5,T6 >
  105. {
  106. typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
  107. };
  108. template<
  109. typename T0, typename T1, typename T2, typename T3, typename T4
  110. , typename T5, typename T6, typename T7
  111. >
  112. struct list<
  113. T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
  114. , na, na, na
  115. >
  116. : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
  117. {
  118. typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
  119. };
  120. template<
  121. typename T0, typename T1, typename T2, typename T3, typename T4
  122. , typename T5, typename T6, typename T7, typename T8
  123. >
  124. struct list<
  125. T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
  126. , na, na, na
  127. >
  128. : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
  129. {
  130. typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
  131. };
  132. template<
  133. typename T0, typename T1, typename T2, typename T3, typename T4
  134. , typename T5, typename T6, typename T7, typename T8, typename T9
  135. >
  136. struct list<
  137. T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
  138. , na, na, na
  139. >
  140. : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
  141. {
  142. typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
  143. };
  144. template<
  145. typename T0, typename T1, typename T2, typename T3, typename T4
  146. , typename T5, typename T6, typename T7, typename T8, typename T9
  147. , typename T10
  148. >
  149. struct list<
  150. T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
  151. , na, na, na
  152. >
  153. : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
  154. {
  155. typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
  156. };
  157. template<
  158. typename T0, typename T1, typename T2, typename T3, typename T4
  159. , typename T5, typename T6, typename T7, typename T8, typename T9
  160. , typename T10, typename T11
  161. >
  162. struct list<
  163. T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
  164. , na, na, na, na
  165. >
  166. : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
  167. {
  168. typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
  169. };
  170. template<
  171. typename T0, typename T1, typename T2, typename T3, typename T4
  172. , typename T5, typename T6, typename T7, typename T8, typename T9
  173. , typename T10, typename T11, typename T12
  174. >
  175. struct list<
  176. T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
  177. , na, na, na, na
  178. >
  179. : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
  180. {
  181. typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
  182. };
  183. template<
  184. typename T0, typename T1, typename T2, typename T3, typename T4
  185. , typename T5, typename T6, typename T7, typename T8, typename T9
  186. , typename T10, typename T11, typename T12, typename T13
  187. >
  188. struct list<
  189. T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
  190. , na, na, na, na
  191. >
  192. : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
  193. {
  194. typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
  195. };
  196. template<
  197. typename T0, typename T1, typename T2, typename T3, typename T4
  198. , typename T5, typename T6, typename T7, typename T8, typename T9
  199. , typename T10, typename T11, typename T12, typename T13, typename T14
  200. >
  201. struct list<
  202. T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
  203. , na, na, na, na
  204. >
  205. : list15<
  206. T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
  207. >
  208. {
  209. typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
  210. };
  211. template<
  212. typename T0, typename T1, typename T2, typename T3, typename T4
  213. , typename T5, typename T6, typename T7, typename T8, typename T9
  214. , typename T10, typename T11, typename T12, typename T13, typename T14
  215. , typename T15
  216. >
  217. struct list<
  218. T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
  219. , T15, na, na, na, na
  220. >
  221. : list16<
  222. T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
  223. , T15
  224. >
  225. {
  226. typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
  227. };
  228. template<
  229. typename T0, typename T1, typename T2, typename T3, typename T4
  230. , typename T5, typename T6, typename T7, typename T8, typename T9
  231. , typename T10, typename T11, typename T12, typename T13, typename T14
  232. , typename T15, typename T16
  233. >
  234. struct list<
  235. T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
  236. , T15, T16, na, na, na
  237. >
  238. : list17<
  239. T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
  240. , T15, T16
  241. >
  242. {
  243. typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
  244. };
  245. template<
  246. typename T0, typename T1, typename T2, typename T3, typename T4
  247. , typename T5, typename T6, typename T7, typename T8, typename T9
  248. , typename T10, typename T11, typename T12, typename T13, typename T14
  249. , typename T15, typename T16, typename T17
  250. >
  251. struct list<
  252. T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
  253. , T15, T16, T17, na, na
  254. >
  255. : list18<
  256. T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
  257. , T15, T16, T17
  258. >
  259. {
  260. typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
  261. };
  262. template<
  263. typename T0, typename T1, typename T2, typename T3, typename T4
  264. , typename T5, typename T6, typename T7, typename T8, typename T9
  265. , typename T10, typename T11, typename T12, typename T13, typename T14
  266. , typename T15, typename T16, typename T17, typename T18
  267. >
  268. struct list<
  269. T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
  270. , T15, T16, T17, T18, na
  271. >
  272. : list19<
  273. T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
  274. , T15, T16, T17, T18
  275. >
  276. {
  277. typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
  278. };
  279. /// primary template (not a specialization!)
  280. template<
  281. typename T0, typename T1, typename T2, typename T3, typename T4
  282. , typename T5, typename T6, typename T7, typename T8, typename T9
  283. , typename T10, typename T11, typename T12, typename T13, typename T14
  284. , typename T15, typename T16, typename T17, typename T18, typename T19
  285. >
  286. struct list
  287. : list20<
  288. T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
  289. , T15, T16, T17, T18, T19
  290. >
  291. {
  292. typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
  293. };
  294. }}