vector_c.hpp 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. // Copyright Aleksey Gurtovoy 2000-2008
  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 the main "vector_c.hpp" header
  8. // -- DO NOT modify by hand!
  9. namespace boost { namespace mpl {
  10. template<
  11. typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
  12. , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
  13. , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
  14. , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
  15. , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
  16. , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
  17. , long C18 = LONG_MAX, long C19 = LONG_MAX
  18. >
  19. struct vector_c;
  20. template<
  21. typename T
  22. >
  23. struct vector_c<
  24. T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  25. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  26. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  27. >
  28. : vector0_c<T>
  29. {
  30. typedef typename vector0_c<T>::type type;
  31. };
  32. template<
  33. typename T, long C0
  34. >
  35. struct vector_c<
  36. T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  37. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  38. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  39. >
  40. : vector1_c< T, T(C0) >
  41. {
  42. typedef typename vector1_c< T, T(C0) >::type type;
  43. };
  44. template<
  45. typename T, long C0, long C1
  46. >
  47. struct vector_c<
  48. T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  49. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  50. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  51. >
  52. : vector2_c< T, T(C0), T(C1) >
  53. {
  54. typedef typename vector2_c< T, T(C0), T(C1) >::type type;
  55. };
  56. template<
  57. typename T, long C0, long C1, long C2
  58. >
  59. struct vector_c<
  60. T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  61. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  62. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  63. >
  64. : vector3_c< T, T(C0), T(C1), T(C2) >
  65. {
  66. typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
  67. };
  68. template<
  69. typename T, long C0, long C1, long C2, long C3
  70. >
  71. struct vector_c<
  72. T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  73. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  74. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  75. >
  76. : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
  77. {
  78. typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
  79. };
  80. template<
  81. typename T, long C0, long C1, long C2, long C3, long C4
  82. >
  83. struct vector_c<
  84. T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  85. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  86. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  87. >
  88. : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
  89. {
  90. typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
  91. };
  92. template<
  93. typename T, long C0, long C1, long C2, long C3, long C4, long C5
  94. >
  95. struct vector_c<
  96. T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  97. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  98. , LONG_MAX, LONG_MAX, LONG_MAX
  99. >
  100. : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
  101. {
  102. typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
  103. };
  104. template<
  105. typename T, long C0, long C1, long C2, long C3, long C4, long C5
  106. , long C6
  107. >
  108. struct vector_c<
  109. T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
  110. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  111. , LONG_MAX, LONG_MAX, LONG_MAX
  112. >
  113. : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
  114. {
  115. typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
  116. };
  117. template<
  118. typename T, long C0, long C1, long C2, long C3, long C4, long C5
  119. , long C6, long C7
  120. >
  121. struct vector_c<
  122. T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
  123. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  124. , LONG_MAX, LONG_MAX
  125. >
  126. : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
  127. {
  128. typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
  129. };
  130. template<
  131. typename T, long C0, long C1, long C2, long C3, long C4, long C5
  132. , long C6, long C7, long C8
  133. >
  134. struct vector_c<
  135. T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
  136. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  137. , LONG_MAX
  138. >
  139. : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
  140. {
  141. typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
  142. };
  143. template<
  144. typename T, long C0, long C1, long C2, long C3, long C4, long C5
  145. , long C6, long C7, long C8, long C9
  146. >
  147. struct vector_c<
  148. T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
  149. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  150. , LONG_MAX
  151. >
  152. : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
  153. {
  154. typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
  155. };
  156. template<
  157. typename T, long C0, long C1, long C2, long C3, long C4, long C5
  158. , long C6, long C7, long C8, long C9, long C10
  159. >
  160. struct vector_c<
  161. T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
  162. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  163. >
  164. : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
  165. {
  166. typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
  167. };
  168. template<
  169. typename T, long C0, long C1, long C2, long C3, long C4, long C5
  170. , long C6, long C7, long C8, long C9, long C10, long C11
  171. >
  172. struct vector_c<
  173. T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
  174. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  175. >
  176. : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
  177. {
  178. typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
  179. };
  180. template<
  181. typename T, long C0, long C1, long C2, long C3, long C4, long C5
  182. , long C6, long C7, long C8, long C9, long C10, long C11, long C12
  183. >
  184. struct vector_c<
  185. T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
  186. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  187. >
  188. : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
  189. {
  190. typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
  191. };
  192. template<
  193. typename T, long C0, long C1, long C2, long C3, long C4, long C5
  194. , long C6, long C7, long C8, long C9, long C10, long C11, long C12
  195. , long C13
  196. >
  197. struct vector_c<
  198. T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
  199. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  200. >
  201. : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
  202. {
  203. typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
  204. };
  205. template<
  206. typename T, long C0, long C1, long C2, long C3, long C4, long C5
  207. , long C6, long C7, long C8, long C9, long C10, long C11, long C12
  208. , long C13, long C14
  209. >
  210. struct vector_c<
  211. T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
  212. , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  213. >
  214. : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
  215. {
  216. typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
  217. };
  218. template<
  219. typename T, long C0, long C1, long C2, long C3, long C4, long C5
  220. , long C6, long C7, long C8, long C9, long C10, long C11, long C12
  221. , long C13, long C14, long C15
  222. >
  223. struct vector_c<
  224. T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
  225. , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
  226. >
  227. : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
  228. {
  229. typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
  230. };
  231. template<
  232. typename T, long C0, long C1, long C2, long C3, long C4, long C5
  233. , long C6, long C7, long C8, long C9, long C10, long C11, long C12
  234. , long C13, long C14, long C15, long C16
  235. >
  236. struct vector_c<
  237. T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
  238. , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
  239. >
  240. : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
  241. {
  242. typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
  243. };
  244. template<
  245. typename T, long C0, long C1, long C2, long C3, long C4, long C5
  246. , long C6, long C7, long C8, long C9, long C10, long C11, long C12
  247. , long C13, long C14, long C15, long C16, long C17
  248. >
  249. struct vector_c<
  250. T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
  251. , C15, C16, C17, LONG_MAX, LONG_MAX
  252. >
  253. : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
  254. {
  255. typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
  256. };
  257. template<
  258. typename T, long C0, long C1, long C2, long C3, long C4, long C5
  259. , long C6, long C7, long C8, long C9, long C10, long C11, long C12
  260. , long C13, long C14, long C15, long C16, long C17, long C18
  261. >
  262. struct vector_c<
  263. T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
  264. , C15, C16, C17, C18, LONG_MAX
  265. >
  266. : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
  267. {
  268. typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
  269. };
  270. /// primary template (not a specialization!)
  271. template<
  272. typename T, long C0, long C1, long C2, long C3, long C4, long C5
  273. , long C6, long C7, long C8, long C9, long C10, long C11, long C12
  274. , long C13, long C14, long C15, long C16, long C17, long C18, long C19
  275. >
  276. struct vector_c
  277. : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
  278. {
  279. typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
  280. };
  281. }}