10 #ifndef MPL_SEQUENCE_HPP
11 #define MPL_SEQUENCE_HPP
13 #include <boost/mpl/int.hpp>
14 #include <boost/mpl/reverse.hpp>
25 template<
int c,
int end>
26 struct exit_impl : boost::mpl::equal_to<boost::mpl::int_<c>,boost::mpl::int_<end>>
37 template<
class H,
int c ,
int end,
bool exit>
41 typedef typename boost::mpl::push_back<H,boost::mpl::int_<c>> v;
42 typedef typename to_variadic_impl<v,c+1,end,exit_::value>::type type;
47 template<
template<
typename>
class H,
typename F,
typename L>
53 template<
typename Seq>
56 typedef typename boost::mpl::begin<Seq>::type first_;
57 typedef typename boost::mpl::end<Seq>::type last_;
78 template<
unsigned int N,
unsigned int M>
85 typedef boost::mpl::vector<boost::mpl::int_<N>>
vi;
88 typedef typename to_variadic_impl<vi,N+1,M,exit_::value >::type
type;
Recursive specialization of to_variadic.
boost::mpl::vector< boost::mpl::int_< N > > vi
starting vector type
exit_impl< N, M >::type exit_
end condition
to_variadic_impl< vi, N+1, M, exit_::value >::type type
generate the boost::fusion::vector apply H on each term
[v_transform metafunction]