]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/mpl/include/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / mpl / include / boost / mpl / aux_ / preprocessed / msvc60 / advance_forward.hpp
CommitLineData
7c673cae
FG
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
12namespace boost { namespace mpl { namespace aux {
13
14template< long N > struct advance_forward;
15template<>
16struct 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
32template<>
33struct 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
50template<>
51struct 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
69template<>
70struct 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
89template<>
90struct 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
110template< long N >
111struct 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