File indexing completed on 2025-01-18 09:41:16
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_backward;
0015 template<>
0016 struct advance_backward<0>
0017 {
0018 template< typename Iterator > struct apply
0019 {
0020 typedef Iterator iter0;
0021 typedef iter0 type;
0022 };
0023
0024
0025 template<> struct apply<int>
0026 {
0027 typedef int type;
0028 };
0029
0030 };
0031
0032 template<>
0033 struct advance_backward<1>
0034 {
0035 template< typename Iterator > struct apply
0036 {
0037 typedef Iterator iter0;
0038 typedef typename prior<iter0>::type iter1;
0039 typedef iter1 type;
0040 };
0041
0042
0043 template<> struct apply<int>
0044 {
0045 typedef int type;
0046 };
0047
0048 };
0049
0050 template<>
0051 struct advance_backward<2>
0052 {
0053 template< typename Iterator > struct apply
0054 {
0055 typedef Iterator iter0;
0056 typedef typename prior<iter0>::type iter1;
0057 typedef typename prior<iter1>::type iter2;
0058 typedef iter2 type;
0059 };
0060
0061
0062 template<> struct apply<int>
0063 {
0064 typedef int type;
0065 };
0066
0067 };
0068
0069 template<>
0070 struct advance_backward<3>
0071 {
0072 template< typename Iterator > struct apply
0073 {
0074 typedef Iterator iter0;
0075 typedef typename prior<iter0>::type iter1;
0076 typedef typename prior<iter1>::type iter2;
0077 typedef typename prior<iter2>::type iter3;
0078 typedef iter3 type;
0079 };
0080
0081
0082 template<> struct apply<int>
0083 {
0084 typedef int type;
0085 };
0086
0087 };
0088
0089 template<>
0090 struct advance_backward<4>
0091 {
0092 template< typename Iterator > struct apply
0093 {
0094 typedef Iterator iter0;
0095 typedef typename prior<iter0>::type iter1;
0096 typedef typename prior<iter1>::type iter2;
0097 typedef typename prior<iter2>::type iter3;
0098 typedef typename prior<iter3>::type iter4;
0099 typedef iter4 type;
0100 };
0101
0102
0103 template<> struct apply<int>
0104 {
0105 typedef int type;
0106 };
0107
0108 };
0109
0110 template< long N >
0111 struct advance_backward
0112 {
0113 template< typename Iterator > struct apply
0114 {
0115 typedef typename apply_wrap1<
0116 advance_backward<4>
0117 , Iterator
0118 >::type chunk_result_;
0119
0120 typedef typename apply_wrap1<
0121 advance_backward<(
0122 (N - 4) < 0
0123 ? 0
0124 : N - 4
0125 )>
0126 , chunk_result_
0127 >::type type;
0128 };
0129 };
0130
0131 }}}
0132