File indexing completed on 2025-01-18 09:41:20
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 namespace boost { namespace mpl { namespace aux {
0013
0014 template< long N > struct advance_forward;
0015 template<>
0016 struct advance_forward<0>
0017 {
0018 template< typename Iterator > struct apply
0019 {
0020 typedef Iterator iter0;
0021 typedef iter0 type;
0022 };
0023 };
0024
0025 template<>
0026 struct advance_forward<1>
0027 {
0028 template< typename Iterator > struct apply
0029 {
0030 typedef Iterator iter0;
0031 typedef typename next<iter0>::type iter1;
0032 typedef iter1 type;
0033 };
0034 };
0035
0036 template<>
0037 struct advance_forward<2>
0038 {
0039 template< typename Iterator > struct apply
0040 {
0041 typedef Iterator iter0;
0042 typedef typename next<iter0>::type iter1;
0043 typedef typename next<iter1>::type iter2;
0044 typedef iter2 type;
0045 };
0046 };
0047
0048 template<>
0049 struct advance_forward<3>
0050 {
0051 template< typename Iterator > struct apply
0052 {
0053 typedef Iterator iter0;
0054 typedef typename next<iter0>::type iter1;
0055 typedef typename next<iter1>::type iter2;
0056 typedef typename next<iter2>::type iter3;
0057 typedef iter3 type;
0058 };
0059 };
0060
0061 template<>
0062 struct advance_forward<4>
0063 {
0064 template< typename Iterator > struct apply
0065 {
0066 typedef Iterator iter0;
0067 typedef typename next<iter0>::type iter1;
0068 typedef typename next<iter1>::type iter2;
0069 typedef typename next<iter2>::type iter3;
0070 typedef typename next<iter3>::type iter4;
0071 typedef iter4 type;
0072 };
0073 };
0074
0075 template< long N >
0076 struct advance_forward
0077 {
0078 template< typename Iterator > struct apply
0079 {
0080 typedef typename apply_wrap1<
0081 advance_forward<4>
0082 , Iterator
0083 >::type chunk_result_;
0084
0085 typedef typename apply_wrap1<
0086 advance_forward<(
0087 (N - 4) < 0
0088 ? 0
0089 : N - 4
0090 )>
0091 , chunk_result_
0092 >::type type;
0093 };
0094 };
0095
0096 }}}
0097