1 /*=============================================================================
2 Copyright (c) 2001-2011 Joel de Guzman
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)
7 This is an auto-generated file. Do not edit!
8 ==============================================================================*/
9 namespace boost { namespace fusion
11 template <typename T0>
17 typename detail::call_param<T0 >::type _0)
20 vector_data1 const& other)
23 operator=(vector_data1 const& vec)
28 template <typename Sequence>
30 init_from_sequence(Sequence const& seq)
32 typedef typename result_of::begin<Sequence const>::type I0;
33 I0 i0 = fusion::begin(seq);
35 return vector_data1(*i0);
37 template <typename Sequence>
39 init_from_sequence(Sequence& seq)
41 typedef typename result_of::begin<Sequence>::type I0;
42 I0 i0 = fusion::begin(seq);
44 return vector_data1(*i0);
48 template <typename T0>
51 , sequence_base<vector1<T0> >
53 typedef vector1<T0> this_type;
54 typedef vector_data1<T0> base_type;
55 typedef mpl::vector1<T0> types;
56 typedef vector_tag fusion_tag;
57 typedef fusion_sequence_tag tag;
58 typedef mpl::false_ is_view;
59 typedef random_access_traversal_tag category;
60 typedef mpl::int_<1> size;
64 typename detail::call_param<T0 >::type _0)
66 template <typename U0>
68 vector1<U0> const& vec)
69 : base_type(vec.m0) {}
70 template <typename Sequence>
73 , typename boost::disable_if<is_convertible<Sequence, T0> >::type* = 0
75 : base_type(base_type::init_from_sequence(seq)) {}
76 template <typename Sequence>
79 , typename boost::disable_if<is_convertible<Sequence, T0> >::type* = 0
81 : base_type(base_type::init_from_sequence(seq)) {}
82 template <typename U0>
84 operator=(vector1<U0> const& vec)
89 template <typename Sequence>
90 typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
91 operator=(Sequence const& seq)
93 typedef typename result_of::begin<Sequence const>::type I0;
94 I0 i0 = fusion::begin(seq);
99 typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; }
101 typename add_reference<typename mpl::at<types, I>::type>::type
104 return this->at_impl(mpl::int_<I::value>());
107 typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
110 return this->at_impl(mpl::int_<I::value>());
113 template <typename T0 , typename T1>
119 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1)
122 vector_data2 const& other)
123 : m0(other.m0) , m1(other.m1) {}
125 operator=(vector_data2 const& vec)
127 this->m0 = vec.m0; this->m1 = vec.m1;
130 template <typename Sequence>
132 init_from_sequence(Sequence const& seq)
134 typedef typename result_of::begin<Sequence const>::type I0;
135 I0 i0 = fusion::begin(seq);
136 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0);
137 return vector_data2(*i0 , *i1);
139 template <typename Sequence>
141 init_from_sequence(Sequence& seq)
143 typedef typename result_of::begin<Sequence>::type I0;
144 I0 i0 = fusion::begin(seq);
145 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0);
146 return vector_data2(*i0 , *i1);
150 template <typename T0 , typename T1>
152 : vector_data2<T0 , T1>
153 , sequence_base<vector2<T0 , T1> >
155 typedef vector2<T0 , T1> this_type;
156 typedef vector_data2<T0 , T1> base_type;
157 typedef mpl::vector2<T0 , T1> types;
158 typedef vector_tag fusion_tag;
159 typedef fusion_sequence_tag tag;
160 typedef mpl::false_ is_view;
161 typedef random_access_traversal_tag category;
162 typedef mpl::int_<2> size;
165 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1)
166 : base_type(_0 , _1) {}
167 template <typename U0 , typename U1>
169 vector2<U0 , U1> const& vec)
170 : base_type(vec.m0 , vec.m1) {}
171 template <typename Sequence>
175 : base_type(base_type::init_from_sequence(seq)) {}
176 template <typename Sequence>
180 : base_type(base_type::init_from_sequence(seq)) {}
181 template <typename U0 , typename U1>
183 operator=(vector2<U0 , U1> const& vec)
185 this->m0 = vec.m0; this->m1 = vec.m1;
188 template <typename Sequence>
189 typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
190 operator=(Sequence const& seq)
192 typedef typename result_of::begin<Sequence const>::type I0;
193 I0 i0 = fusion::begin(seq);
194 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0);
195 this->m0 = *i0; this->m1 = *i1;
198 typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; }
200 typename add_reference<typename mpl::at<types, I>::type>::type
203 return this->at_impl(mpl::int_<I::value>());
206 typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
209 return this->at_impl(mpl::int_<I::value>());
212 template <typename T0 , typename T1 , typename T2>
216 : m0() , m1() , m2() {}
218 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2)
219 : m0(_0) , m1(_1) , m2(_2) {}
221 vector_data3 const& other)
222 : m0(other.m0) , m1(other.m1) , m2(other.m2) {}
224 operator=(vector_data3 const& vec)
226 this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2;
229 template <typename Sequence>
231 init_from_sequence(Sequence const& seq)
233 typedef typename result_of::begin<Sequence const>::type I0;
234 I0 i0 = fusion::begin(seq);
235 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1);
236 return vector_data3(*i0 , *i1 , *i2);
238 template <typename Sequence>
240 init_from_sequence(Sequence& seq)
242 typedef typename result_of::begin<Sequence>::type I0;
243 I0 i0 = fusion::begin(seq);
244 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1);
245 return vector_data3(*i0 , *i1 , *i2);
249 template <typename T0 , typename T1 , typename T2>
251 : vector_data3<T0 , T1 , T2>
252 , sequence_base<vector3<T0 , T1 , T2> >
254 typedef vector3<T0 , T1 , T2> this_type;
255 typedef vector_data3<T0 , T1 , T2> base_type;
256 typedef mpl::vector3<T0 , T1 , T2> types;
257 typedef vector_tag fusion_tag;
258 typedef fusion_sequence_tag tag;
259 typedef mpl::false_ is_view;
260 typedef random_access_traversal_tag category;
261 typedef mpl::int_<3> size;
264 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2)
265 : base_type(_0 , _1 , _2) {}
266 template <typename U0 , typename U1 , typename U2>
268 vector3<U0 , U1 , U2> const& vec)
269 : base_type(vec.m0 , vec.m1 , vec.m2) {}
270 template <typename Sequence>
274 : base_type(base_type::init_from_sequence(seq)) {}
275 template <typename Sequence>
279 : base_type(base_type::init_from_sequence(seq)) {}
280 template <typename U0 , typename U1 , typename U2>
282 operator=(vector3<U0 , U1 , U2> const& vec)
284 this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2;
287 template <typename Sequence>
288 typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
289 operator=(Sequence const& seq)
291 typedef typename result_of::begin<Sequence const>::type I0;
292 I0 i0 = fusion::begin(seq);
293 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1);
294 this->m0 = *i0; this->m1 = *i1; this->m2 = *i2;
297 typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_const<T2>::type>::type at_impl(mpl::int_<2>) const { return this->m2; }
299 typename add_reference<typename mpl::at<types, I>::type>::type
302 return this->at_impl(mpl::int_<I::value>());
305 typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
308 return this->at_impl(mpl::int_<I::value>());
311 template <typename T0 , typename T1 , typename T2 , typename T3>
315 : m0() , m1() , m2() , m3() {}
317 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3)
318 : m0(_0) , m1(_1) , m2(_2) , m3(_3) {}
320 vector_data4 const& other)
321 : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) {}
323 operator=(vector_data4 const& vec)
325 this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3;
328 template <typename Sequence>
330 init_from_sequence(Sequence const& seq)
332 typedef typename result_of::begin<Sequence const>::type I0;
333 I0 i0 = fusion::begin(seq);
334 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2);
335 return vector_data4(*i0 , *i1 , *i2 , *i3);
337 template <typename Sequence>
339 init_from_sequence(Sequence& seq)
341 typedef typename result_of::begin<Sequence>::type I0;
342 I0 i0 = fusion::begin(seq);
343 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2);
344 return vector_data4(*i0 , *i1 , *i2 , *i3);
346 T0 m0; T1 m1; T2 m2; T3 m3;
348 template <typename T0 , typename T1 , typename T2 , typename T3>
350 : vector_data4<T0 , T1 , T2 , T3>
351 , sequence_base<vector4<T0 , T1 , T2 , T3> >
353 typedef vector4<T0 , T1 , T2 , T3> this_type;
354 typedef vector_data4<T0 , T1 , T2 , T3> base_type;
355 typedef mpl::vector4<T0 , T1 , T2 , T3> types;
356 typedef vector_tag fusion_tag;
357 typedef fusion_sequence_tag tag;
358 typedef mpl::false_ is_view;
359 typedef random_access_traversal_tag category;
360 typedef mpl::int_<4> size;
363 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3)
364 : base_type(_0 , _1 , _2 , _3) {}
365 template <typename U0 , typename U1 , typename U2 , typename U3>
367 vector4<U0 , U1 , U2 , U3> const& vec)
368 : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3) {}
369 template <typename Sequence>
373 : base_type(base_type::init_from_sequence(seq)) {}
374 template <typename Sequence>
378 : base_type(base_type::init_from_sequence(seq)) {}
379 template <typename U0 , typename U1 , typename U2 , typename U3>
381 operator=(vector4<U0 , U1 , U2 , U3> const& vec)
383 this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3;
386 template <typename Sequence>
387 typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
388 operator=(Sequence const& seq)
390 typedef typename result_of::begin<Sequence const>::type I0;
391 I0 i0 = fusion::begin(seq);
392 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2);
393 this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3;
396 typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_const<T2>::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference<T3>::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference<typename add_const<T3>::type>::type at_impl(mpl::int_<3>) const { return this->m3; }
398 typename add_reference<typename mpl::at<types, I>::type>::type
401 return this->at_impl(mpl::int_<I::value>());
404 typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
407 return this->at_impl(mpl::int_<I::value>());
410 template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
414 : m0() , m1() , m2() , m3() , m4() {}
416 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4)
417 : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) {}
419 vector_data5 const& other)
420 : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) {}
422 operator=(vector_data5 const& vec)
424 this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4;
427 template <typename Sequence>
429 init_from_sequence(Sequence const& seq)
431 typedef typename result_of::begin<Sequence const>::type I0;
432 I0 i0 = fusion::begin(seq);
433 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3);
434 return vector_data5(*i0 , *i1 , *i2 , *i3 , *i4);
436 template <typename Sequence>
438 init_from_sequence(Sequence& seq)
440 typedef typename result_of::begin<Sequence>::type I0;
441 I0 i0 = fusion::begin(seq);
442 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3);
443 return vector_data5(*i0 , *i1 , *i2 , *i3 , *i4);
445 T0 m0; T1 m1; T2 m2; T3 m3; T4 m4;
447 template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
449 : vector_data5<T0 , T1 , T2 , T3 , T4>
450 , sequence_base<vector5<T0 , T1 , T2 , T3 , T4> >
452 typedef vector5<T0 , T1 , T2 , T3 , T4> this_type;
453 typedef vector_data5<T0 , T1 , T2 , T3 , T4> base_type;
454 typedef mpl::vector5<T0 , T1 , T2 , T3 , T4> types;
455 typedef vector_tag fusion_tag;
456 typedef fusion_sequence_tag tag;
457 typedef mpl::false_ is_view;
458 typedef random_access_traversal_tag category;
459 typedef mpl::int_<5> size;
462 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4)
463 : base_type(_0 , _1 , _2 , _3 , _4) {}
464 template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4>
466 vector5<U0 , U1 , U2 , U3 , U4> const& vec)
467 : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4) {}
468 template <typename Sequence>
472 : base_type(base_type::init_from_sequence(seq)) {}
473 template <typename Sequence>
477 : base_type(base_type::init_from_sequence(seq)) {}
478 template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4>
480 operator=(vector5<U0 , U1 , U2 , U3 , U4> const& vec)
482 this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4;
485 template <typename Sequence>
486 typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
487 operator=(Sequence const& seq)
489 typedef typename result_of::begin<Sequence const>::type I0;
490 I0 i0 = fusion::begin(seq);
491 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3);
492 this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4;
495 typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_const<T2>::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference<T3>::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference<typename add_const<T3>::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference<T4>::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference<typename add_const<T4>::type>::type at_impl(mpl::int_<4>) const { return this->m4; }
497 typename add_reference<typename mpl::at<types, I>::type>::type
500 return this->at_impl(mpl::int_<I::value>());
503 typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
506 return this->at_impl(mpl::int_<I::value>());
509 template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
513 : m0() , m1() , m2() , m3() , m4() , m5() {}
515 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5)
516 : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) {}
518 vector_data6 const& other)
519 : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) {}
521 operator=(vector_data6 const& vec)
523 this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5;
526 template <typename Sequence>
528 init_from_sequence(Sequence const& seq)
530 typedef typename result_of::begin<Sequence const>::type I0;
531 I0 i0 = fusion::begin(seq);
532 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4);
533 return vector_data6(*i0 , *i1 , *i2 , *i3 , *i4 , *i5);
535 template <typename Sequence>
537 init_from_sequence(Sequence& seq)
539 typedef typename result_of::begin<Sequence>::type I0;
540 I0 i0 = fusion::begin(seq);
541 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4);
542 return vector_data6(*i0 , *i1 , *i2 , *i3 , *i4 , *i5);
544 T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5;
546 template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
548 : vector_data6<T0 , T1 , T2 , T3 , T4 , T5>
549 , sequence_base<vector6<T0 , T1 , T2 , T3 , T4 , T5> >
551 typedef vector6<T0 , T1 , T2 , T3 , T4 , T5> this_type;
552 typedef vector_data6<T0 , T1 , T2 , T3 , T4 , T5> base_type;
553 typedef mpl::vector6<T0 , T1 , T2 , T3 , T4 , T5> types;
554 typedef vector_tag fusion_tag;
555 typedef fusion_sequence_tag tag;
556 typedef mpl::false_ is_view;
557 typedef random_access_traversal_tag category;
558 typedef mpl::int_<6> size;
561 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5)
562 : base_type(_0 , _1 , _2 , _3 , _4 , _5) {}
563 template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5>
565 vector6<U0 , U1 , U2 , U3 , U4 , U5> const& vec)
566 : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5) {}
567 template <typename Sequence>
571 : base_type(base_type::init_from_sequence(seq)) {}
572 template <typename Sequence>
576 : base_type(base_type::init_from_sequence(seq)) {}
577 template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5>
579 operator=(vector6<U0 , U1 , U2 , U3 , U4 , U5> const& vec)
581 this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5;
584 template <typename Sequence>
585 typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
586 operator=(Sequence const& seq)
588 typedef typename result_of::begin<Sequence const>::type I0;
589 I0 i0 = fusion::begin(seq);
590 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4);
591 this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5;
594 typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_const<T2>::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference<T3>::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference<typename add_const<T3>::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference<T4>::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference<typename add_const<T4>::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference<T5>::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference<typename add_const<T5>::type>::type at_impl(mpl::int_<5>) const { return this->m5; }
596 typename add_reference<typename mpl::at<types, I>::type>::type
599 return this->at_impl(mpl::int_<I::value>());
602 typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
605 return this->at_impl(mpl::int_<I::value>());
608 template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
612 : m0() , m1() , m2() , m3() , m4() , m5() , m6() {}
614 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6)
615 : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) {}
617 vector_data7 const& other)
618 : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) {}
620 operator=(vector_data7 const& vec)
622 this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6;
625 template <typename Sequence>
627 init_from_sequence(Sequence const& seq)
629 typedef typename result_of::begin<Sequence const>::type I0;
630 I0 i0 = fusion::begin(seq);
631 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5);
632 return vector_data7(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6);
634 template <typename Sequence>
636 init_from_sequence(Sequence& seq)
638 typedef typename result_of::begin<Sequence>::type I0;
639 I0 i0 = fusion::begin(seq);
640 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5);
641 return vector_data7(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6);
643 T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6;
645 template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
647 : vector_data7<T0 , T1 , T2 , T3 , T4 , T5 , T6>
648 , sequence_base<vector7<T0 , T1 , T2 , T3 , T4 , T5 , T6> >
650 typedef vector7<T0 , T1 , T2 , T3 , T4 , T5 , T6> this_type;
651 typedef vector_data7<T0 , T1 , T2 , T3 , T4 , T5 , T6> base_type;
652 typedef mpl::vector7<T0 , T1 , T2 , T3 , T4 , T5 , T6> types;
653 typedef vector_tag fusion_tag;
654 typedef fusion_sequence_tag tag;
655 typedef mpl::false_ is_view;
656 typedef random_access_traversal_tag category;
657 typedef mpl::int_<7> size;
660 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6)
661 : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6) {}
662 template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6>
664 vector7<U0 , U1 , U2 , U3 , U4 , U5 , U6> const& vec)
665 : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6) {}
666 template <typename Sequence>
670 : base_type(base_type::init_from_sequence(seq)) {}
671 template <typename Sequence>
675 : base_type(base_type::init_from_sequence(seq)) {}
676 template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6>
678 operator=(vector7<U0 , U1 , U2 , U3 , U4 , U5 , U6> const& vec)
680 this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6;
683 template <typename Sequence>
684 typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
685 operator=(Sequence const& seq)
687 typedef typename result_of::begin<Sequence const>::type I0;
688 I0 i0 = fusion::begin(seq);
689 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5);
690 this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6;
693 typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_const<T2>::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference<T3>::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference<typename add_const<T3>::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference<T4>::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference<typename add_const<T4>::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference<T5>::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference<typename add_const<T5>::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference<T6>::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference<typename add_const<T6>::type>::type at_impl(mpl::int_<6>) const { return this->m6; }
695 typename add_reference<typename mpl::at<types, I>::type>::type
698 return this->at_impl(mpl::int_<I::value>());
701 typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
704 return this->at_impl(mpl::int_<I::value>());
707 template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
711 : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() {}
713 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7)
714 : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) {}
716 vector_data8 const& other)
717 : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) {}
719 operator=(vector_data8 const& vec)
721 this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7;
724 template <typename Sequence>
726 init_from_sequence(Sequence const& seq)
728 typedef typename result_of::begin<Sequence const>::type I0;
729 I0 i0 = fusion::begin(seq);
730 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6);
731 return vector_data8(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7);
733 template <typename Sequence>
735 init_from_sequence(Sequence& seq)
737 typedef typename result_of::begin<Sequence>::type I0;
738 I0 i0 = fusion::begin(seq);
739 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6);
740 return vector_data8(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7);
742 T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7;
744 template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
746 : vector_data8<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7>
747 , sequence_base<vector8<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> >
749 typedef vector8<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> this_type;
750 typedef vector_data8<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> base_type;
751 typedef mpl::vector8<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> types;
752 typedef vector_tag fusion_tag;
753 typedef fusion_sequence_tag tag;
754 typedef mpl::false_ is_view;
755 typedef random_access_traversal_tag category;
756 typedef mpl::int_<8> size;
759 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7)
760 : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7) {}
761 template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7>
763 vector8<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7> const& vec)
764 : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7) {}
765 template <typename Sequence>
769 : base_type(base_type::init_from_sequence(seq)) {}
770 template <typename Sequence>
774 : base_type(base_type::init_from_sequence(seq)) {}
775 template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7>
777 operator=(vector8<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7> const& vec)
779 this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7;
782 template <typename Sequence>
783 typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
784 operator=(Sequence const& seq)
786 typedef typename result_of::begin<Sequence const>::type I0;
787 I0 i0 = fusion::begin(seq);
788 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6);
789 this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7;
792 typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_const<T2>::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference<T3>::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference<typename add_const<T3>::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference<T4>::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference<typename add_const<T4>::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference<T5>::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference<typename add_const<T5>::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference<T6>::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference<typename add_const<T6>::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference<T7>::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference<typename add_const<T7>::type>::type at_impl(mpl::int_<7>) const { return this->m7; }
794 typename add_reference<typename mpl::at<types, I>::type>::type
797 return this->at_impl(mpl::int_<I::value>());
800 typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
803 return this->at_impl(mpl::int_<I::value>());
806 template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
810 : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() {}
812 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8)
813 : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) {}
815 vector_data9 const& other)
816 : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) {}
818 operator=(vector_data9 const& vec)
820 this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8;
823 template <typename Sequence>
825 init_from_sequence(Sequence const& seq)
827 typedef typename result_of::begin<Sequence const>::type I0;
828 I0 i0 = fusion::begin(seq);
829 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7);
830 return vector_data9(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8);
832 template <typename Sequence>
834 init_from_sequence(Sequence& seq)
836 typedef typename result_of::begin<Sequence>::type I0;
837 I0 i0 = fusion::begin(seq);
838 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7);
839 return vector_data9(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8);
841 T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8;
843 template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
845 : vector_data9<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8>
846 , sequence_base<vector9<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> >
848 typedef vector9<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> this_type;
849 typedef vector_data9<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> base_type;
850 typedef mpl::vector9<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> types;
851 typedef vector_tag fusion_tag;
852 typedef fusion_sequence_tag tag;
853 typedef mpl::false_ is_view;
854 typedef random_access_traversal_tag category;
855 typedef mpl::int_<9> size;
858 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8)
859 : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8) {}
860 template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8>
862 vector9<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8> const& vec)
863 : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8) {}
864 template <typename Sequence>
868 : base_type(base_type::init_from_sequence(seq)) {}
869 template <typename Sequence>
873 : base_type(base_type::init_from_sequence(seq)) {}
874 template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8>
876 operator=(vector9<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8> const& vec)
878 this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8;
881 template <typename Sequence>
882 typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
883 operator=(Sequence const& seq)
885 typedef typename result_of::begin<Sequence const>::type I0;
886 I0 i0 = fusion::begin(seq);
887 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7);
888 this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8;
891 typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_const<T2>::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference<T3>::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference<typename add_const<T3>::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference<T4>::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference<typename add_const<T4>::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference<T5>::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference<typename add_const<T5>::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference<T6>::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference<typename add_const<T6>::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference<T7>::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference<typename add_const<T7>::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference<T8>::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference<typename add_const<T8>::type>::type at_impl(mpl::int_<8>) const { return this->m8; }
893 typename add_reference<typename mpl::at<types, I>::type>::type
896 return this->at_impl(mpl::int_<I::value>());
899 typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
902 return this->at_impl(mpl::int_<I::value>());
905 template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
909 : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() {}
911 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9)
912 : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) {}
914 vector_data10 const& other)
915 : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) {}
917 operator=(vector_data10 const& vec)
919 this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9;
922 template <typename Sequence>
924 init_from_sequence(Sequence const& seq)
926 typedef typename result_of::begin<Sequence const>::type I0;
927 I0 i0 = fusion::begin(seq);
928 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8);
929 return vector_data10(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9);
931 template <typename Sequence>
933 init_from_sequence(Sequence& seq)
935 typedef typename result_of::begin<Sequence>::type I0;
936 I0 i0 = fusion::begin(seq);
937 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8);
938 return vector_data10(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9);
940 T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9;
942 template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
944 : vector_data10<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>
945 , sequence_base<vector10<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> >
947 typedef vector10<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> this_type;
948 typedef vector_data10<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> base_type;
949 typedef mpl::vector10<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> types;
950 typedef vector_tag fusion_tag;
951 typedef fusion_sequence_tag tag;
952 typedef mpl::false_ is_view;
953 typedef random_access_traversal_tag category;
954 typedef mpl::int_<10> size;
957 typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9)
958 : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9) {}
959 template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
961 vector10<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& vec)
962 : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9) {}
963 template <typename Sequence>
967 : base_type(base_type::init_from_sequence(seq)) {}
968 template <typename Sequence>
972 : base_type(base_type::init_from_sequence(seq)) {}
973 template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
975 operator=(vector10<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& vec)
977 this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9;
980 template <typename Sequence>
981 typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
982 operator=(Sequence const& seq)
984 typedef typename result_of::begin<Sequence const>::type I0;
985 I0 i0 = fusion::begin(seq);
986 typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8);
987 this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9;
990 typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_const<T2>::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference<T3>::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference<typename add_const<T3>::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference<T4>::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference<typename add_const<T4>::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference<T5>::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference<typename add_const<T5>::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference<T6>::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference<typename add_const<T6>::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference<T7>::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference<typename add_const<T7>::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference<T8>::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference<typename add_const<T8>::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference<T9>::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference<typename add_const<T9>::type>::type at_impl(mpl::int_<9>) const { return this->m9; }
992 typename add_reference<typename mpl::at<types, I>::type>::type
995 return this->at_impl(mpl::int_<I::value>());
998 typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
1001 return this->at_impl(mpl::int_<I::value>());