zip20.hpp 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436
  1. /*=============================================================================
  2. Copyright (c) 2001-2011 Joel de Guzman
  3. Copyright (c) 2006 Dan Marsden
  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. This is an auto-generated file. Do not edit!
  7. ==============================================================================*/
  8. namespace boost { namespace fusion
  9. {
  10. struct void_;
  11. namespace result_of
  12. {
  13. template<typename T0 = fusion::void_ , typename T1 = fusion::void_ , typename T2 = fusion::void_ , typename T3 = fusion::void_ , typename T4 = fusion::void_ , typename T5 = fusion::void_ , typename T6 = fusion::void_ , typename T7 = fusion::void_ , typename T8 = fusion::void_ , typename T9 = fusion::void_ , typename T10 = fusion::void_ , typename T11 = fusion::void_ , typename T12 = fusion::void_ , typename T13 = fusion::void_ , typename T14 = fusion::void_ , typename T15 = fusion::void_ , typename T16 = fusion::void_ , typename T17 = fusion::void_ , typename T18 = fusion::void_ , typename T19 = fusion::void_ , typename T20 = fusion::void_>
  14. struct zip;
  15. }
  16. namespace result_of
  17. {
  18. template< typename T0 , typename T1 >
  19. struct zip< T0 , T1
  20. , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_
  21. >
  22. {
  23. typedef mpl::vector< T0 , T1 > sequences;
  24. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  25. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  26. };
  27. }
  28. template<typename T0 , typename T1>
  29. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  30. inline typename result_of::zip<const T0 , const T1>::type
  31. zip(T0 const& t0 , T1 const& t1)
  32. {
  33. fusion::vector<const T0& , const T1&> seqs(
  34. t0 , t1);
  35. return typename result_of::zip<const T0 , const T1>::type(
  36. seqs);
  37. }
  38. namespace result_of
  39. {
  40. template< typename T0 , typename T1 , typename T2 >
  41. struct zip< T0 , T1 , T2
  42. , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_
  43. >
  44. {
  45. typedef mpl::vector< T0 , T1 , T2 > sequences;
  46. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  47. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  48. };
  49. }
  50. template<typename T0 , typename T1 , typename T2>
  51. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  52. inline typename result_of::zip<const T0 , const T1 , const T2>::type
  53. zip(T0 const& t0 , T1 const& t1 , T2 const& t2)
  54. {
  55. fusion::vector<const T0& , const T1& , const T2&> seqs(
  56. t0 , t1 , t2);
  57. return typename result_of::zip<const T0 , const T1 , const T2>::type(
  58. seqs);
  59. }
  60. namespace result_of
  61. {
  62. template< typename T0 , typename T1 , typename T2 , typename T3 >
  63. struct zip< T0 , T1 , T2 , T3
  64. , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_
  65. >
  66. {
  67. typedef mpl::vector< T0 , T1 , T2 , T3 > sequences;
  68. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  69. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  70. };
  71. }
  72. template<typename T0 , typename T1 , typename T2 , typename T3>
  73. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  74. inline typename result_of::zip<const T0 , const T1 , const T2 , const T3>::type
  75. zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3)
  76. {
  77. fusion::vector<const T0& , const T1& , const T2& , const T3&> seqs(
  78. t0 , t1 , t2 , t3);
  79. return typename result_of::zip<const T0 , const T1 , const T2 , const T3>::type(
  80. seqs);
  81. }
  82. namespace result_of
  83. {
  84. template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
  85. struct zip< T0 , T1 , T2 , T3 , T4
  86. , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_
  87. >
  88. {
  89. typedef mpl::vector< T0 , T1 , T2 , T3 , T4 > sequences;
  90. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  91. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  92. };
  93. }
  94. template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
  95. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  96. inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4>::type
  97. zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4)
  98. {
  99. fusion::vector<const T0& , const T1& , const T2& , const T3& , const T4&> seqs(
  100. t0 , t1 , t2 , t3 , t4);
  101. return typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4>::type(
  102. seqs);
  103. }
  104. namespace result_of
  105. {
  106. template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
  107. struct zip< T0 , T1 , T2 , T3 , T4 , T5
  108. , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_
  109. >
  110. {
  111. typedef mpl::vector< T0 , T1 , T2 , T3 , T4 , T5 > sequences;
  112. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  113. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  114. };
  115. }
  116. template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
  117. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  118. inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5>::type
  119. zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5)
  120. {
  121. fusion::vector<const T0& , const T1& , const T2& , const T3& , const T4& , const T5&> seqs(
  122. t0 , t1 , t2 , t3 , t4 , t5);
  123. return typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5>::type(
  124. seqs);
  125. }
  126. namespace result_of
  127. {
  128. template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
  129. struct zip< T0 , T1 , T2 , T3 , T4 , T5 , T6
  130. , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_
  131. >
  132. {
  133. typedef mpl::vector< T0 , T1 , T2 , T3 , T4 , T5 , T6 > sequences;
  134. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  135. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  136. };
  137. }
  138. template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
  139. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  140. inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6>::type
  141. zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6)
  142. {
  143. fusion::vector<const T0& , const T1& , const T2& , const T3& , const T4& , const T5& , const T6&> seqs(
  144. t0 , t1 , t2 , t3 , t4 , t5 , t6);
  145. return typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6>::type(
  146. seqs);
  147. }
  148. namespace result_of
  149. {
  150. template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
  151. struct zip< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7
  152. , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_
  153. >
  154. {
  155. typedef mpl::vector< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 > sequences;
  156. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  157. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  158. };
  159. }
  160. template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
  161. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  162. inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7>::type
  163. zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7)
  164. {
  165. fusion::vector<const T0& , const T1& , const T2& , const T3& , const T4& , const T5& , const T6& , const T7&> seqs(
  166. t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7);
  167. return typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7>::type(
  168. seqs);
  169. }
  170. namespace result_of
  171. {
  172. template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
  173. struct zip< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
  174. , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_
  175. >
  176. {
  177. typedef mpl::vector< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 > sequences;
  178. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  179. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  180. };
  181. }
  182. template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
  183. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  184. inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8>::type
  185. zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8)
  186. {
  187. fusion::vector<const T0& , const T1& , const T2& , const T3& , const T4& , const T5& , const T6& , const T7& , const T8&> seqs(
  188. t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8);
  189. return typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8>::type(
  190. seqs);
  191. }
  192. namespace result_of
  193. {
  194. template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
  195. struct zip< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
  196. , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_
  197. >
  198. {
  199. typedef mpl::vector< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 > sequences;
  200. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  201. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  202. };
  203. }
  204. template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
  205. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  206. inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9>::type
  207. zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9)
  208. {
  209. fusion::vector<const T0& , const T1& , const T2& , const T3& , const T4& , const T5& , const T6& , const T7& , const T8& , const T9&> seqs(
  210. t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9);
  211. return typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9>::type(
  212. seqs);
  213. }
  214. namespace result_of
  215. {
  216. template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
  217. struct zip< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10
  218. , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_
  219. >
  220. {
  221. typedef mpl::vector< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 > sequences;
  222. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  223. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  224. };
  225. }
  226. template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
  227. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  228. inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10>::type
  229. zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10)
  230. {
  231. fusion::vector<const T0& , const T1& , const T2& , const T3& , const T4& , const T5& , const T6& , const T7& , const T8& , const T9& , const T10&> seqs(
  232. t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10);
  233. return typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10>::type(
  234. seqs);
  235. }
  236. namespace result_of
  237. {
  238. template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
  239. struct zip< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11
  240. , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_
  241. >
  242. {
  243. typedef mpl::vector< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 > sequences;
  244. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  245. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  246. };
  247. }
  248. template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
  249. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  250. inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11>::type
  251. zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11)
  252. {
  253. fusion::vector<const T0& , const T1& , const T2& , const T3& , const T4& , const T5& , const T6& , const T7& , const T8& , const T9& , const T10& , const T11&> seqs(
  254. t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11);
  255. return typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11>::type(
  256. seqs);
  257. }
  258. namespace result_of
  259. {
  260. template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
  261. struct zip< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12
  262. , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_
  263. >
  264. {
  265. typedef mpl::vector< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 > sequences;
  266. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  267. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  268. };
  269. }
  270. template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12>
  271. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  272. inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12>::type
  273. zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12)
  274. {
  275. fusion::vector<const T0& , const T1& , const T2& , const T3& , const T4& , const T5& , const T6& , const T7& , const T8& , const T9& , const T10& , const T11& , const T12&> seqs(
  276. t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12);
  277. return typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12>::type(
  278. seqs);
  279. }
  280. namespace result_of
  281. {
  282. template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
  283. struct zip< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13
  284. , void_ , void_ , void_ , void_ , void_ , void_ , void_
  285. >
  286. {
  287. typedef mpl::vector< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 > sequences;
  288. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  289. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  290. };
  291. }
  292. template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13>
  293. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  294. inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13>::type
  295. zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13)
  296. {
  297. fusion::vector<const T0& , const T1& , const T2& , const T3& , const T4& , const T5& , const T6& , const T7& , const T8& , const T9& , const T10& , const T11& , const T12& , const T13&> seqs(
  298. t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13);
  299. return typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13>::type(
  300. seqs);
  301. }
  302. namespace result_of
  303. {
  304. template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
  305. struct zip< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14
  306. , void_ , void_ , void_ , void_ , void_ , void_
  307. >
  308. {
  309. typedef mpl::vector< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 > sequences;
  310. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  311. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  312. };
  313. }
  314. template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14>
  315. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  316. inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14>::type
  317. zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14)
  318. {
  319. fusion::vector<const T0& , const T1& , const T2& , const T3& , const T4& , const T5& , const T6& , const T7& , const T8& , const T9& , const T10& , const T11& , const T12& , const T13& , const T14&> seqs(
  320. t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14);
  321. return typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14>::type(
  322. seqs);
  323. }
  324. namespace result_of
  325. {
  326. template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
  327. struct zip< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15
  328. , void_ , void_ , void_ , void_ , void_
  329. >
  330. {
  331. typedef mpl::vector< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 > sequences;
  332. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  333. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  334. };
  335. }
  336. template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15>
  337. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  338. inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15>::type
  339. zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15)
  340. {
  341. fusion::vector<const T0& , const T1& , const T2& , const T3& , const T4& , const T5& , const T6& , const T7& , const T8& , const T9& , const T10& , const T11& , const T12& , const T13& , const T14& , const T15&> seqs(
  342. t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15);
  343. return typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15>::type(
  344. seqs);
  345. }
  346. namespace result_of
  347. {
  348. template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
  349. struct zip< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16
  350. , void_ , void_ , void_ , void_
  351. >
  352. {
  353. typedef mpl::vector< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 > sequences;
  354. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  355. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  356. };
  357. }
  358. template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16>
  359. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  360. inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16>::type
  361. zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16)
  362. {
  363. fusion::vector<const T0& , const T1& , const T2& , const T3& , const T4& , const T5& , const T6& , const T7& , const T8& , const T9& , const T10& , const T11& , const T12& , const T13& , const T14& , const T15& , const T16&> seqs(
  364. t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16);
  365. return typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16>::type(
  366. seqs);
  367. }
  368. namespace result_of
  369. {
  370. template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
  371. struct zip< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17
  372. , void_ , void_ , void_
  373. >
  374. {
  375. typedef mpl::vector< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 > sequences;
  376. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  377. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  378. };
  379. }
  380. template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17>
  381. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  382. inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17>::type
  383. zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17)
  384. {
  385. fusion::vector<const T0& , const T1& , const T2& , const T3& , const T4& , const T5& , const T6& , const T7& , const T8& , const T9& , const T10& , const T11& , const T12& , const T13& , const T14& , const T15& , const T16& , const T17&> seqs(
  386. t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17);
  387. return typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17>::type(
  388. seqs);
  389. }
  390. namespace result_of
  391. {
  392. template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
  393. struct zip< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18
  394. , void_ , void_
  395. >
  396. {
  397. typedef mpl::vector< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 > sequences;
  398. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  399. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  400. };
  401. }
  402. template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18>
  403. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  404. inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18>::type
  405. zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18)
  406. {
  407. fusion::vector<const T0& , const T1& , const T2& , const T3& , const T4& , const T5& , const T6& , const T7& , const T8& , const T9& , const T10& , const T11& , const T12& , const T13& , const T14& , const T15& , const T16& , const T17& , const T18&> seqs(
  408. t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18);
  409. return typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18>::type(
  410. seqs);
  411. }
  412. namespace result_of
  413. {
  414. template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
  415. struct zip< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19
  416. , void_
  417. >
  418. {
  419. typedef mpl::vector< T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 > sequences;
  420. typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
  421. typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
  422. };
  423. }
  424. template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
  425. BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
  426. inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19>::type
  427. zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19)
  428. {
  429. fusion::vector<const T0& , const T1& , const T2& , const T3& , const T4& , const T5& , const T6& , const T7& , const T8& , const T9& , const T10& , const T11& , const T12& , const T13& , const T14& , const T15& , const T16& , const T17& , const T18& , const T19&> seqs(
  430. t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19);
  431. return typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19>::type(
  432. seqs);
  433. }
  434. }}