830 lines
19 KiB
Plaintext
830 lines
19 KiB
Plaintext
|
|
// 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 "boost/mpl/vector/vector10.hpp" header
|
|
// -- DO NOT modify by hand!
|
|
|
|
namespace boost { namespace mpl {
|
|
|
|
template< typename V >
|
|
struct v_at< V,0 >
|
|
{
|
|
typedef typename V::item0 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;
|
|
};
|
|
};
|
|
|
|
template< typename V >
|
|
struct v_at< V,1 >
|
|
{
|
|
typedef typename V::item1 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;
|
|
};
|
|
};
|
|
|
|
template< typename V >
|
|
struct v_at< V,2 >
|
|
{
|
|
typedef typename V::item2 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;
|
|
};
|
|
};
|
|
|
|
template< typename V >
|
|
struct v_at< V,3 >
|
|
{
|
|
typedef typename V::item3 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;
|
|
};
|
|
};
|
|
|
|
template< typename V >
|
|
struct v_at< V,4 >
|
|
{
|
|
typedef typename V::item4 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;
|
|
};
|
|
};
|
|
|
|
template< typename V >
|
|
struct v_at< V,5 >
|
|
{
|
|
typedef typename V::item5 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;
|
|
};
|
|
};
|
|
|
|
template< typename V >
|
|
struct v_at< V,6 >
|
|
{
|
|
typedef typename V::item6 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;
|
|
};
|
|
};
|
|
|
|
template< typename V >
|
|
struct v_at< V,7 >
|
|
{
|
|
typedef typename V::item7 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;
|
|
};
|
|
};
|
|
|
|
template< typename V >
|
|
struct v_at< V,8 >
|
|
{
|
|
typedef typename V::item8 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;
|
|
};
|
|
};
|
|
|
|
template< typename V >
|
|
struct v_at< V,9 >
|
|
{
|
|
typedef typename V::item9 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;
|
|
};
|
|
};
|
|
|
|
template< typename V >
|
|
struct v_at< V,10 >
|
|
{
|
|
typedef typename V::item10 type;
|
|
};
|
|
|
|
}}
|