From 5ebd31fe32a843993487888d4ea94741c9e7b55a Mon Sep 17 00:00:00 2001 From: Joel de Guzman Date: Fri, 16 Sep 2011 01:35:29 +0000 Subject: [PATCH] Added preprocessed files to speed compilation [SVN r74393] --- .../vector/detail/preprocessed/vector10.hpp | 860 ++++++++++++++++++ .../detail/preprocessed/vector10_fwd.hpp | 30 + .../vector/detail/preprocessed/vector20.hpp | 858 +++++++++++++++++ .../detail/preprocessed/vector20_fwd.hpp | 30 + .../vector/detail/preprocessed/vector30.hpp | 858 +++++++++++++++++ .../detail/preprocessed/vector30_fwd.hpp | 30 + .../vector/detail/preprocessed/vector40.hpp | 858 +++++++++++++++++ .../detail/preprocessed/vector40_fwd.hpp | 30 + .../vector/detail/preprocessed/vector50.hpp | 858 +++++++++++++++++ .../detail/preprocessed/vector50_fwd.hpp | 30 + .../fusion/container/vector/vector10.hpp | 29 +- .../fusion/container/vector/vector10_fwd.hpp | 30 +- .../fusion/container/vector/vector20.hpp | 29 +- .../fusion/container/vector/vector20_fwd.hpp | 30 +- .../fusion/container/vector/vector30.hpp | 30 +- .../fusion/container/vector/vector30_fwd.hpp | 30 +- .../fusion/container/vector/vector40.hpp | 29 +- .../fusion/container/vector/vector40_fwd.hpp | 30 +- .../fusion/container/vector/vector50.hpp | 28 +- .../fusion/container/vector/vector50_fwd.hpp | 30 +- 20 files changed, 4725 insertions(+), 12 deletions(-) create mode 100644 include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp create mode 100644 include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp create mode 100644 include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp create mode 100644 include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp create mode 100644 include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp create mode 100644 include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp create mode 100644 include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp create mode 100644 include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp create mode 100644 include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp create mode 100644 include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp diff --git a/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp b/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp new file mode 100644 index 00000000..a7fd76ee --- /dev/null +++ b/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp @@ -0,0 +1,860 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + template + struct vector_data1 + { + vector_data1() + : m0() {} + vector_data1( + typename detail::call_param::type _0) + : m0(_0) {} + vector_data1( + vector_data1 const& other) + : m0(other.m0) {} + vector_data1& + operator=(vector_data1 const& vec) + { + this->m0 = vec.m0; + return *this; + } + template + static vector_data1 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + + return vector_data1(*i0); + } + T0 m0; + }; + template + struct vector1 + : vector_data1 + , sequence_base > + { + typedef vector1 this_type; + typedef vector_data1 base_type; + typedef mpl::vector1 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<1> size; + vector1() {} + explicit + vector1( + typename detail::call_param::type _0) + : base_type(_0) {} + template + vector1( + vector1 const& vec) + : base_type(vec.m0) {} + template + vector1( + Sequence const& seq + , typename disable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector1& + operator=(vector1 const& vec) + { + this->m0 = vec.m0; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + + this->m0 = *i0; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data2 + { + vector_data2() + : m0() , m1() {} + vector_data2( + typename detail::call_param::type _0 , typename detail::call_param::type _1) + : m0(_0) , m1(_1) {} + vector_data2( + vector_data2 const& other) + : m0(other.m0) , m1(other.m1) {} + vector_data2& + operator=(vector_data2 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; + return *this; + } + template + static vector_data2 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); + return vector_data2(*i0 , *i1); + } + T0 m0; T1 m1; + }; + template + struct vector2 + : vector_data2 + , sequence_base > + { + typedef vector2 this_type; + typedef vector_data2 base_type; + typedef mpl::vector2 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<2> size; + vector2() {} + vector2( + typename detail::call_param::type _0 , typename detail::call_param::type _1) + : base_type(_0 , _1) {} + template + vector2( + vector2 const& vec) + : base_type(vec.m0 , vec.m1) {} + template + vector2( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector2& + operator=(vector2 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); + this->m0 = *i0; this->m1 = *i1; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data3 + { + vector_data3() + : m0() , m1() , m2() {} + vector_data3( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2) + : m0(_0) , m1(_1) , m2(_2) {} + vector_data3( + vector_data3 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) {} + vector_data3& + operator=(vector_data3 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; + return *this; + } + template + static vector_data3 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); + return vector_data3(*i0 , *i1 , *i2); + } + T0 m0; T1 m1; T2 m2; + }; + template + struct vector3 + : vector_data3 + , sequence_base > + { + typedef vector3 this_type; + typedef vector_data3 base_type; + typedef mpl::vector3 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<3> size; + vector3() {} + vector3( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2) + : base_type(_0 , _1 , _2) {} + template + vector3( + vector3 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2) {} + template + vector3( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector3& + operator=(vector3 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data4 + { + vector_data4() + : m0() , m1() , m2() , m3() {} + vector_data4( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) {} + vector_data4( + vector_data4 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) {} + vector_data4& + operator=(vector_data4 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; + return *this; + } + template + static vector_data4 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); + return vector_data4(*i0 , *i1 , *i2 , *i3); + } + T0 m0; T1 m1; T2 m2; T3 m3; + }; + template + struct vector4 + : vector_data4 + , sequence_base > + { + typedef vector4 this_type; + typedef vector_data4 base_type; + typedef mpl::vector4 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<4> size; + vector4() {} + vector4( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3) + : base_type(_0 , _1 , _2 , _3) {} + template + vector4( + vector4 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3) {} + template + vector4( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector4& + operator=(vector4 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data5 + { + vector_data5() + : m0() , m1() , m2() , m3() , m4() {} + vector_data5( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) {} + vector_data5( + vector_data5 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) {} + vector_data5& + operator=(vector_data5 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; + return *this; + } + template + static vector_data5 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); + return vector_data5(*i0 , *i1 , *i2 , *i3 , *i4); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; + }; + template + struct vector5 + : vector_data5 + , sequence_base > + { + typedef vector5 this_type; + typedef vector_data5 base_type; + typedef mpl::vector5 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<5> size; + vector5() {} + vector5( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4) + : base_type(_0 , _1 , _2 , _3 , _4) {} + template + vector5( + vector5 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4) {} + template + vector5( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector5& + operator=(vector5 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data6 + { + vector_data6() + : m0() , m1() , m2() , m3() , m4() , m5() {} + vector_data6( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) {} + vector_data6( + vector_data6 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) {} + vector_data6& + operator=(vector_data6 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; + return *this; + } + template + static vector_data6 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); + return vector_data6(*i0 , *i1 , *i2 , *i3 , *i4 , *i5); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; + }; + template + struct vector6 + : vector_data6 + , sequence_base > + { + typedef vector6 this_type; + typedef vector_data6 base_type; + typedef mpl::vector6 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<6> size; + vector6() {} + vector6( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5) + : base_type(_0 , _1 , _2 , _3 , _4 , _5) {} + template + vector6( + vector6 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5) {} + template + vector6( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector6& + operator=(vector6 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data7 + { + vector_data7() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() {} + vector_data7( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) {} + vector_data7( + vector_data7 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) {} + vector_data7& + operator=(vector_data7 const& vec) + { + 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; + return *this; + } + template + static vector_data7 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); + return vector_data7(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; + }; + template + struct vector7 + : vector_data7 + , sequence_base > + { + typedef vector7 this_type; + typedef vector_data7 base_type; + typedef mpl::vector7 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<7> size; + vector7() {} + vector7( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6) {} + template + vector7( + vector7 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6) {} + template + vector7( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector7& + operator=(vector7 const& vec) + { + 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; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data8 + { + vector_data8() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() {} + vector_data8( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) {} + vector_data8( + vector_data8 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) {} + vector_data8& + operator=(vector_data8 const& vec) + { + 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; + return *this; + } + template + static vector_data8 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); + return vector_data8(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; + }; + template + struct vector8 + : vector_data8 + , sequence_base > + { + typedef vector8 this_type; + typedef vector_data8 base_type; + typedef mpl::vector8 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<8> size; + vector8() {} + vector8( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7) {} + template + vector8( + vector8 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7) {} + template + vector8( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector8& + operator=(vector8 const& vec) + { + 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; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data9 + { + vector_data9() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() {} + vector_data9( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) {} + vector_data9( + vector_data9 const& other) + : 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) {} + vector_data9& + operator=(vector_data9 const& vec) + { + 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; + return *this; + } + template + static vector_data9 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); + return vector_data9(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; + }; + template + struct vector9 + : vector_data9 + , sequence_base > + { + typedef vector9 this_type; + typedef vector_data9 base_type; + typedef mpl::vector9 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<9> size; + vector9() {} + vector9( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8) {} + template + vector9( + vector9 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8) {} + template + vector9( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector9& + operator=(vector9 const& vec) + { + 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; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); + 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; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data10 + { + vector_data10() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() {} + vector_data10( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) {} + vector_data10( + vector_data10 const& other) + : 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) {} + vector_data10& + operator=(vector_data10 const& vec) + { + 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; + return *this; + } + template + static vector_data10 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); + return vector_data10(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; + }; + template + struct vector10 + : vector_data10 + , sequence_base > + { + typedef vector10 this_type; + typedef vector_data10 base_type; + typedef mpl::vector10 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<10> size; + vector10() {} + vector10( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9) {} + template + vector10( + vector10 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9) {} + template + vector10( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector10& + operator=(vector10 const& vec) + { + 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; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); + 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; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; diff --git a/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp b/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp new file mode 100644 index 00000000..50f264ef --- /dev/null +++ b/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp @@ -0,0 +1,30 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + + template + struct vector1; + template + struct vector2; + template + struct vector3; + template + struct vector4; + template + struct vector5; + template + struct vector6; + template + struct vector7; + template + struct vector8; + template + struct vector9; + template + struct vector10; diff --git a/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp b/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp new file mode 100644 index 00000000..11d4e7ff --- /dev/null +++ b/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp @@ -0,0 +1,858 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + template + struct vector_data11 + { + vector_data11() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() {} + vector_data11( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) {} + vector_data11( + vector_data11 const& other) + : 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) , m10(other.m10) {} + vector_data11& + operator=(vector_data11 const& vec) + { + 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; this->m10 = vec.m10; + return *this; + } + template + static vector_data11 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); + return vector_data11(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; + }; + template + struct vector11 + : vector_data11 + , sequence_base > + { + typedef vector11 this_type; + typedef vector_data11 base_type; + typedef mpl::vector11 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<11> size; + vector11() {} + vector11( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10) {} + template + vector11( + vector11 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10) {} + template + vector11( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector11& + operator=(vector11 const& vec) + { + 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; this->m10 = vec.m10; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); + 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; this->m10 = *i10; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data12 + { + vector_data12() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() {} + vector_data12( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) {} + vector_data12( + vector_data12 const& other) + : 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) , m10(other.m10) , m11(other.m11) {} + vector_data12& + operator=(vector_data12 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; + return *this; + } + template + static vector_data12 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); + return vector_data12(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; + }; + template + struct vector12 + : vector_data12 + , sequence_base > + { + typedef vector12 this_type; + typedef vector_data12 base_type; + typedef mpl::vector12 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<12> size; + vector12() {} + vector12( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11) {} + template + vector12( + vector12 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11) {} + template + vector12( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector12& + operator=(vector12 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); + 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; this->m10 = *i10; this->m11 = *i11; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data13 + { + vector_data13() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() {} + vector_data13( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) {} + vector_data13( + vector_data13 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) {} + vector_data13& + operator=(vector_data13 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; + return *this; + } + template + static vector_data13 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); + return vector_data13(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; + }; + template + struct vector13 + : vector_data13 + , sequence_base > + { + typedef vector13 this_type; + typedef vector_data13 base_type; + typedef mpl::vector13 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<13> size; + vector13() {} + vector13( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12) {} + template + vector13( + vector13 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12) {} + template + vector13( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector13& + operator=(vector13 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data14 + { + vector_data14() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() {} + vector_data14( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) {} + vector_data14( + vector_data14 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) {} + vector_data14& + operator=(vector_data14 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; + return *this; + } + template + static vector_data14 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); + return vector_data14(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; + }; + template + struct vector14 + : vector_data14 + , sequence_base > + { + typedef vector14 this_type; + typedef vector_data14 base_type; + typedef mpl::vector14 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<14> size; + vector14() {} + vector14( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13) {} + template + vector14( + vector14 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13) {} + template + vector14( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector14& + operator=(vector14 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data15 + { + vector_data15() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() {} + vector_data15( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) {} + vector_data15( + vector_data15 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) {} + vector_data15& + operator=(vector_data15 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; + return *this; + } + template + static vector_data15 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); + return vector_data15(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; + }; + template + struct vector15 + : vector_data15 + , sequence_base > + { + typedef vector15 this_type; + typedef vector_data15 base_type; + typedef mpl::vector15 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<15> size; + vector15() {} + vector15( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14) {} + template + vector15( + vector15 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14) {} + template + vector15( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector15& + operator=(vector15 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data16 + { + vector_data16() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() {} + vector_data16( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) {} + vector_data16( + vector_data16 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) {} + vector_data16& + operator=(vector_data16 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; + return *this; + } + template + static vector_data16 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); + return vector_data16(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; + }; + template + struct vector16 + : vector_data16 + , sequence_base > + { + typedef vector16 this_type; + typedef vector_data16 base_type; + typedef mpl::vector16 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<16> size; + vector16() {} + vector16( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15) {} + template + vector16( + vector16 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15) {} + template + vector16( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector16& + operator=(vector16 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data17 + { + vector_data17() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() {} + vector_data17( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) {} + vector_data17( + vector_data17 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) {} + vector_data17& + operator=(vector_data17 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; + return *this; + } + template + static vector_data17 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); + return vector_data17(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; + }; + template + struct vector17 + : vector_data17 + , sequence_base > + { + typedef vector17 this_type; + typedef vector_data17 base_type; + typedef mpl::vector17 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<17> size; + vector17() {} + vector17( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16) {} + template + vector17( + vector17 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16) {} + template + vector17( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector17& + operator=(vector17 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data18 + { + vector_data18() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() {} + vector_data18( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) {} + vector_data18( + vector_data18 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) {} + vector_data18& + operator=(vector_data18 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; + return *this; + } + template + static vector_data18 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); + return vector_data18(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; + }; + template + struct vector18 + : vector_data18 + , sequence_base > + { + typedef vector18 this_type; + typedef vector_data18 base_type; + typedef mpl::vector18 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<18> size; + vector18() {} + vector18( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17) {} + template + vector18( + vector18 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17) {} + template + vector18( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector18& + operator=(vector18 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data19 + { + vector_data19() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() {} + vector_data19( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) {} + vector_data19( + vector_data19 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) {} + vector_data19& + operator=(vector_data19 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; + return *this; + } + template + static vector_data19 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); + return vector_data19(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; + }; + template + struct vector19 + : vector_data19 + , sequence_base > + { + typedef vector19 this_type; + typedef vector_data19 base_type; + typedef mpl::vector19 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<19> size; + vector19() {} + vector19( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18) {} + template + vector19( + vector19 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18) {} + template + vector19( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector19& + operator=(vector19 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data20 + { + vector_data20() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() {} + vector_data20( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) {} + vector_data20( + vector_data20 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) {} + vector_data20& + operator=(vector_data20 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; + return *this; + } + template + static vector_data20 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); + return vector_data20(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; + }; + template + struct vector20 + : vector_data20 + , sequence_base > + { + typedef vector20 this_type; + typedef vector_data20 base_type; + typedef mpl::vector20 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<20> size; + vector20() {} + vector20( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19) {} + template + vector20( + vector20 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19) {} + template + vector20( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector20& + operator=(vector20 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; diff --git a/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp b/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp new file mode 100644 index 00000000..2de9e35f --- /dev/null +++ b/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp @@ -0,0 +1,30 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + + template + struct vector11; + template + struct vector12; + template + struct vector13; + template + struct vector14; + template + struct vector15; + template + struct vector16; + template + struct vector17; + template + struct vector18; + template + struct vector19; + template + struct vector20; diff --git a/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp b/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp new file mode 100644 index 00000000..16232c93 --- /dev/null +++ b/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp @@ -0,0 +1,858 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + template + struct vector_data21 + { + vector_data21() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() {} + vector_data21( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) {} + vector_data21( + vector_data21 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) {} + vector_data21& + operator=(vector_data21 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; + return *this; + } + template + static vector_data21 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); + return vector_data21(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; + }; + template + struct vector21 + : vector_data21 + , sequence_base > + { + typedef vector21 this_type; + typedef vector_data21 base_type; + typedef mpl::vector21 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<21> size; + vector21() {} + vector21( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20) {} + template + vector21( + vector21 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20) {} + template + vector21( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector21& + operator=(vector21 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data22 + { + vector_data22() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() {} + vector_data22( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) {} + vector_data22( + vector_data22 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) {} + vector_data22& + operator=(vector_data22 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; + return *this; + } + template + static vector_data22 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); + return vector_data22(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; + }; + template + struct vector22 + : vector_data22 + , sequence_base > + { + typedef vector22 this_type; + typedef vector_data22 base_type; + typedef mpl::vector22 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<22> size; + vector22() {} + vector22( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21) {} + template + vector22( + vector22 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21) {} + template + vector22( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector22& + operator=(vector22 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data23 + { + vector_data23() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() {} + vector_data23( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) {} + vector_data23( + vector_data23 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) {} + vector_data23& + operator=(vector_data23 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; + return *this; + } + template + static vector_data23 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); + return vector_data23(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; + }; + template + struct vector23 + : vector_data23 + , sequence_base > + { + typedef vector23 this_type; + typedef vector_data23 base_type; + typedef mpl::vector23 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<23> size; + vector23() {} + vector23( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22) {} + template + vector23( + vector23 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22) {} + template + vector23( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector23& + operator=(vector23 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data24 + { + vector_data24() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() {} + vector_data24( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) {} + vector_data24( + vector_data24 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) {} + vector_data24& + operator=(vector_data24 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; + return *this; + } + template + static vector_data24 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); + return vector_data24(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; + }; + template + struct vector24 + : vector_data24 + , sequence_base > + { + typedef vector24 this_type; + typedef vector_data24 base_type; + typedef mpl::vector24 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<24> size; + vector24() {} + vector24( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23) {} + template + vector24( + vector24 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23) {} + template + vector24( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector24& + operator=(vector24 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data25 + { + vector_data25() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() {} + vector_data25( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) {} + vector_data25( + vector_data25 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) {} + vector_data25& + operator=(vector_data25 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; + return *this; + } + template + static vector_data25 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); + return vector_data25(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; + }; + template + struct vector25 + : vector_data25 + , sequence_base > + { + typedef vector25 this_type; + typedef vector_data25 base_type; + typedef mpl::vector25 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<25> size; + vector25() {} + vector25( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24) {} + template + vector25( + vector25 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24) {} + template + vector25( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector25& + operator=(vector25 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data26 + { + vector_data26() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() {} + vector_data26( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) {} + vector_data26( + vector_data26 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) {} + vector_data26& + operator=(vector_data26 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; + return *this; + } + template + static vector_data26 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); + return vector_data26(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; + }; + template + struct vector26 + : vector_data26 + , sequence_base > + { + typedef vector26 this_type; + typedef vector_data26 base_type; + typedef mpl::vector26 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<26> size; + vector26() {} + vector26( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25) {} + template + vector26( + vector26 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25) {} + template + vector26( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector26& + operator=(vector26 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data27 + { + vector_data27() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() {} + vector_data27( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) {} + vector_data27( + vector_data27 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) {} + vector_data27& + operator=(vector_data27 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; + return *this; + } + template + static vector_data27 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); + return vector_data27(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; + }; + template + struct vector27 + : vector_data27 + , sequence_base > + { + typedef vector27 this_type; + typedef vector_data27 base_type; + typedef mpl::vector27 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<27> size; + vector27() {} + vector27( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26) {} + template + vector27( + vector27 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26) {} + template + vector27( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector27& + operator=(vector27 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data28 + { + vector_data28() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() {} + vector_data28( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) {} + vector_data28( + vector_data28 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) {} + vector_data28& + operator=(vector_data28 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; + return *this; + } + template + static vector_data28 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); + return vector_data28(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; + }; + template + struct vector28 + : vector_data28 + , sequence_base > + { + typedef vector28 this_type; + typedef vector_data28 base_type; + typedef mpl::vector28 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<28> size; + vector28() {} + vector28( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27) {} + template + vector28( + vector28 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27) {} + template + vector28( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector28& + operator=(vector28 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data29 + { + vector_data29() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() {} + vector_data29( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) {} + vector_data29( + vector_data29 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) {} + vector_data29& + operator=(vector_data29 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; + return *this; + } + template + static vector_data29 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); + return vector_data29(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; + }; + template + struct vector29 + : vector_data29 + , sequence_base > + { + typedef vector29 this_type; + typedef vector_data29 base_type; + typedef mpl::vector29 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<29> size; + vector29() {} + vector29( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28) {} + template + vector29( + vector29 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28) {} + template + vector29( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector29& + operator=(vector29 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data30 + { + vector_data30() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() {} + vector_data30( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) {} + vector_data30( + vector_data30 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) {} + vector_data30& + operator=(vector_data30 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; + return *this; + } + template + static vector_data30 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); + return vector_data30(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; + }; + template + struct vector30 + : vector_data30 + , sequence_base > + { + typedef vector30 this_type; + typedef vector_data30 base_type; + typedef mpl::vector30 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<30> size; + vector30() {} + vector30( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29) {} + template + vector30( + vector30 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29) {} + template + vector30( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector30& + operator=(vector30 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; diff --git a/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp b/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp new file mode 100644 index 00000000..ca3a6a99 --- /dev/null +++ b/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp @@ -0,0 +1,30 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + + template + struct vector21; + template + struct vector22; + template + struct vector23; + template + struct vector24; + template + struct vector25; + template + struct vector26; + template + struct vector27; + template + struct vector28; + template + struct vector29; + template + struct vector30; diff --git a/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp b/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp new file mode 100644 index 00000000..49aecf5d --- /dev/null +++ b/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp @@ -0,0 +1,858 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + template + struct vector_data31 + { + vector_data31() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() {} + vector_data31( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) {} + vector_data31( + vector_data31 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) {} + vector_data31& + operator=(vector_data31 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; + return *this; + } + template + static vector_data31 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); + return vector_data31(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; + }; + template + struct vector31 + : vector_data31 + , sequence_base > + { + typedef vector31 this_type; + typedef vector_data31 base_type; + typedef mpl::vector31 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<31> size; + vector31() {} + vector31( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30) {} + template + vector31( + vector31 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30) {} + template + vector31( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector31& + operator=(vector31 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data32 + { + vector_data32() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() {} + vector_data32( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) {} + vector_data32( + vector_data32 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) {} + vector_data32& + operator=(vector_data32 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; + return *this; + } + template + static vector_data32 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); + return vector_data32(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; + }; + template + struct vector32 + : vector_data32 + , sequence_base > + { + typedef vector32 this_type; + typedef vector_data32 base_type; + typedef mpl::vector32 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<32> size; + vector32() {} + vector32( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31) {} + template + vector32( + vector32 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31) {} + template + vector32( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector32& + operator=(vector32 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data33 + { + vector_data33() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() {} + vector_data33( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) {} + vector_data33( + vector_data33 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) {} + vector_data33& + operator=(vector_data33 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; + return *this; + } + template + static vector_data33 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); + return vector_data33(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; + }; + template + struct vector33 + : vector_data33 + , sequence_base > + { + typedef vector33 this_type; + typedef vector_data33 base_type; + typedef mpl::vector33 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<33> size; + vector33() {} + vector33( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32) {} + template + vector33( + vector33 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32) {} + template + vector33( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector33& + operator=(vector33 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data34 + { + vector_data34() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() {} + vector_data34( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) {} + vector_data34( + vector_data34 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) {} + vector_data34& + operator=(vector_data34 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; + return *this; + } + template + static vector_data34 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); + return vector_data34(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; + }; + template + struct vector34 + : vector_data34 + , sequence_base > + { + typedef vector34 this_type; + typedef vector_data34 base_type; + typedef mpl::vector34 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<34> size; + vector34() {} + vector34( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33) {} + template + vector34( + vector34 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33) {} + template + vector34( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector34& + operator=(vector34 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data35 + { + vector_data35() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() {} + vector_data35( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) {} + vector_data35( + vector_data35 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) {} + vector_data35& + operator=(vector_data35 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; + return *this; + } + template + static vector_data35 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); + return vector_data35(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; + }; + template + struct vector35 + : vector_data35 + , sequence_base > + { + typedef vector35 this_type; + typedef vector_data35 base_type; + typedef mpl::vector35 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<35> size; + vector35() {} + vector35( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34) {} + template + vector35( + vector35 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34) {} + template + vector35( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector35& + operator=(vector35 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data36 + { + vector_data36() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() {} + vector_data36( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) {} + vector_data36( + vector_data36 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) {} + vector_data36& + operator=(vector_data36 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; + return *this; + } + template + static vector_data36 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); + return vector_data36(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; + }; + template + struct vector36 + : vector_data36 + , sequence_base > + { + typedef vector36 this_type; + typedef vector_data36 base_type; + typedef mpl::vector36 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<36> size; + vector36() {} + vector36( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35) {} + template + vector36( + vector36 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35) {} + template + vector36( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector36& + operator=(vector36 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data37 + { + vector_data37() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() {} + vector_data37( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) {} + vector_data37( + vector_data37 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) {} + vector_data37& + operator=(vector_data37 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; + return *this; + } + template + static vector_data37 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); + return vector_data37(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; + }; + template + struct vector37 + : vector_data37 + , sequence_base > + { + typedef vector37 this_type; + typedef vector_data37 base_type; + typedef mpl::vector37 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<37> size; + vector37() {} + vector37( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36) {} + template + vector37( + vector37 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36) {} + template + vector37( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector37& + operator=(vector37 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data38 + { + vector_data38() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() {} + vector_data38( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) {} + vector_data38( + vector_data38 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) {} + vector_data38& + operator=(vector_data38 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; + return *this; + } + template + static vector_data38 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); + return vector_data38(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; + }; + template + struct vector38 + : vector_data38 + , sequence_base > + { + typedef vector38 this_type; + typedef vector_data38 base_type; + typedef mpl::vector38 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<38> size; + vector38() {} + vector38( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37) {} + template + vector38( + vector38 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37) {} + template + vector38( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector38& + operator=(vector38 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data39 + { + vector_data39() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() {} + vector_data39( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) {} + vector_data39( + vector_data39 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) {} + vector_data39& + operator=(vector_data39 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; + return *this; + } + template + static vector_data39 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); + return vector_data39(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; + }; + template + struct vector39 + : vector_data39 + , sequence_base > + { + typedef vector39 this_type; + typedef vector_data39 base_type; + typedef mpl::vector39 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<39> size; + vector39() {} + vector39( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38) {} + template + vector39( + vector39 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38) {} + template + vector39( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector39& + operator=(vector39 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data40 + { + vector_data40() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() {} + vector_data40( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) {} + vector_data40( + vector_data40 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) {} + vector_data40& + operator=(vector_data40 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; + return *this; + } + template + static vector_data40 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); + return vector_data40(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; + }; + template + struct vector40 + : vector_data40 + , sequence_base > + { + typedef vector40 this_type; + typedef vector_data40 base_type; + typedef mpl::vector40 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<40> size; + vector40() {} + vector40( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39) {} + template + vector40( + vector40 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39) {} + template + vector40( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector40& + operator=(vector40 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; diff --git a/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp b/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp new file mode 100644 index 00000000..af366d97 --- /dev/null +++ b/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp @@ -0,0 +1,30 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + + template + struct vector31; + template + struct vector32; + template + struct vector33; + template + struct vector34; + template + struct vector35; + template + struct vector36; + template + struct vector37; + template + struct vector38; + template + struct vector39; + template + struct vector40; diff --git a/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp b/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp new file mode 100644 index 00000000..d7df7201 --- /dev/null +++ b/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp @@ -0,0 +1,858 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + template + struct vector_data41 + { + vector_data41() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() {} + vector_data41( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) {} + vector_data41( + vector_data41 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) {} + vector_data41& + operator=(vector_data41 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; + return *this; + } + template + static vector_data41 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); + return vector_data41(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; + }; + template + struct vector41 + : vector_data41 + , sequence_base > + { + typedef vector41 this_type; + typedef vector_data41 base_type; + typedef mpl::vector41 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<41> size; + vector41() {} + vector41( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40) {} + template + vector41( + vector41 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40) {} + template + vector41( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector41& + operator=(vector41 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data42 + { + vector_data42() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() {} + vector_data42( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) {} + vector_data42( + vector_data42 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) {} + vector_data42& + operator=(vector_data42 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; + return *this; + } + template + static vector_data42 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); + return vector_data42(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; + }; + template + struct vector42 + : vector_data42 + , sequence_base > + { + typedef vector42 this_type; + typedef vector_data42 base_type; + typedef mpl::vector42 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<42> size; + vector42() {} + vector42( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41) {} + template + vector42( + vector42 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41) {} + template + vector42( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector42& + operator=(vector42 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data43 + { + vector_data43() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() {} + vector_data43( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41 , typename detail::call_param::type _42) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) , m42(_42) {} + vector_data43( + vector_data43 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) , m42(other.m42) {} + vector_data43& + operator=(vector_data43 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; + return *this; + } + template + static vector_data43 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); + return vector_data43(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; + }; + template + struct vector43 + : vector_data43 + , sequence_base > + { + typedef vector43 this_type; + typedef vector_data43 base_type; + typedef mpl::vector43 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<43> size; + vector43() {} + vector43( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41 , typename detail::call_param::type _42) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42) {} + template + vector43( + vector43 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42) {} + template + vector43( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector43& + operator=(vector43 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; this->m42 = *i42; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } typename add_reference::type at_impl(mpl::int_<42>) { return this->m42; } typename add_reference::type>::type at_impl(mpl::int_<42>) const { return this->m42; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data44 + { + vector_data44() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() {} + vector_data44( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41 , typename detail::call_param::type _42 , typename detail::call_param::type _43) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) , m42(_42) , m43(_43) {} + vector_data44( + vector_data44 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) , m42(other.m42) , m43(other.m43) {} + vector_data44& + operator=(vector_data44 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; + return *this; + } + template + static vector_data44 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); + return vector_data44(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; + }; + template + struct vector44 + : vector_data44 + , sequence_base > + { + typedef vector44 this_type; + typedef vector_data44 base_type; + typedef mpl::vector44 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<44> size; + vector44() {} + vector44( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41 , typename detail::call_param::type _42 , typename detail::call_param::type _43) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43) {} + template + vector44( + vector44 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43) {} + template + vector44( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector44& + operator=(vector44 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; this->m42 = *i42; this->m43 = *i43; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } typename add_reference::type at_impl(mpl::int_<42>) { return this->m42; } typename add_reference::type>::type at_impl(mpl::int_<42>) const { return this->m42; } typename add_reference::type at_impl(mpl::int_<43>) { return this->m43; } typename add_reference::type>::type at_impl(mpl::int_<43>) const { return this->m43; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data45 + { + vector_data45() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() {} + vector_data45( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41 , typename detail::call_param::type _42 , typename detail::call_param::type _43 , typename detail::call_param::type _44) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) , m42(_42) , m43(_43) , m44(_44) {} + vector_data45( + vector_data45 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) , m42(other.m42) , m43(other.m43) , m44(other.m44) {} + vector_data45& + operator=(vector_data45 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; + return *this; + } + template + static vector_data45 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); + return vector_data45(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44; + }; + template + struct vector45 + : vector_data45 + , sequence_base > + { + typedef vector45 this_type; + typedef vector_data45 base_type; + typedef mpl::vector45 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<45> size; + vector45() {} + vector45( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41 , typename detail::call_param::type _42 , typename detail::call_param::type _43 , typename detail::call_param::type _44) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44) {} + template + vector45( + vector45 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44) {} + template + vector45( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector45& + operator=(vector45 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; this->m42 = *i42; this->m43 = *i43; this->m44 = *i44; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } typename add_reference::type at_impl(mpl::int_<42>) { return this->m42; } typename add_reference::type>::type at_impl(mpl::int_<42>) const { return this->m42; } typename add_reference::type at_impl(mpl::int_<43>) { return this->m43; } typename add_reference::type>::type at_impl(mpl::int_<43>) const { return this->m43; } typename add_reference::type at_impl(mpl::int_<44>) { return this->m44; } typename add_reference::type>::type at_impl(mpl::int_<44>) const { return this->m44; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data46 + { + vector_data46() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() , m45() {} + vector_data46( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41 , typename detail::call_param::type _42 , typename detail::call_param::type _43 , typename detail::call_param::type _44 , typename detail::call_param::type _45) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) , m42(_42) , m43(_43) , m44(_44) , m45(_45) {} + vector_data46( + vector_data46 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) , m42(other.m42) , m43(other.m43) , m44(other.m44) , m45(other.m45) {} + vector_data46& + operator=(vector_data46 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; + return *this; + } + template + static vector_data46 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); + return vector_data46(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44; T45 m45; + }; + template + struct vector46 + : vector_data46 + , sequence_base > + { + typedef vector46 this_type; + typedef vector_data46 base_type; + typedef mpl::vector46 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<46> size; + vector46() {} + vector46( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41 , typename detail::call_param::type _42 , typename detail::call_param::type _43 , typename detail::call_param::type _44 , typename detail::call_param::type _45) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45) {} + template + vector46( + vector46 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44 , vec.m45) {} + template + vector46( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector46& + operator=(vector46 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; this->m42 = *i42; this->m43 = *i43; this->m44 = *i44; this->m45 = *i45; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } typename add_reference::type at_impl(mpl::int_<42>) { return this->m42; } typename add_reference::type>::type at_impl(mpl::int_<42>) const { return this->m42; } typename add_reference::type at_impl(mpl::int_<43>) { return this->m43; } typename add_reference::type>::type at_impl(mpl::int_<43>) const { return this->m43; } typename add_reference::type at_impl(mpl::int_<44>) { return this->m44; } typename add_reference::type>::type at_impl(mpl::int_<44>) const { return this->m44; } typename add_reference::type at_impl(mpl::int_<45>) { return this->m45; } typename add_reference::type>::type at_impl(mpl::int_<45>) const { return this->m45; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data47 + { + vector_data47() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() , m45() , m46() {} + vector_data47( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41 , typename detail::call_param::type _42 , typename detail::call_param::type _43 , typename detail::call_param::type _44 , typename detail::call_param::type _45 , typename detail::call_param::type _46) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) , m42(_42) , m43(_43) , m44(_44) , m45(_45) , m46(_46) {} + vector_data47( + vector_data47 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) , m42(other.m42) , m43(other.m43) , m44(other.m44) , m45(other.m45) , m46(other.m46) {} + vector_data47& + operator=(vector_data47 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; this->m46 = vec.m46; + return *this; + } + template + static vector_data47 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); + return vector_data47(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44; T45 m45; T46 m46; + }; + template + struct vector47 + : vector_data47 + , sequence_base > + { + typedef vector47 this_type; + typedef vector_data47 base_type; + typedef mpl::vector47 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<47> size; + vector47() {} + vector47( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41 , typename detail::call_param::type _42 , typename detail::call_param::type _43 , typename detail::call_param::type _44 , typename detail::call_param::type _45 , typename detail::call_param::type _46) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46) {} + template + vector47( + vector47 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44 , vec.m45 , vec.m46) {} + template + vector47( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector47& + operator=(vector47 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; this->m46 = vec.m46; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; this->m42 = *i42; this->m43 = *i43; this->m44 = *i44; this->m45 = *i45; this->m46 = *i46; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } typename add_reference::type at_impl(mpl::int_<42>) { return this->m42; } typename add_reference::type>::type at_impl(mpl::int_<42>) const { return this->m42; } typename add_reference::type at_impl(mpl::int_<43>) { return this->m43; } typename add_reference::type>::type at_impl(mpl::int_<43>) const { return this->m43; } typename add_reference::type at_impl(mpl::int_<44>) { return this->m44; } typename add_reference::type>::type at_impl(mpl::int_<44>) const { return this->m44; } typename add_reference::type at_impl(mpl::int_<45>) { return this->m45; } typename add_reference::type>::type at_impl(mpl::int_<45>) const { return this->m45; } typename add_reference::type at_impl(mpl::int_<46>) { return this->m46; } typename add_reference::type>::type at_impl(mpl::int_<46>) const { return this->m46; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data48 + { + vector_data48() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() , m45() , m46() , m47() {} + vector_data48( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41 , typename detail::call_param::type _42 , typename detail::call_param::type _43 , typename detail::call_param::type _44 , typename detail::call_param::type _45 , typename detail::call_param::type _46 , typename detail::call_param::type _47) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) , m42(_42) , m43(_43) , m44(_44) , m45(_45) , m46(_46) , m47(_47) {} + vector_data48( + vector_data48 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) , m42(other.m42) , m43(other.m43) , m44(other.m44) , m45(other.m45) , m46(other.m46) , m47(other.m47) {} + vector_data48& + operator=(vector_data48 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; this->m46 = vec.m46; this->m47 = vec.m47; + return *this; + } + template + static vector_data48 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); typedef typename result_of::next< I46>::type I47; I47 i47 = fusion::next(i46); + return vector_data48(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44; T45 m45; T46 m46; T47 m47; + }; + template + struct vector48 + : vector_data48 + , sequence_base > + { + typedef vector48 this_type; + typedef vector_data48 base_type; + typedef mpl::vector48 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<48> size; + vector48() {} + vector48( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41 , typename detail::call_param::type _42 , typename detail::call_param::type _43 , typename detail::call_param::type _44 , typename detail::call_param::type _45 , typename detail::call_param::type _46 , typename detail::call_param::type _47) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47) {} + template + vector48( + vector48 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44 , vec.m45 , vec.m46 , vec.m47) {} + template + vector48( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector48& + operator=(vector48 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; this->m46 = vec.m46; this->m47 = vec.m47; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); typedef typename result_of::next< I46>::type I47; I47 i47 = fusion::next(i46); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; this->m42 = *i42; this->m43 = *i43; this->m44 = *i44; this->m45 = *i45; this->m46 = *i46; this->m47 = *i47; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } typename add_reference::type at_impl(mpl::int_<42>) { return this->m42; } typename add_reference::type>::type at_impl(mpl::int_<42>) const { return this->m42; } typename add_reference::type at_impl(mpl::int_<43>) { return this->m43; } typename add_reference::type>::type at_impl(mpl::int_<43>) const { return this->m43; } typename add_reference::type at_impl(mpl::int_<44>) { return this->m44; } typename add_reference::type>::type at_impl(mpl::int_<44>) const { return this->m44; } typename add_reference::type at_impl(mpl::int_<45>) { return this->m45; } typename add_reference::type>::type at_impl(mpl::int_<45>) const { return this->m45; } typename add_reference::type at_impl(mpl::int_<46>) { return this->m46; } typename add_reference::type>::type at_impl(mpl::int_<46>) const { return this->m46; } typename add_reference::type at_impl(mpl::int_<47>) { return this->m47; } typename add_reference::type>::type at_impl(mpl::int_<47>) const { return this->m47; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data49 + { + vector_data49() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() , m45() , m46() , m47() , m48() {} + vector_data49( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41 , typename detail::call_param::type _42 , typename detail::call_param::type _43 , typename detail::call_param::type _44 , typename detail::call_param::type _45 , typename detail::call_param::type _46 , typename detail::call_param::type _47 , typename detail::call_param::type _48) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) , m42(_42) , m43(_43) , m44(_44) , m45(_45) , m46(_46) , m47(_47) , m48(_48) {} + vector_data49( + vector_data49 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) , m42(other.m42) , m43(other.m43) , m44(other.m44) , m45(other.m45) , m46(other.m46) , m47(other.m47) , m48(other.m48) {} + vector_data49& + operator=(vector_data49 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; this->m46 = vec.m46; this->m47 = vec.m47; this->m48 = vec.m48; + return *this; + } + template + static vector_data49 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); typedef typename result_of::next< I46>::type I47; I47 i47 = fusion::next(i46); typedef typename result_of::next< I47>::type I48; I48 i48 = fusion::next(i47); + return vector_data49(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47 , *i48); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44; T45 m45; T46 m46; T47 m47; T48 m48; + }; + template + struct vector49 + : vector_data49 + , sequence_base > + { + typedef vector49 this_type; + typedef vector_data49 base_type; + typedef mpl::vector49 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<49> size; + vector49() {} + vector49( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41 , typename detail::call_param::type _42 , typename detail::call_param::type _43 , typename detail::call_param::type _44 , typename detail::call_param::type _45 , typename detail::call_param::type _46 , typename detail::call_param::type _47 , typename detail::call_param::type _48) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47 , _48) {} + template + vector49( + vector49 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44 , vec.m45 , vec.m46 , vec.m47 , vec.m48) {} + template + vector49( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector49& + operator=(vector49 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; this->m46 = vec.m46; this->m47 = vec.m47; this->m48 = vec.m48; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); typedef typename result_of::next< I46>::type I47; I47 i47 = fusion::next(i46); typedef typename result_of::next< I47>::type I48; I48 i48 = fusion::next(i47); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; this->m42 = *i42; this->m43 = *i43; this->m44 = *i44; this->m45 = *i45; this->m46 = *i46; this->m47 = *i47; this->m48 = *i48; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } typename add_reference::type at_impl(mpl::int_<42>) { return this->m42; } typename add_reference::type>::type at_impl(mpl::int_<42>) const { return this->m42; } typename add_reference::type at_impl(mpl::int_<43>) { return this->m43; } typename add_reference::type>::type at_impl(mpl::int_<43>) const { return this->m43; } typename add_reference::type at_impl(mpl::int_<44>) { return this->m44; } typename add_reference::type>::type at_impl(mpl::int_<44>) const { return this->m44; } typename add_reference::type at_impl(mpl::int_<45>) { return this->m45; } typename add_reference::type>::type at_impl(mpl::int_<45>) const { return this->m45; } typename add_reference::type at_impl(mpl::int_<46>) { return this->m46; } typename add_reference::type>::type at_impl(mpl::int_<46>) const { return this->m46; } typename add_reference::type at_impl(mpl::int_<47>) { return this->m47; } typename add_reference::type>::type at_impl(mpl::int_<47>) const { return this->m47; } typename add_reference::type at_impl(mpl::int_<48>) { return this->m48; } typename add_reference::type>::type at_impl(mpl::int_<48>) const { return this->m48; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data50 + { + vector_data50() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() , m45() , m46() , m47() , m48() , m49() {} + vector_data50( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41 , typename detail::call_param::type _42 , typename detail::call_param::type _43 , typename detail::call_param::type _44 , typename detail::call_param::type _45 , typename detail::call_param::type _46 , typename detail::call_param::type _47 , typename detail::call_param::type _48 , typename detail::call_param::type _49) + : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) , m42(_42) , m43(_43) , m44(_44) , m45(_45) , m46(_46) , m47(_47) , m48(_48) , m49(_49) {} + vector_data50( + vector_data50 const& other) + : 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) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) , m42(other.m42) , m43(other.m43) , m44(other.m44) , m45(other.m45) , m46(other.m46) , m47(other.m47) , m48(other.m48) , m49(other.m49) {} + vector_data50& + operator=(vector_data50 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; this->m46 = vec.m46; this->m47 = vec.m47; this->m48 = vec.m48; this->m49 = vec.m49; + return *this; + } + template + static vector_data50 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); typedef typename result_of::next< I46>::type I47; I47 i47 = fusion::next(i46); typedef typename result_of::next< I47>::type I48; I48 i48 = fusion::next(i47); typedef typename result_of::next< I48>::type I49; I49 i49 = fusion::next(i48); + return vector_data50(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47 , *i48 , *i49); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44; T45 m45; T46 m46; T47 m47; T48 m48; T49 m49; + }; + template + struct vector50 + : vector_data50 + , sequence_base > + { + typedef vector50 this_type; + typedef vector_data50 base_type; + typedef mpl::vector50 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<50> size; + vector50() {} + vector50( + typename detail::call_param::type _0 , typename detail::call_param::type _1 , typename detail::call_param::type _2 , typename detail::call_param::type _3 , typename detail::call_param::type _4 , typename detail::call_param::type _5 , typename detail::call_param::type _6 , typename detail::call_param::type _7 , typename detail::call_param::type _8 , typename detail::call_param::type _9 , typename detail::call_param::type _10 , typename detail::call_param::type _11 , typename detail::call_param::type _12 , typename detail::call_param::type _13 , typename detail::call_param::type _14 , typename detail::call_param::type _15 , typename detail::call_param::type _16 , typename detail::call_param::type _17 , typename detail::call_param::type _18 , typename detail::call_param::type _19 , typename detail::call_param::type _20 , typename detail::call_param::type _21 , typename detail::call_param::type _22 , typename detail::call_param::type _23 , typename detail::call_param::type _24 , typename detail::call_param::type _25 , typename detail::call_param::type _26 , typename detail::call_param::type _27 , typename detail::call_param::type _28 , typename detail::call_param::type _29 , typename detail::call_param::type _30 , typename detail::call_param::type _31 , typename detail::call_param::type _32 , typename detail::call_param::type _33 , typename detail::call_param::type _34 , typename detail::call_param::type _35 , typename detail::call_param::type _36 , typename detail::call_param::type _37 , typename detail::call_param::type _38 , typename detail::call_param::type _39 , typename detail::call_param::type _40 , typename detail::call_param::type _41 , typename detail::call_param::type _42 , typename detail::call_param::type _43 , typename detail::call_param::type _44 , typename detail::call_param::type _45 , typename detail::call_param::type _46 , typename detail::call_param::type _47 , typename detail::call_param::type _48 , typename detail::call_param::type _49) + : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47 , _48 , _49) {} + template + vector50( + vector50 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44 , vec.m45 , vec.m46 , vec.m47 , vec.m48 , vec.m49) {} + template + vector50( + Sequence const& seq + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + vector50& + operator=(vector50 const& vec) + { + 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; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; this->m46 = vec.m46; this->m47 = vec.m47; this->m48 = vec.m48; this->m49 = vec.m49; + return *this; + } + template + typename disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + 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); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); typedef typename result_of::next< I46>::type I47; I47 i47 = fusion::next(i46); typedef typename result_of::next< I47>::type I48; I48 i48 = fusion::next(i47); typedef typename result_of::next< I48>::type I49; I49 i49 = fusion::next(i48); + 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; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; this->m42 = *i42; this->m43 = *i43; this->m44 = *i44; this->m45 = *i45; this->m46 = *i46; this->m47 = *i47; this->m48 = *i48; this->m49 = *i49; + return *this; + } + typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } typename add_reference::type at_impl(mpl::int_<42>) { return this->m42; } typename add_reference::type>::type at_impl(mpl::int_<42>) const { return this->m42; } typename add_reference::type at_impl(mpl::int_<43>) { return this->m43; } typename add_reference::type>::type at_impl(mpl::int_<43>) const { return this->m43; } typename add_reference::type at_impl(mpl::int_<44>) { return this->m44; } typename add_reference::type>::type at_impl(mpl::int_<44>) const { return this->m44; } typename add_reference::type at_impl(mpl::int_<45>) { return this->m45; } typename add_reference::type>::type at_impl(mpl::int_<45>) const { return this->m45; } typename add_reference::type at_impl(mpl::int_<46>) { return this->m46; } typename add_reference::type>::type at_impl(mpl::int_<46>) const { return this->m46; } typename add_reference::type at_impl(mpl::int_<47>) { return this->m47; } typename add_reference::type>::type at_impl(mpl::int_<47>) const { return this->m47; } typename add_reference::type at_impl(mpl::int_<48>) { return this->m48; } typename add_reference::type>::type at_impl(mpl::int_<48>) const { return this->m48; } typename add_reference::type at_impl(mpl::int_<49>) { return this->m49; } typename add_reference::type>::type at_impl(mpl::int_<49>) const { return this->m49; } + template + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; diff --git a/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp b/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp new file mode 100644 index 00000000..0cd11765 --- /dev/null +++ b/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp @@ -0,0 +1,30 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + + template + struct vector41; + template + struct vector42; + template + struct vector43; + template + struct vector44; + template + struct vector45; + template + struct vector46; + template + struct vector47; + template + struct vector48; + template + struct vector49; + template + struct vector50; diff --git a/include/boost/fusion/container/vector/vector10.hpp b/include/boost/fusion/container/vector/vector10.hpp index 57dee09e..442e6a64 100644 --- a/include/boost/fusion/container/vector/vector10.hpp +++ b/include/boost/fusion/container/vector/vector10.hpp @@ -1,7 +1,7 @@ /*============================================================================= Copyright (c) 2001-2006 Joel de Guzman - Distributed under the Boost Software License, Version 1.0. (See accompanying + Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #if !defined(FUSION_VECTOR10_05042005_0257) @@ -57,12 +57,37 @@ namespace boost { namespace fusion {} }; +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector10.hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + // expand vector1 to vector10 #define BOOST_PP_FILENAME_1 #define BOOST_PP_ITERATION_LIMITS (1, 10) #include BOOST_PP_ITERATE() +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + }} #endif - diff --git a/include/boost/fusion/container/vector/vector10_fwd.hpp b/include/boost/fusion/container/vector/vector10_fwd.hpp index b656cea4..5aa0defb 100644 --- a/include/boost/fusion/container/vector/vector10_fwd.hpp +++ b/include/boost/fusion/container/vector/vector10_fwd.hpp @@ -1,8 +1,9 @@ #ifndef BOOST_PP_IS_ITERATING /*============================================================================= Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman - Distributed under the Boost Software License, Version 1.0. (See accompanying + Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #if !defined(BOOST_FUSION_VECTOR10_FWD_HPP_INCLUDED) @@ -17,11 +18,38 @@ namespace boost { namespace fusion template struct vector0; +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector10_fwd.hpp") +#endif + +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + // expand vector1 to vector10 #define BOOST_PP_FILENAME_1 #define BOOST_PP_ITERATION_LIMITS (1, 10) #include BOOST_PP_ITERATE() +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + }} #endif diff --git a/include/boost/fusion/container/vector/vector20.hpp b/include/boost/fusion/container/vector/vector20.hpp index 06649840..fb94a435 100644 --- a/include/boost/fusion/container/vector/vector20.hpp +++ b/include/boost/fusion/container/vector/vector20.hpp @@ -1,7 +1,8 @@ /*============================================================================= Copyright (c) 2001-2006 Joel de Guzman + Copyright (c) 2001-2011 Joel de Guzman - Distributed under the Boost Software License, Version 1.0. (See accompanying + Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #if !defined(FUSION_VECTOR20_05052005_0205) @@ -40,11 +41,37 @@ namespace boost { namespace fusion struct fusion_sequence_tag; struct random_access_traversal_tag; +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector20.hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + // expand vector11 to vector20 #define BOOST_PP_FILENAME_1 #define BOOST_PP_ITERATION_LIMITS (11, 20) #include BOOST_PP_ITERATE() +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + }} #endif diff --git a/include/boost/fusion/container/vector/vector20_fwd.hpp b/include/boost/fusion/container/vector/vector20_fwd.hpp index 982911eb..20411f7a 100644 --- a/include/boost/fusion/container/vector/vector20_fwd.hpp +++ b/include/boost/fusion/container/vector/vector20_fwd.hpp @@ -1,8 +1,9 @@ #ifndef BOOST_PP_IS_ITERATING /*============================================================================= Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman - Distributed under the Boost Software License, Version 1.0. (See accompanying + Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #if !defined(BOOST_FUSION_VECTOR20_FWD_HPP_INCLUDED) @@ -14,11 +15,38 @@ namespace boost { namespace fusion { +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector20_fwd.hpp") +#endif + +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + // expand vector11 to vector20 #define BOOST_PP_FILENAME_1 #define BOOST_PP_ITERATION_LIMITS (11, 20) #include BOOST_PP_ITERATE() +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + }} #endif diff --git a/include/boost/fusion/container/vector/vector30.hpp b/include/boost/fusion/container/vector/vector30.hpp index d6614b14..62ca8b0f 100644 --- a/include/boost/fusion/container/vector/vector30.hpp +++ b/include/boost/fusion/container/vector/vector30.hpp @@ -1,7 +1,7 @@ /*============================================================================= Copyright (c) 2001-2006 Joel de Guzman - Distributed under the Boost Software License, Version 1.0. (See accompanying + Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #if !defined(FUSION_VECTOR30_05052005_0206) @@ -39,12 +39,38 @@ namespace boost { namespace fusion struct vector_tag; struct fusion_sequence_tag; struct random_access_traversal_tag; - + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector30.hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + // expand vector21 to vector30 #define BOOST_PP_FILENAME_1 #define BOOST_PP_ITERATION_LIMITS (21, 30) #include BOOST_PP_ITERATE() +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + }} #endif diff --git a/include/boost/fusion/container/vector/vector30_fwd.hpp b/include/boost/fusion/container/vector/vector30_fwd.hpp index 5458b7d4..05e2e160 100644 --- a/include/boost/fusion/container/vector/vector30_fwd.hpp +++ b/include/boost/fusion/container/vector/vector30_fwd.hpp @@ -1,8 +1,9 @@ #ifndef BOOST_PP_IS_ITERATING /*============================================================================= Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman - Distributed under the Boost Software License, Version 1.0. (See accompanying + Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #if !defined(BOOST_FUSION_VECTOR30_FWD_HPP_INCLUDED) @@ -14,11 +15,38 @@ namespace boost { namespace fusion { +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector30_fwd.hpp") +#endif + +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + // expand vector21 to vector30 #define BOOST_PP_FILENAME_1 #define BOOST_PP_ITERATION_LIMITS (21, 30) #include BOOST_PP_ITERATE() +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + }} #endif diff --git a/include/boost/fusion/container/vector/vector40.hpp b/include/boost/fusion/container/vector/vector40.hpp index eb965f69..cbaf44d1 100644 --- a/include/boost/fusion/container/vector/vector40.hpp +++ b/include/boost/fusion/container/vector/vector40.hpp @@ -1,7 +1,8 @@ /*============================================================================= Copyright (c) 2001-2006 Joel de Guzman + Copyright (c) 2001-2011 Joel de Guzman - Distributed under the Boost Software License, Version 1.0. (See accompanying + Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #if !defined(FUSION_VECTOR40_05052005_0208) @@ -40,11 +41,37 @@ namespace boost { namespace fusion struct fusion_sequence_tag; struct random_access_traversal_tag; +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector40.hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + // expand vector31 to vector40 #define BOOST_PP_FILENAME_1 #define BOOST_PP_ITERATION_LIMITS (31, 40) #include BOOST_PP_ITERATE() +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + }} #endif diff --git a/include/boost/fusion/container/vector/vector40_fwd.hpp b/include/boost/fusion/container/vector/vector40_fwd.hpp index e7b4251d..3d721ec1 100644 --- a/include/boost/fusion/container/vector/vector40_fwd.hpp +++ b/include/boost/fusion/container/vector/vector40_fwd.hpp @@ -1,8 +1,9 @@ #ifndef BOOST_PP_IS_ITERATING /*============================================================================= Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman - Distributed under the Boost Software License, Version 1.0. (See accompanying + Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #if !defined(BOOST_FUSION_VECTOR40_FWD_HPP_INCLUDED) @@ -14,11 +15,38 @@ namespace boost { namespace fusion { +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector40_fwd.hpp") +#endif + +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + // expand vector31 to vector40 #define BOOST_PP_FILENAME_1 #define BOOST_PP_ITERATION_LIMITS (31, 40) #include BOOST_PP_ITERATE() +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + }} #endif diff --git a/include/boost/fusion/container/vector/vector50.hpp b/include/boost/fusion/container/vector/vector50.hpp index 506e1a0a..cea3cf11 100644 --- a/include/boost/fusion/container/vector/vector50.hpp +++ b/include/boost/fusion/container/vector/vector50.hpp @@ -1,7 +1,7 @@ /*============================================================================= Copyright (c) 2001-2006 Joel de Guzman - Distributed under the Boost Software License, Version 1.0. (See accompanying + Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #if !defined(FUSION_VECTOR50_05052005_0207) @@ -40,11 +40,37 @@ namespace boost { namespace fusion struct fusion_sequence_tag; struct random_access_traversal_tag; +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector50.hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + // expand vector41 to vector50 #define BOOST_PP_FILENAME_1 #define BOOST_PP_ITERATION_LIMITS (41, 50) #include BOOST_PP_ITERATE() +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + }} #endif diff --git a/include/boost/fusion/container/vector/vector50_fwd.hpp b/include/boost/fusion/container/vector/vector50_fwd.hpp index 58f68e07..a94295d3 100644 --- a/include/boost/fusion/container/vector/vector50_fwd.hpp +++ b/include/boost/fusion/container/vector/vector50_fwd.hpp @@ -1,8 +1,9 @@ #ifndef BOOST_PP_IS_ITERATING /*============================================================================= Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman - Distributed under the Boost Software License, Version 1.0. (See accompanying + Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #if !defined(BOOST_FUSION_VECTOR50_FWD_HPP_INCLUDED) @@ -14,11 +15,38 @@ namespace boost { namespace fusion { +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector50_fwd.hpp") +#endif + +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + // expand vector41 to vector50 #define BOOST_PP_FILENAME_1 #define BOOST_PP_ITERATION_LIMITS (41, 50) #include BOOST_PP_ITERATE() +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + }} #endif