1529 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			1529 lines
		
	
	
		
			31 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 { | ||
|  | 
 | ||
|  | 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; | ||
|  |     }; | ||
|  | }; | ||
|  | 
 | ||
|  | }} |