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