| |
| // Copyright Aleksey Gurtovoy 2000-2004 |
| // |
| // 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) |
| // |
| |
| // Preprocessed version of "ndnboost/mpl/vector/vector10.hpp" header |
| // -- DO NOT modify by hand! |
| |
| namespace ndnboost { namespace mpl { |
| |
| namespace aux { |
| template<> struct v_at_impl<0> |
| { |
| template< typename V_ > struct result_ |
| { |
| typedef typename V_::item0 type; |
| }; |
| }; |
| |
| } |
| |
| template<> |
| struct at_impl< aux::vector_tag<0> > |
| { |
| template< typename V_, typename N > struct apply |
| { |
| typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> |
| ::template result_<V_>::type type; |
| }; |
| }; |
| |
| template<> |
| struct size_impl< aux::vector_tag<0> > |
| { |
| template< typename Vector > struct apply |
| : long_<0> |
| { |
| }; |
| }; |
| |
| template<> |
| struct O1_size_impl< aux::vector_tag<0> > |
| : size_impl< aux::vector_tag<0> > |
| { |
| }; |
| |
| template<> |
| struct clear_impl< aux::vector_tag<0> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector0<> type; |
| }; |
| }; |
| |
| template< |
| typename T0 |
| > |
| struct vector1 |
| { |
| typedef aux::vector_tag<1> tag; |
| typedef vector1 type; |
| typedef T0 item0; |
| typedef void_ item1; |
| typedef T0 back; |
| typedef v_iter< type,0 > begin; |
| typedef v_iter< type,1 > end; |
| }; |
| |
| template<> |
| struct push_front_impl< aux::vector_tag<0> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector1< |
| T |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_front_impl< aux::vector_tag<1> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector0< |
| |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct push_back_impl< aux::vector_tag<0> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector1< |
| |
| T |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_back_impl< aux::vector_tag<1> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector0< |
| |
| > type; |
| }; |
| }; |
| |
| namespace aux { |
| template<> struct v_at_impl<1> |
| { |
| template< typename V_ > struct result_ |
| { |
| typedef typename V_::item1 type; |
| }; |
| }; |
| |
| } |
| |
| template<> |
| struct at_impl< aux::vector_tag<1> > |
| { |
| template< typename V_, typename N > struct apply |
| { |
| typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> |
| ::template result_<V_>::type type; |
| }; |
| }; |
| |
| template<> |
| struct front_impl< aux::vector_tag<1> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::item0 type; |
| }; |
| }; |
| |
| template<> |
| struct back_impl< aux::vector_tag<1> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::back type; |
| }; |
| }; |
| |
| template<> |
| struct empty_impl< aux::vector_tag<1> > |
| { |
| template< typename Vector > struct apply |
| : false_ |
| { |
| }; |
| }; |
| |
| template<> |
| struct size_impl< aux::vector_tag<1> > |
| { |
| template< typename Vector > struct apply |
| : long_<1> |
| { |
| }; |
| }; |
| |
| template<> |
| struct O1_size_impl< aux::vector_tag<1> > |
| : size_impl< aux::vector_tag<1> > |
| { |
| }; |
| |
| template<> |
| struct clear_impl< aux::vector_tag<1> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector0<> type; |
| }; |
| }; |
| |
| template< |
| typename T0, typename T1 |
| > |
| struct vector2 |
| { |
| typedef aux::vector_tag<2> tag; |
| typedef vector2 type; |
| typedef T0 item0; |
| typedef T1 item1; |
| |
| |
| typedef void_ item2; |
| typedef T1 back; |
| typedef v_iter< type,0 > begin; |
| typedef v_iter< type,2 > end; |
| }; |
| |
| template<> |
| struct push_front_impl< aux::vector_tag<1> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector2< |
| T |
| , |
| typename Vector::item0 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_front_impl< aux::vector_tag<2> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector1< |
| typename Vector::item1 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct push_back_impl< aux::vector_tag<1> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector2< |
| typename Vector::item0 |
| , |
| T |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_back_impl< aux::vector_tag<2> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector1< |
| typename Vector::item0 |
| > type; |
| }; |
| }; |
| |
| namespace aux { |
| template<> struct v_at_impl<2> |
| { |
| template< typename V_ > struct result_ |
| { |
| typedef typename V_::item2 type; |
| }; |
| }; |
| |
| } |
| |
| template<> |
| struct at_impl< aux::vector_tag<2> > |
| { |
| template< typename V_, typename N > struct apply |
| { |
| typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> |
| ::template result_<V_>::type type; |
| }; |
| }; |
| |
| template<> |
| struct front_impl< aux::vector_tag<2> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::item0 type; |
| }; |
| }; |
| |
| template<> |
| struct back_impl< aux::vector_tag<2> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::back type; |
| }; |
| }; |
| |
| template<> |
| struct empty_impl< aux::vector_tag<2> > |
| { |
| template< typename Vector > struct apply |
| : false_ |
| { |
| }; |
| }; |
| |
| template<> |
| struct size_impl< aux::vector_tag<2> > |
| { |
| template< typename Vector > struct apply |
| : long_<2> |
| { |
| }; |
| }; |
| |
| template<> |
| struct O1_size_impl< aux::vector_tag<2> > |
| : size_impl< aux::vector_tag<2> > |
| { |
| }; |
| |
| template<> |
| struct clear_impl< aux::vector_tag<2> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector0<> type; |
| }; |
| }; |
| |
| template< |
| typename T0, typename T1, typename T2 |
| > |
| struct vector3 |
| { |
| typedef aux::vector_tag<3> tag; |
| typedef vector3 type; |
| typedef T0 item0; |
| typedef T1 item1; |
| typedef T2 item2; |
| |
| |
| typedef void_ item3; |
| typedef T2 back; |
| typedef v_iter< type,0 > begin; |
| typedef v_iter< type,3 > end; |
| }; |
| |
| template<> |
| struct push_front_impl< aux::vector_tag<2> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector3< |
| T |
| , |
| typename Vector::item0, typename Vector::item1 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_front_impl< aux::vector_tag<3> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector2< |
| typename Vector::item1, typename Vector::item2 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct push_back_impl< aux::vector_tag<2> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector3< |
| typename Vector::item0, typename Vector::item1 |
| , |
| T |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_back_impl< aux::vector_tag<3> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector2< |
| typename Vector::item0, typename Vector::item1 |
| > type; |
| }; |
| }; |
| |
| namespace aux { |
| template<> struct v_at_impl<3> |
| { |
| template< typename V_ > struct result_ |
| { |
| typedef typename V_::item3 type; |
| }; |
| }; |
| |
| } |
| |
| template<> |
| struct at_impl< aux::vector_tag<3> > |
| { |
| template< typename V_, typename N > struct apply |
| { |
| typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> |
| ::template result_<V_>::type type; |
| }; |
| }; |
| |
| template<> |
| struct front_impl< aux::vector_tag<3> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::item0 type; |
| }; |
| }; |
| |
| template<> |
| struct back_impl< aux::vector_tag<3> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::back type; |
| }; |
| }; |
| |
| template<> |
| struct empty_impl< aux::vector_tag<3> > |
| { |
| template< typename Vector > struct apply |
| : false_ |
| { |
| }; |
| }; |
| |
| template<> |
| struct size_impl< aux::vector_tag<3> > |
| { |
| template< typename Vector > struct apply |
| : long_<3> |
| { |
| }; |
| }; |
| |
| template<> |
| struct O1_size_impl< aux::vector_tag<3> > |
| : size_impl< aux::vector_tag<3> > |
| { |
| }; |
| |
| template<> |
| struct clear_impl< aux::vector_tag<3> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector0<> type; |
| }; |
| }; |
| |
| template< |
| typename T0, typename T1, typename T2, typename T3 |
| > |
| struct vector4 |
| { |
| typedef aux::vector_tag<4> tag; |
| typedef vector4 type; |
| typedef T0 item0; |
| typedef T1 item1; |
| typedef T2 item2; |
| typedef T3 item3; |
| |
| |
| typedef void_ item4; |
| typedef T3 back; |
| typedef v_iter< type,0 > begin; |
| typedef v_iter< type,4 > end; |
| }; |
| |
| template<> |
| struct push_front_impl< aux::vector_tag<3> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector4< |
| T |
| , |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_front_impl< aux::vector_tag<4> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector3< |
| typename Vector::item1, typename Vector::item2 |
| , typename Vector::item3 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct push_back_impl< aux::vector_tag<3> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector4< |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2 |
| , |
| T |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_back_impl< aux::vector_tag<4> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector3< |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2 |
| > type; |
| }; |
| }; |
| |
| namespace aux { |
| template<> struct v_at_impl<4> |
| { |
| template< typename V_ > struct result_ |
| { |
| typedef typename V_::item4 type; |
| }; |
| }; |
| |
| } |
| |
| template<> |
| struct at_impl< aux::vector_tag<4> > |
| { |
| template< typename V_, typename N > struct apply |
| { |
| typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> |
| ::template result_<V_>::type type; |
| }; |
| }; |
| |
| template<> |
| struct front_impl< aux::vector_tag<4> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::item0 type; |
| }; |
| }; |
| |
| template<> |
| struct back_impl< aux::vector_tag<4> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::back type; |
| }; |
| }; |
| |
| template<> |
| struct empty_impl< aux::vector_tag<4> > |
| { |
| template< typename Vector > struct apply |
| : false_ |
| { |
| }; |
| }; |
| |
| template<> |
| struct size_impl< aux::vector_tag<4> > |
| { |
| template< typename Vector > struct apply |
| : long_<4> |
| { |
| }; |
| }; |
| |
| template<> |
| struct O1_size_impl< aux::vector_tag<4> > |
| : size_impl< aux::vector_tag<4> > |
| { |
| }; |
| |
| template<> |
| struct clear_impl< aux::vector_tag<4> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector0<> type; |
| }; |
| }; |
| |
| template< |
| typename T0, typename T1, typename T2, typename T3, typename T4 |
| > |
| struct vector5 |
| { |
| typedef aux::vector_tag<5> tag; |
| typedef vector5 type; |
| typedef T0 item0; |
| typedef T1 item1; |
| typedef T2 item2; |
| typedef T3 item3; |
| typedef T4 item4; |
| |
| |
| typedef void_ item5; |
| typedef T4 back; |
| typedef v_iter< type,0 > begin; |
| typedef v_iter< type,5 > end; |
| }; |
| |
| template<> |
| struct push_front_impl< aux::vector_tag<4> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector5< |
| T |
| , |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_front_impl< aux::vector_tag<5> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector4< |
| typename Vector::item1, typename Vector::item2 |
| , typename Vector::item3, typename Vector::item4 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct push_back_impl< aux::vector_tag<4> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector5< |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| , |
| T |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_back_impl< aux::vector_tag<5> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector4< |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| > type; |
| }; |
| }; |
| |
| namespace aux { |
| template<> struct v_at_impl<5> |
| { |
| template< typename V_ > struct result_ |
| { |
| typedef typename V_::item5 type; |
| }; |
| }; |
| |
| } |
| |
| template<> |
| struct at_impl< aux::vector_tag<5> > |
| { |
| template< typename V_, typename N > struct apply |
| { |
| typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> |
| ::template result_<V_>::type type; |
| }; |
| }; |
| |
| template<> |
| struct front_impl< aux::vector_tag<5> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::item0 type; |
| }; |
| }; |
| |
| template<> |
| struct back_impl< aux::vector_tag<5> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::back type; |
| }; |
| }; |
| |
| template<> |
| struct empty_impl< aux::vector_tag<5> > |
| { |
| template< typename Vector > struct apply |
| : false_ |
| { |
| }; |
| }; |
| |
| template<> |
| struct size_impl< aux::vector_tag<5> > |
| { |
| template< typename Vector > struct apply |
| : long_<5> |
| { |
| }; |
| }; |
| |
| template<> |
| struct O1_size_impl< aux::vector_tag<5> > |
| : size_impl< aux::vector_tag<5> > |
| { |
| }; |
| |
| template<> |
| struct clear_impl< aux::vector_tag<5> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector0<> type; |
| }; |
| }; |
| |
| template< |
| typename T0, typename T1, typename T2, typename T3, typename T4 |
| , typename T5 |
| > |
| struct vector6 |
| { |
| typedef aux::vector_tag<6> tag; |
| typedef vector6 type; |
| typedef T0 item0; |
| typedef T1 item1; |
| typedef T2 item2; |
| typedef T3 item3; |
| typedef T4 item4; |
| typedef T5 item5; |
| |
| |
| typedef void_ item6; |
| typedef T5 back; |
| typedef v_iter< type,0 > begin; |
| typedef v_iter< type,6 > end; |
| }; |
| |
| template<> |
| struct push_front_impl< aux::vector_tag<5> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector6< |
| T |
| , |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| , typename Vector::item4 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_front_impl< aux::vector_tag<6> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector5< |
| typename Vector::item1, typename Vector::item2 |
| , typename Vector::item3, typename Vector::item4 |
| , typename Vector::item5 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct push_back_impl< aux::vector_tag<5> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector6< |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| , typename Vector::item4 |
| , |
| T |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_back_impl< aux::vector_tag<6> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector5< |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| , typename Vector::item4 |
| > type; |
| }; |
| }; |
| |
| namespace aux { |
| template<> struct v_at_impl<6> |
| { |
| template< typename V_ > struct result_ |
| { |
| typedef typename V_::item6 type; |
| }; |
| }; |
| |
| } |
| |
| template<> |
| struct at_impl< aux::vector_tag<6> > |
| { |
| template< typename V_, typename N > struct apply |
| { |
| typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> |
| ::template result_<V_>::type type; |
| }; |
| }; |
| |
| template<> |
| struct front_impl< aux::vector_tag<6> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::item0 type; |
| }; |
| }; |
| |
| template<> |
| struct back_impl< aux::vector_tag<6> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::back type; |
| }; |
| }; |
| |
| template<> |
| struct empty_impl< aux::vector_tag<6> > |
| { |
| template< typename Vector > struct apply |
| : false_ |
| { |
| }; |
| }; |
| |
| template<> |
| struct size_impl< aux::vector_tag<6> > |
| { |
| template< typename Vector > struct apply |
| : long_<6> |
| { |
| }; |
| }; |
| |
| template<> |
| struct O1_size_impl< aux::vector_tag<6> > |
| : size_impl< aux::vector_tag<6> > |
| { |
| }; |
| |
| template<> |
| struct clear_impl< aux::vector_tag<6> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector0<> type; |
| }; |
| }; |
| |
| template< |
| typename T0, typename T1, typename T2, typename T3, typename T4 |
| , typename T5, typename T6 |
| > |
| struct vector7 |
| { |
| typedef aux::vector_tag<7> tag; |
| typedef vector7 type; |
| typedef T0 item0; |
| typedef T1 item1; |
| typedef T2 item2; |
| typedef T3 item3; |
| typedef T4 item4; |
| typedef T5 item5; |
| typedef T6 item6; |
| |
| |
| typedef void_ item7; |
| typedef T6 back; |
| typedef v_iter< type,0 > begin; |
| typedef v_iter< type,7 > end; |
| }; |
| |
| template<> |
| struct push_front_impl< aux::vector_tag<6> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector7< |
| T |
| , |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| , typename Vector::item4, typename Vector::item5 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_front_impl< aux::vector_tag<7> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector6< |
| typename Vector::item1, typename Vector::item2 |
| , typename Vector::item3, typename Vector::item4 |
| , typename Vector::item5, typename Vector::item6 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct push_back_impl< aux::vector_tag<6> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector7< |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| , typename Vector::item4, typename Vector::item5 |
| , |
| T |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_back_impl< aux::vector_tag<7> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector6< |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| , typename Vector::item4, typename Vector::item5 |
| > type; |
| }; |
| }; |
| |
| namespace aux { |
| template<> struct v_at_impl<7> |
| { |
| template< typename V_ > struct result_ |
| { |
| typedef typename V_::item7 type; |
| }; |
| }; |
| |
| } |
| |
| template<> |
| struct at_impl< aux::vector_tag<7> > |
| { |
| template< typename V_, typename N > struct apply |
| { |
| typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> |
| ::template result_<V_>::type type; |
| }; |
| }; |
| |
| template<> |
| struct front_impl< aux::vector_tag<7> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::item0 type; |
| }; |
| }; |
| |
| template<> |
| struct back_impl< aux::vector_tag<7> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::back type; |
| }; |
| }; |
| |
| template<> |
| struct empty_impl< aux::vector_tag<7> > |
| { |
| template< typename Vector > struct apply |
| : false_ |
| { |
| }; |
| }; |
| |
| template<> |
| struct size_impl< aux::vector_tag<7> > |
| { |
| template< typename Vector > struct apply |
| : long_<7> |
| { |
| }; |
| }; |
| |
| template<> |
| struct O1_size_impl< aux::vector_tag<7> > |
| : size_impl< aux::vector_tag<7> > |
| { |
| }; |
| |
| template<> |
| struct clear_impl< aux::vector_tag<7> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector0<> type; |
| }; |
| }; |
| |
| template< |
| typename T0, typename T1, typename T2, typename T3, typename T4 |
| , typename T5, typename T6, typename T7 |
| > |
| struct vector8 |
| { |
| typedef aux::vector_tag<8> tag; |
| typedef vector8 type; |
| typedef T0 item0; |
| typedef T1 item1; |
| typedef T2 item2; |
| typedef T3 item3; |
| typedef T4 item4; |
| typedef T5 item5; |
| typedef T6 item6; |
| typedef T7 item7; |
| |
| |
| typedef void_ item8; |
| typedef T7 back; |
| typedef v_iter< type,0 > begin; |
| typedef v_iter< type,8 > end; |
| }; |
| |
| template<> |
| struct push_front_impl< aux::vector_tag<7> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector8< |
| T |
| , |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| , typename Vector::item4, typename Vector::item5 |
| , typename Vector::item6 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_front_impl< aux::vector_tag<8> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector7< |
| typename Vector::item1, typename Vector::item2 |
| , typename Vector::item3, typename Vector::item4 |
| , typename Vector::item5, typename Vector::item6 |
| , typename Vector::item7 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct push_back_impl< aux::vector_tag<7> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector8< |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| , typename Vector::item4, typename Vector::item5 |
| , typename Vector::item6 |
| , |
| T |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_back_impl< aux::vector_tag<8> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector7< |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| , typename Vector::item4, typename Vector::item5 |
| , typename Vector::item6 |
| > type; |
| }; |
| }; |
| |
| namespace aux { |
| template<> struct v_at_impl<8> |
| { |
| template< typename V_ > struct result_ |
| { |
| typedef typename V_::item8 type; |
| }; |
| }; |
| |
| } |
| |
| template<> |
| struct at_impl< aux::vector_tag<8> > |
| { |
| template< typename V_, typename N > struct apply |
| { |
| typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> |
| ::template result_<V_>::type type; |
| }; |
| }; |
| |
| template<> |
| struct front_impl< aux::vector_tag<8> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::item0 type; |
| }; |
| }; |
| |
| template<> |
| struct back_impl< aux::vector_tag<8> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::back type; |
| }; |
| }; |
| |
| template<> |
| struct empty_impl< aux::vector_tag<8> > |
| { |
| template< typename Vector > struct apply |
| : false_ |
| { |
| }; |
| }; |
| |
| template<> |
| struct size_impl< aux::vector_tag<8> > |
| { |
| template< typename Vector > struct apply |
| : long_<8> |
| { |
| }; |
| }; |
| |
| template<> |
| struct O1_size_impl< aux::vector_tag<8> > |
| : size_impl< aux::vector_tag<8> > |
| { |
| }; |
| |
| template<> |
| struct clear_impl< aux::vector_tag<8> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector0<> type; |
| }; |
| }; |
| |
| template< |
| typename T0, typename T1, typename T2, typename T3, typename T4 |
| , typename T5, typename T6, typename T7, typename T8 |
| > |
| struct vector9 |
| { |
| typedef aux::vector_tag<9> tag; |
| typedef vector9 type; |
| typedef T0 item0; |
| typedef T1 item1; |
| typedef T2 item2; |
| typedef T3 item3; |
| typedef T4 item4; |
| typedef T5 item5; |
| typedef T6 item6; |
| typedef T7 item7; |
| typedef T8 item8; |
| |
| |
| typedef void_ item9; |
| typedef T8 back; |
| typedef v_iter< type,0 > begin; |
| typedef v_iter< type,9 > end; |
| }; |
| |
| template<> |
| struct push_front_impl< aux::vector_tag<8> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector9< |
| T |
| , |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| , typename Vector::item4, typename Vector::item5 |
| , typename Vector::item6, typename Vector::item7 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_front_impl< aux::vector_tag<9> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector8< |
| typename Vector::item1, typename Vector::item2 |
| , typename Vector::item3, typename Vector::item4 |
| , typename Vector::item5, typename Vector::item6 |
| , typename Vector::item7, typename Vector::item8 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct push_back_impl< aux::vector_tag<8> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector9< |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| , typename Vector::item4, typename Vector::item5 |
| , typename Vector::item6, typename Vector::item7 |
| , |
| T |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_back_impl< aux::vector_tag<9> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector8< |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| , typename Vector::item4, typename Vector::item5 |
| , typename Vector::item6, typename Vector::item7 |
| > type; |
| }; |
| }; |
| |
| namespace aux { |
| template<> struct v_at_impl<9> |
| { |
| template< typename V_ > struct result_ |
| { |
| typedef typename V_::item9 type; |
| }; |
| }; |
| |
| } |
| |
| template<> |
| struct at_impl< aux::vector_tag<9> > |
| { |
| template< typename V_, typename N > struct apply |
| { |
| typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> |
| ::template result_<V_>::type type; |
| }; |
| }; |
| |
| template<> |
| struct front_impl< aux::vector_tag<9> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::item0 type; |
| }; |
| }; |
| |
| template<> |
| struct back_impl< aux::vector_tag<9> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::back type; |
| }; |
| }; |
| |
| template<> |
| struct empty_impl< aux::vector_tag<9> > |
| { |
| template< typename Vector > struct apply |
| : false_ |
| { |
| }; |
| }; |
| |
| template<> |
| struct size_impl< aux::vector_tag<9> > |
| { |
| template< typename Vector > struct apply |
| : long_<9> |
| { |
| }; |
| }; |
| |
| template<> |
| struct O1_size_impl< aux::vector_tag<9> > |
| : size_impl< aux::vector_tag<9> > |
| { |
| }; |
| |
| template<> |
| struct clear_impl< aux::vector_tag<9> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector0<> type; |
| }; |
| }; |
| |
| template< |
| typename T0, typename T1, typename T2, typename T3, typename T4 |
| , typename T5, typename T6, typename T7, typename T8, typename T9 |
| > |
| struct vector10 |
| { |
| typedef aux::vector_tag<10> tag; |
| typedef vector10 type; |
| typedef T0 item0; |
| typedef T1 item1; |
| typedef T2 item2; |
| typedef T3 item3; |
| typedef T4 item4; |
| typedef T5 item5; |
| typedef T6 item6; |
| typedef T7 item7; |
| typedef T8 item8; |
| typedef T9 item9; |
| |
| |
| typedef void_ item10; |
| typedef T9 back; |
| typedef v_iter< type,0 > begin; |
| typedef v_iter< type,10 > end; |
| }; |
| |
| template<> |
| struct push_front_impl< aux::vector_tag<9> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector10< |
| T |
| , |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| , typename Vector::item4, typename Vector::item5 |
| , typename Vector::item6, typename Vector::item7 |
| , typename Vector::item8 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_front_impl< aux::vector_tag<10> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector9< |
| typename Vector::item1, typename Vector::item2 |
| , typename Vector::item3, typename Vector::item4 |
| , typename Vector::item5, typename Vector::item6 |
| , typename Vector::item7, typename Vector::item8 |
| , typename Vector::item9 |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct push_back_impl< aux::vector_tag<9> > |
| { |
| template< typename Vector, typename T > struct apply |
| { |
| typedef vector10< |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| , typename Vector::item4, typename Vector::item5 |
| , typename Vector::item6, typename Vector::item7 |
| , typename Vector::item8 |
| , |
| T |
| > type; |
| }; |
| }; |
| |
| template<> |
| struct pop_back_impl< aux::vector_tag<10> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector9< |
| typename Vector::item0, typename Vector::item1 |
| , typename Vector::item2, typename Vector::item3 |
| , typename Vector::item4, typename Vector::item5 |
| , typename Vector::item6, typename Vector::item7 |
| , typename Vector::item8 |
| > type; |
| }; |
| }; |
| |
| namespace aux { |
| template<> struct v_at_impl<10> |
| { |
| template< typename V_ > struct result_ |
| { |
| typedef typename V_::item10 type; |
| }; |
| }; |
| |
| } |
| |
| template<> |
| struct at_impl< aux::vector_tag<10> > |
| { |
| template< typename V_, typename N > struct apply |
| { |
| typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> |
| ::template result_<V_>::type type; |
| }; |
| }; |
| |
| template<> |
| struct front_impl< aux::vector_tag<10> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::item0 type; |
| }; |
| }; |
| |
| template<> |
| struct back_impl< aux::vector_tag<10> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef typename Vector::back type; |
| }; |
| }; |
| |
| template<> |
| struct empty_impl< aux::vector_tag<10> > |
| { |
| template< typename Vector > struct apply |
| : false_ |
| { |
| }; |
| }; |
| |
| template<> |
| struct size_impl< aux::vector_tag<10> > |
| { |
| template< typename Vector > struct apply |
| : long_<10> |
| { |
| }; |
| }; |
| |
| template<> |
| struct O1_size_impl< aux::vector_tag<10> > |
| : size_impl< aux::vector_tag<10> > |
| { |
| }; |
| |
| template<> |
| struct clear_impl< aux::vector_tag<10> > |
| { |
| template< typename Vector > struct apply |
| { |
| typedef vector0<> type; |
| }; |
| }; |
| |
| }} |