123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- namespace boost { namespace mpl { namespace aux {
- template< long N > struct advance_forward;
- template<>
- struct advance_forward<0>
- {
- template< typename Iterator > struct apply
- {
- typedef Iterator iter0;
- typedef iter0 type;
- };
-
- template<> struct apply<int>
- {
- typedef int type;
- };
- };
- template<>
- struct advance_forward<1>
- {
- template< typename Iterator > struct apply
- {
- typedef Iterator iter0;
- typedef typename next<iter0>::type iter1;
- typedef iter1 type;
- };
-
- template<> struct apply<int>
- {
- typedef int type;
- };
- };
- template<>
- struct advance_forward<2>
- {
- template< typename Iterator > struct apply
- {
- typedef Iterator iter0;
- typedef typename next<iter0>::type iter1;
- typedef typename next<iter1>::type iter2;
- typedef iter2 type;
- };
-
- template<> struct apply<int>
- {
- typedef int type;
- };
- };
- template<>
- struct advance_forward<3>
- {
- template< typename Iterator > struct apply
- {
- typedef Iterator iter0;
- typedef typename next<iter0>::type iter1;
- typedef typename next<iter1>::type iter2;
- typedef typename next<iter2>::type iter3;
- typedef iter3 type;
- };
-
- template<> struct apply<int>
- {
- typedef int type;
- };
- };
- template<>
- struct advance_forward<4>
- {
- template< typename Iterator > struct apply
- {
- typedef Iterator iter0;
- typedef typename next<iter0>::type iter1;
- typedef typename next<iter1>::type iter2;
- typedef typename next<iter2>::type iter3;
- typedef typename next<iter3>::type iter4;
- typedef iter4 type;
- };
-
- template<> struct apply<int>
- {
- typedef int type;
- };
- };
- template< long N >
- struct advance_forward
- {
- template< typename Iterator > struct apply
- {
- typedef typename apply_wrap1<
- advance_forward<4>
- , Iterator
- >::type chunk_result_;
- typedef typename apply_wrap1<
- advance_forward<(
- (N - 4) < 0
- ? 0
- : N - 4
- )>
- , chunk_result_
- >::type type;
- };
- };
- }}}
|