]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/mpl/include/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / mpl / include / boost / mpl / aux_ / preprocessed / msvc60 / advance_forward.hpp
1
2 // Copyright Aleksey Gurtovoy 2000-2004
3 //
4 // Distributed under the Boost Software License, Version 1.0.
5 // (See accompanying file LICENSE_1_0.txt or copy at
6 // http://www.boost.org/LICENSE_1_0.txt)
7 //
8
9 // Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header
10 // -- DO NOT modify by hand!
11
12 namespace boost { namespace mpl { namespace aux {
13
14 template< long N > struct advance_forward;
15 template<>
16 struct advance_forward<0>
17 {
18 template< typename Iterator > struct apply
19 {
20 typedef Iterator iter0;
21 typedef iter0 type;
22 };
23
24 /// ETI workaround
25 template<> struct apply<int>
26 {
27 typedef int type;
28 };
29
30 };
31
32 template<>
33 struct advance_forward<1>
34 {
35 template< typename Iterator > struct apply
36 {
37 typedef Iterator iter0;
38 typedef typename next<iter0>::type iter1;
39 typedef iter1 type;
40 };
41
42 /// ETI workaround
43 template<> struct apply<int>
44 {
45 typedef int type;
46 };
47
48 };
49
50 template<>
51 struct advance_forward<2>
52 {
53 template< typename Iterator > struct apply
54 {
55 typedef Iterator iter0;
56 typedef typename next<iter0>::type iter1;
57 typedef typename next<iter1>::type iter2;
58 typedef iter2 type;
59 };
60
61 /// ETI workaround
62 template<> struct apply<int>
63 {
64 typedef int type;
65 };
66
67 };
68
69 template<>
70 struct advance_forward<3>
71 {
72 template< typename Iterator > struct apply
73 {
74 typedef Iterator iter0;
75 typedef typename next<iter0>::type iter1;
76 typedef typename next<iter1>::type iter2;
77 typedef typename next<iter2>::type iter3;
78 typedef iter3 type;
79 };
80
81 /// ETI workaround
82 template<> struct apply<int>
83 {
84 typedef int type;
85 };
86
87 };
88
89 template<>
90 struct advance_forward<4>
91 {
92 template< typename Iterator > struct apply
93 {
94 typedef Iterator iter0;
95 typedef typename next<iter0>::type iter1;
96 typedef typename next<iter1>::type iter2;
97 typedef typename next<iter2>::type iter3;
98 typedef typename next<iter3>::type iter4;
99 typedef iter4 type;
100 };
101
102 /// ETI workaround
103 template<> struct apply<int>
104 {
105 typedef int type;
106 };
107
108 };
109
110 template< long N >
111 struct advance_forward
112 {
113 template< typename Iterator > struct apply
114 {
115 typedef typename apply_wrap1<
116 advance_forward<4>
117 , Iterator
118 >::type chunk_result_;
119
120 typedef typename apply_wrap1<
121 advance_forward<(
122 (N - 4) < 0
123 ? 0
124 : N - 4
125 )>
126 , chunk_result_
127 >::type type;
128 };
129 };
130
131 }}}
132