~ubuntu-branches/ubuntu/wily/davix/wily

« back to all changes in this revision

Viewing changes to deps/boost_intern/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp

  • Committer: Package Import Robot
  • Author(s): Mattias Ellert
  • Date: 2015-07-31 13:17:55 UTC
  • mfrom: (5.1.3 sid)
  • Revision ID: package-import@ubuntu.com-20150731131755-mizprbmn7ogv33te
Tags: 0.4.1-1
* Update to version 0.4.1
* Implement Multi-Arch support

Show diffs side-by-side

added added

removed removed

Lines of Context:
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_/reverse_iter_fold_impl.hpp" header
10
 
// -- DO NOT modify by hand!
11
 
 
12
 
namespace boost { namespace mpl { namespace aux {
13
 
 
14
 
/// forward declaration
15
 
 
16
 
template<
17
 
      long N
18
 
    , typename First
19
 
    , typename Last
20
 
    , typename State
21
 
    , typename BackwardOp
22
 
    , typename ForwardOp
23
 
    >
24
 
struct reverse_iter_fold_impl;
25
 
 
26
 
template< long N >
27
 
struct reverse_iter_fold_chunk;
28
 
 
29
 
template<> struct reverse_iter_fold_chunk<0>
30
 
{
31
 
    template<
32
 
          typename First
33
 
        , typename Last
34
 
        , typename State
35
 
        , typename BackwardOp
36
 
        , typename ForwardOp
37
 
        >
38
 
    struct result_
39
 
    {
40
 
        typedef First iter0;
41
 
        typedef State fwd_state0;
42
 
        typedef fwd_state0 bkwd_state0;
43
 
        typedef bkwd_state0 state;
44
 
        typedef iter0 iterator;
45
 
    };
46
 
};
47
 
 
48
 
template<> struct reverse_iter_fold_chunk<1>
49
 
{
50
 
    template<
51
 
          typename First
52
 
        , typename Last
53
 
        , typename State
54
 
        , typename BackwardOp
55
 
        , typename ForwardOp
56
 
        >
57
 
    struct result_
58
 
    {
59
 
        typedef First iter0;
60
 
        typedef State fwd_state0;
61
 
        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
62
 
        typedef typename mpl::next<iter0>::type iter1;
63
 
        
64
 
 
65
 
        typedef fwd_state1 bkwd_state1;
66
 
        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
67
 
        typedef bkwd_state0 state;
68
 
        typedef iter1 iterator;
69
 
    };
70
 
};
71
 
 
72
 
template<> struct reverse_iter_fold_chunk<2>
73
 
{
74
 
    template<
75
 
          typename First
76
 
        , typename Last
77
 
        , typename State
78
 
        , typename BackwardOp
79
 
        , typename ForwardOp
80
 
        >
81
 
    struct result_
82
 
    {
83
 
        typedef First iter0;
84
 
        typedef State fwd_state0;
85
 
        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
86
 
        typedef typename mpl::next<iter0>::type iter1;
87
 
        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
88
 
        typedef typename mpl::next<iter1>::type iter2;
89
 
        
90
 
 
91
 
        typedef fwd_state2 bkwd_state2;
92
 
        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
93
 
        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
94
 
        
95
 
 
96
 
        typedef bkwd_state0 state;
97
 
        typedef iter2 iterator;
98
 
    };
99
 
};
100
 
 
101
 
template<> struct reverse_iter_fold_chunk<3>
102
 
{
103
 
    template<
104
 
          typename First
105
 
        , typename Last
106
 
        , typename State
107
 
        , typename BackwardOp
108
 
        , typename ForwardOp
109
 
        >
110
 
    struct result_
111
 
    {
112
 
        typedef First iter0;
113
 
        typedef State fwd_state0;
114
 
        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
115
 
        typedef typename mpl::next<iter0>::type iter1;
116
 
        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
117
 
        typedef typename mpl::next<iter1>::type iter2;
118
 
        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
119
 
        typedef typename mpl::next<iter2>::type iter3;
120
 
        
121
 
 
122
 
        typedef fwd_state3 bkwd_state3;
123
 
        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
124
 
        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
125
 
        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
126
 
        
127
 
 
128
 
        typedef bkwd_state0 state;
129
 
        typedef iter3 iterator;
130
 
    };
131
 
};
132
 
 
133
 
template<> struct reverse_iter_fold_chunk<4>
134
 
{
135
 
    template<
136
 
          typename First
137
 
        , typename Last
138
 
        , typename State
139
 
        , typename BackwardOp
140
 
        , typename ForwardOp
141
 
        >
142
 
    struct result_
143
 
    {
144
 
        typedef First iter0;
145
 
        typedef State fwd_state0;
146
 
        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
147
 
        typedef typename mpl::next<iter0>::type iter1;
148
 
        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
149
 
        typedef typename mpl::next<iter1>::type iter2;
150
 
        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
151
 
        typedef typename mpl::next<iter2>::type iter3;
152
 
        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
153
 
        typedef typename mpl::next<iter3>::type iter4;
154
 
        
155
 
 
156
 
        typedef fwd_state4 bkwd_state4;
157
 
        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
158
 
        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
159
 
        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
160
 
        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
161
 
        
162
 
 
163
 
        typedef bkwd_state0 state;
164
 
        typedef iter4 iterator;
165
 
    };
166
 
};
167
 
 
168
 
template< long N >
169
 
struct reverse_iter_fold_chunk
170
 
{
171
 
    template<
172
 
          typename First
173
 
        , typename Last
174
 
        , typename State
175
 
        , typename BackwardOp
176
 
        , typename ForwardOp
177
 
        >
178
 
    struct result_
179
 
    {
180
 
        typedef First iter0;
181
 
        typedef State fwd_state0;
182
 
        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
183
 
        typedef typename mpl::next<iter0>::type iter1;
184
 
        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
185
 
        typedef typename mpl::next<iter1>::type iter2;
186
 
        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
187
 
        typedef typename mpl::next<iter2>::type iter3;
188
 
        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
189
 
        typedef typename mpl::next<iter3>::type iter4;
190
 
        
191
 
 
192
 
        typedef reverse_iter_fold_impl<
193
 
              ( (N - 4) < 0 ? 0 : N - 4 )
194
 
            , iter4
195
 
            , Last
196
 
            , fwd_state4
197
 
            , BackwardOp
198
 
            , ForwardOp
199
 
            > nested_chunk;
200
 
 
201
 
        typedef typename nested_chunk::state bkwd_state4;
202
 
        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
203
 
        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
204
 
        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
205
 
        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
206
 
        
207
 
 
208
 
        typedef bkwd_state0 state;
209
 
        typedef typename nested_chunk::iterator iterator;
210
 
    };
211
 
};
212
 
 
213
 
template<
214
 
      typename First
215
 
    , typename Last
216
 
    , typename State
217
 
    , typename BackwardOp
218
 
    , typename ForwardOp
219
 
    >
220
 
struct reverse_iter_fold_step;
221
 
 
222
 
template<
223
 
      typename Last
224
 
    , typename State
225
 
    >
226
 
struct reverse_iter_fold_null_step
227
 
{
228
 
    typedef Last iterator;
229
 
    typedef State state;
230
 
};
231
 
 
232
 
template<>
233
 
struct reverse_iter_fold_chunk< -1 >
234
 
{
235
 
    template<
236
 
          typename First
237
 
        , typename Last
238
 
        , typename State
239
 
        , typename BackwardOp
240
 
        , typename ForwardOp
241
 
        >
242
 
    struct result_
243
 
    {
244
 
        typedef typename if_<
245
 
              typename is_same< First,Last >::type
246
 
            , reverse_iter_fold_null_step< Last,State >
247
 
            , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp >
248
 
            >::type res_;
249
 
 
250
 
        typedef typename res_::state state;
251
 
        typedef typename res_::iterator iterator;
252
 
    };
253
 
};
254
 
 
255
 
template<
256
 
      typename First
257
 
    , typename Last
258
 
    , typename State
259
 
    , typename BackwardOp
260
 
    , typename ForwardOp
261
 
    >
262
 
struct reverse_iter_fold_step
263
 
{
264
 
    typedef reverse_iter_fold_chunk< -1 >::template result_<
265
 
          typename mpl::next<First>::type
266
 
        , Last
267
 
        , typename apply2< ForwardOp,State,First >::type
268
 
        , BackwardOp
269
 
        , ForwardOp
270
 
        > nested_step;
271
 
 
272
 
    typedef typename apply2<
273
 
          BackwardOp
274
 
        , typename nested_step::state
275
 
        , First
276
 
        >::type state;
277
 
 
278
 
    typedef typename nested_step::iterator iterator;
279
 
};
280
 
 
281
 
template<
282
 
      long N
283
 
    , typename First
284
 
    , typename Last
285
 
    , typename State
286
 
    , typename BackwardOp
287
 
    , typename ForwardOp
288
 
    >
289
 
struct reverse_iter_fold_impl
290
 
    : reverse_iter_fold_chunk<N>
291
 
        ::template result_< First,Last,State,BackwardOp,ForwardOp >
292
 
{
293
 
};
294
 
 
295
 
}}}