4 #if defined(BOOST_PP_IS_ITERATING)
25 #define i_ BOOST_PP_FRAME_ITERATION(1)
27 #if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
29 # define AUX778076_VECTOR_TAIL(vector, i_, T) \
30 BOOST_PP_CAT(vector,i_)< \
31 BOOST_PP_ENUM_PARAMS(i_, T) \
41 BOOST_PP_CAT(T,BOOST_PP_DEC(i_))
42 , AUX778076_VECTOR_TAIL(vector,BOOST_PP_DEC(i_),T)
49 # undef AUX778076_VECTOR_TAIL
51 #else // "brute force" implementation
60 typedef aux::vector_tag<i_>
tag;
63 # define AUX778076_VECTOR_ITEM(unused, i_, unused2) \
64 typedef BOOST_PP_CAT(T,i_) BOOST_PP_CAT(item,i_); \
68 # undef AUX778076_VECTOR_ITEM
73 typedef v_iter<type,0>
begin;
74 typedef v_iter<type,i_>
end;
78 struct push_front_impl< aux::vector_tag<BOOST_PP_DEC(i_)> >
80 template<
typename Vector,
typename T >
struct apply
91 struct pop_front_impl< aux::vector_tag<i_> >
93 template<
typename Vector >
struct apply
103 struct push_back_impl< aux::vector_tag<BOOST_PP_DEC(i_)> >
105 template<
typename Vector,
typename T >
struct apply
116 struct pop_back_impl< aux::vector_tag<i_> >
118 template<
typename Vector >
struct apply
128 # if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
129 && !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
131 template<
typename V >
140 template<>
struct v_at_impl<i_>
142 template<
typename V_ >
struct result_
150 struct at_impl< aux::vector_tag<i_> >
152 template<
typename V_,
typename N >
struct apply
161 struct front_impl< aux::vector_tag<i_> >
163 template<
typename Vector >
struct apply
165 typedef typename Vector::item0 type;
170 struct back_impl< aux::vector_tag<i_> >
172 template<
typename Vector >
struct apply
174 typedef typename Vector::back type;
179 struct empty_impl< aux::vector_tag<i_> >
181 template<
typename Vector >
struct apply
189 struct size_impl< aux::vector_tag<i_> >
191 template<
typename Vector >
struct apply
198 struct O1_size_impl< aux::vector_tag<i_> >
199 : size_impl< aux::vector_tag<i_> >
204 struct clear_impl< aux::vector_tag<i_> >
206 template<
typename Vector >
struct apply
212 # endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
214 #endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
218 #endif // BOOST_PP_IS_ITERATING