as_vector10.hpp 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. /*=============================================================================
  2. Copyright (c) 2001-2011 Joel de Guzman
  3. Distributed under the Boost Software License, Version 1.0. (See accompanying
  4. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  5. This is an auto-generated file. Do not edit!
  6. ==============================================================================*/
  7. namespace boost { namespace fusion { namespace detail
  8. {
  9. BOOST_FUSION_BARRIER_BEGIN
  10. template <>
  11. struct as_vector<1>
  12. {
  13. template <typename I0>
  14. struct apply
  15. {
  16. typedef typename fusion::result_of::next<I0>::type I1;
  17. typedef typename fusion::result_of::value_of<I0>::type T0;
  18. typedef vector1<T0> type;
  19. };
  20. template <typename Iterator>
  21. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  22. static typename apply<Iterator>::type
  23. call(Iterator const& i0)
  24. {
  25. typedef apply<Iterator> gen;
  26. typedef typename gen::type result;
  27. return result(*i0);
  28. }
  29. };
  30. template <>
  31. struct as_vector<2>
  32. {
  33. template <typename I0>
  34. struct apply
  35. {
  36. typedef typename fusion::result_of::next<I0>::type I1; typedef typename fusion::result_of::next<I1>::type I2;
  37. typedef typename fusion::result_of::value_of<I0>::type T0; typedef typename fusion::result_of::value_of<I1>::type T1;
  38. typedef vector2<T0 , T1> type;
  39. };
  40. template <typename Iterator>
  41. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  42. static typename apply<Iterator>::type
  43. call(Iterator const& i0)
  44. {
  45. typedef apply<Iterator> gen;
  46. typedef typename gen::type result;
  47. typename gen::I1 i1 = fusion::next(i0);
  48. return result(*i0 , *i1);
  49. }
  50. };
  51. template <>
  52. struct as_vector<3>
  53. {
  54. template <typename I0>
  55. struct apply
  56. {
  57. typedef typename fusion::result_of::next<I0>::type I1; typedef typename fusion::result_of::next<I1>::type I2; typedef typename fusion::result_of::next<I2>::type I3;
  58. typedef typename fusion::result_of::value_of<I0>::type T0; typedef typename fusion::result_of::value_of<I1>::type T1; typedef typename fusion::result_of::value_of<I2>::type T2;
  59. typedef vector3<T0 , T1 , T2> type;
  60. };
  61. template <typename Iterator>
  62. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  63. static typename apply<Iterator>::type
  64. call(Iterator const& i0)
  65. {
  66. typedef apply<Iterator> gen;
  67. typedef typename gen::type result;
  68. typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1);
  69. return result(*i0 , *i1 , *i2);
  70. }
  71. };
  72. template <>
  73. struct as_vector<4>
  74. {
  75. template <typename I0>
  76. struct apply
  77. {
  78. typedef typename fusion::result_of::next<I0>::type I1; typedef typename fusion::result_of::next<I1>::type I2; typedef typename fusion::result_of::next<I2>::type I3; typedef typename fusion::result_of::next<I3>::type I4;
  79. typedef typename fusion::result_of::value_of<I0>::type T0; typedef typename fusion::result_of::value_of<I1>::type T1; typedef typename fusion::result_of::value_of<I2>::type T2; typedef typename fusion::result_of::value_of<I3>::type T3;
  80. typedef vector4<T0 , T1 , T2 , T3> type;
  81. };
  82. template <typename Iterator>
  83. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  84. static typename apply<Iterator>::type
  85. call(Iterator const& i0)
  86. {
  87. typedef apply<Iterator> gen;
  88. typedef typename gen::type result;
  89. typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2);
  90. return result(*i0 , *i1 , *i2 , *i3);
  91. }
  92. };
  93. template <>
  94. struct as_vector<5>
  95. {
  96. template <typename I0>
  97. struct apply
  98. {
  99. typedef typename fusion::result_of::next<I0>::type I1; typedef typename fusion::result_of::next<I1>::type I2; typedef typename fusion::result_of::next<I2>::type I3; typedef typename fusion::result_of::next<I3>::type I4; typedef typename fusion::result_of::next<I4>::type I5;
  100. typedef typename fusion::result_of::value_of<I0>::type T0; typedef typename fusion::result_of::value_of<I1>::type T1; typedef typename fusion::result_of::value_of<I2>::type T2; typedef typename fusion::result_of::value_of<I3>::type T3; typedef typename fusion::result_of::value_of<I4>::type T4;
  101. typedef vector5<T0 , T1 , T2 , T3 , T4> type;
  102. };
  103. template <typename Iterator>
  104. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  105. static typename apply<Iterator>::type
  106. call(Iterator const& i0)
  107. {
  108. typedef apply<Iterator> gen;
  109. typedef typename gen::type result;
  110. typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3);
  111. return result(*i0 , *i1 , *i2 , *i3 , *i4);
  112. }
  113. };
  114. template <>
  115. struct as_vector<6>
  116. {
  117. template <typename I0>
  118. struct apply
  119. {
  120. typedef typename fusion::result_of::next<I0>::type I1; typedef typename fusion::result_of::next<I1>::type I2; typedef typename fusion::result_of::next<I2>::type I3; typedef typename fusion::result_of::next<I3>::type I4; typedef typename fusion::result_of::next<I4>::type I5; typedef typename fusion::result_of::next<I5>::type I6;
  121. typedef typename fusion::result_of::value_of<I0>::type T0; typedef typename fusion::result_of::value_of<I1>::type T1; typedef typename fusion::result_of::value_of<I2>::type T2; typedef typename fusion::result_of::value_of<I3>::type T3; typedef typename fusion::result_of::value_of<I4>::type T4; typedef typename fusion::result_of::value_of<I5>::type T5;
  122. typedef vector6<T0 , T1 , T2 , T3 , T4 , T5> type;
  123. };
  124. template <typename Iterator>
  125. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  126. static typename apply<Iterator>::type
  127. call(Iterator const& i0)
  128. {
  129. typedef apply<Iterator> gen;
  130. typedef typename gen::type result;
  131. typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4);
  132. return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5);
  133. }
  134. };
  135. template <>
  136. struct as_vector<7>
  137. {
  138. template <typename I0>
  139. struct apply
  140. {
  141. typedef typename fusion::result_of::next<I0>::type I1; typedef typename fusion::result_of::next<I1>::type I2; typedef typename fusion::result_of::next<I2>::type I3; typedef typename fusion::result_of::next<I3>::type I4; typedef typename fusion::result_of::next<I4>::type I5; typedef typename fusion::result_of::next<I5>::type I6; typedef typename fusion::result_of::next<I6>::type I7;
  142. typedef typename fusion::result_of::value_of<I0>::type T0; typedef typename fusion::result_of::value_of<I1>::type T1; typedef typename fusion::result_of::value_of<I2>::type T2; typedef typename fusion::result_of::value_of<I3>::type T3; typedef typename fusion::result_of::value_of<I4>::type T4; typedef typename fusion::result_of::value_of<I5>::type T5; typedef typename fusion::result_of::value_of<I6>::type T6;
  143. typedef vector7<T0 , T1 , T2 , T3 , T4 , T5 , T6> type;
  144. };
  145. template <typename Iterator>
  146. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  147. static typename apply<Iterator>::type
  148. call(Iterator const& i0)
  149. {
  150. typedef apply<Iterator> gen;
  151. typedef typename gen::type result;
  152. typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5);
  153. return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6);
  154. }
  155. };
  156. template <>
  157. struct as_vector<8>
  158. {
  159. template <typename I0>
  160. struct apply
  161. {
  162. typedef typename fusion::result_of::next<I0>::type I1; typedef typename fusion::result_of::next<I1>::type I2; typedef typename fusion::result_of::next<I2>::type I3; typedef typename fusion::result_of::next<I3>::type I4; typedef typename fusion::result_of::next<I4>::type I5; typedef typename fusion::result_of::next<I5>::type I6; typedef typename fusion::result_of::next<I6>::type I7; typedef typename fusion::result_of::next<I7>::type I8;
  163. typedef typename fusion::result_of::value_of<I0>::type T0; typedef typename fusion::result_of::value_of<I1>::type T1; typedef typename fusion::result_of::value_of<I2>::type T2; typedef typename fusion::result_of::value_of<I3>::type T3; typedef typename fusion::result_of::value_of<I4>::type T4; typedef typename fusion::result_of::value_of<I5>::type T5; typedef typename fusion::result_of::value_of<I6>::type T6; typedef typename fusion::result_of::value_of<I7>::type T7;
  164. typedef vector8<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> type;
  165. };
  166. template <typename Iterator>
  167. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  168. static typename apply<Iterator>::type
  169. call(Iterator const& i0)
  170. {
  171. typedef apply<Iterator> gen;
  172. typedef typename gen::type result;
  173. typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6);
  174. return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7);
  175. }
  176. };
  177. template <>
  178. struct as_vector<9>
  179. {
  180. template <typename I0>
  181. struct apply
  182. {
  183. typedef typename fusion::result_of::next<I0>::type I1; typedef typename fusion::result_of::next<I1>::type I2; typedef typename fusion::result_of::next<I2>::type I3; typedef typename fusion::result_of::next<I3>::type I4; typedef typename fusion::result_of::next<I4>::type I5; typedef typename fusion::result_of::next<I5>::type I6; typedef typename fusion::result_of::next<I6>::type I7; typedef typename fusion::result_of::next<I7>::type I8; typedef typename fusion::result_of::next<I8>::type I9;
  184. typedef typename fusion::result_of::value_of<I0>::type T0; typedef typename fusion::result_of::value_of<I1>::type T1; typedef typename fusion::result_of::value_of<I2>::type T2; typedef typename fusion::result_of::value_of<I3>::type T3; typedef typename fusion::result_of::value_of<I4>::type T4; typedef typename fusion::result_of::value_of<I5>::type T5; typedef typename fusion::result_of::value_of<I6>::type T6; typedef typename fusion::result_of::value_of<I7>::type T7; typedef typename fusion::result_of::value_of<I8>::type T8;
  185. typedef vector9<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> type;
  186. };
  187. template <typename Iterator>
  188. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  189. static typename apply<Iterator>::type
  190. call(Iterator const& i0)
  191. {
  192. typedef apply<Iterator> gen;
  193. typedef typename gen::type result;
  194. typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7);
  195. return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8);
  196. }
  197. };
  198. template <>
  199. struct as_vector<10>
  200. {
  201. template <typename I0>
  202. struct apply
  203. {
  204. typedef typename fusion::result_of::next<I0>::type I1; typedef typename fusion::result_of::next<I1>::type I2; typedef typename fusion::result_of::next<I2>::type I3; typedef typename fusion::result_of::next<I3>::type I4; typedef typename fusion::result_of::next<I4>::type I5; typedef typename fusion::result_of::next<I5>::type I6; typedef typename fusion::result_of::next<I6>::type I7; typedef typename fusion::result_of::next<I7>::type I8; typedef typename fusion::result_of::next<I8>::type I9; typedef typename fusion::result_of::next<I9>::type I10;
  205. typedef typename fusion::result_of::value_of<I0>::type T0; typedef typename fusion::result_of::value_of<I1>::type T1; typedef typename fusion::result_of::value_of<I2>::type T2; typedef typename fusion::result_of::value_of<I3>::type T3; typedef typename fusion::result_of::value_of<I4>::type T4; typedef typename fusion::result_of::value_of<I5>::type T5; typedef typename fusion::result_of::value_of<I6>::type T6; typedef typename fusion::result_of::value_of<I7>::type T7; typedef typename fusion::result_of::value_of<I8>::type T8; typedef typename fusion::result_of::value_of<I9>::type T9;
  206. typedef vector10<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> type;
  207. };
  208. template <typename Iterator>
  209. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  210. static typename apply<Iterator>::type
  211. call(Iterator const& i0)
  212. {
  213. typedef apply<Iterator> gen;
  214. typedef typename gen::type result;
  215. typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8);
  216. return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9);
  217. }
  218. };
  219. BOOST_FUSION_BARRIER_END
  220. }}}