PageRenderTime 40ms CodeModel.GetById 13ms app.highlight 23ms RepoModel.GetById 1ms app.codeStats 0ms

/Src/Dependencies/Boost/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp

http://hadesmem.googlecode.com/
C++ Header | 456 lines | 371 code | 75 blank | 10 comment | 0 complexity | 9723bc6ab62e15614bfc7446e700415d MD5 | raw file
  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/apply_wrap.hpp" header
 10// -- DO NOT modify by hand!
 11
 12namespace boost { namespace mpl {
 13
 14template<
 15      int N, typename F
 16    >
 17struct apply_wrap_impl0;
 18
 19template<
 20      typename F
 21    >
 22struct apply_wrap_impl0<
 23          0
 24        , F
 25       
 26        >
 27{
 28    typedef typename F::template apply<
 29         
 30/// since the defaults are "lost", we have to pass *something* even for nullary
 31/// metafunction classes
 32        na
 33        > type;
 34};
 35
 36template<
 37      typename F
 38    >
 39struct apply_wrap_impl0<
 40          1
 41        , F
 42       
 43        >
 44{
 45    typedef typename F::template apply<
 46         
 47        na
 48        > type;
 49};
 50
 51template<
 52      typename F
 53    >
 54struct apply_wrap_impl0<
 55          2
 56        , F
 57       
 58        >
 59{
 60    typedef typename F::template apply<
 61         
 62        na, na
 63
 64        > type;
 65};
 66
 67template<
 68      typename F
 69    >
 70struct apply_wrap_impl0<
 71          3
 72        , F
 73       
 74        >
 75{
 76    typedef typename F::template apply<
 77         
 78        na, na, na
 79
 80        > type;
 81};
 82
 83template<
 84      typename F
 85    >
 86struct apply_wrap_impl0<
 87          4
 88        , F
 89       
 90        >
 91{
 92    typedef typename F::template apply<
 93         
 94        na, na, na, na
 95
 96        > type;
 97};
 98
 99template<
100      typename F
101    >
102struct apply_wrap_impl0<
103          5
104        , F
105       
106        >
107{
108    typedef typename F::template apply<
109         
110        na, na, na, na, na
111
112        > type;
113};
114
115template<
116      typename F
117    >
118struct apply_wrap0
119    : apply_wrap_impl0<
120          ::boost::mpl::aux::arity< F,0 >::value
121        , F
122       
123        >::type
124{
125};
126
127template<
128      int N, typename F, typename T1
129    >
130struct apply_wrap_impl1;
131
132template<
133      typename F, typename T1
134    >
135struct apply_wrap_impl1<
136          1
137        , F
138        , T1
139        >
140{
141    typedef typename F::template apply<
142          T1
143        > type;
144};
145
146template<
147      typename F, typename T1
148    >
149struct apply_wrap_impl1<
150          2
151        , F
152        , T1
153        >
154{
155    typedef typename F::template apply<
156          T1
157        , na
158
159        > type;
160};
161
162template<
163      typename F, typename T1
164    >
165struct apply_wrap_impl1<
166          3
167        , F
168        , T1
169        >
170{
171    typedef typename F::template apply<
172          T1
173        , na, na
174
175        > type;
176};
177
178template<
179      typename F, typename T1
180    >
181struct apply_wrap_impl1<
182          4
183        , F
184        , T1
185        >
186{
187    typedef typename F::template apply<
188          T1
189        , na, na, na
190
191        > type;
192};
193
194template<
195      typename F, typename T1
196    >
197struct apply_wrap_impl1<
198          5
199        , F
200        , T1
201        >
202{
203    typedef typename F::template apply<
204          T1
205        , na, na, na, na
206
207        > type;
208};
209
210template<
211      typename F, typename T1
212    >
213struct apply_wrap1
214    : apply_wrap_impl1<
215          ::boost::mpl::aux::arity< F,1 >::value
216        , F
217        , T1
218        >::type
219{
220};
221
222template<
223      int N, typename F, typename T1, typename T2
224    >
225struct apply_wrap_impl2;
226
227template<
228      typename F, typename T1, typename T2
229    >
230struct apply_wrap_impl2<
231          2
232        , F
233        , T1, T2
234        >
235{
236    typedef typename F::template apply<
237          T1, T2
238
239        > type;
240};
241
242template<
243      typename F, typename T1, typename T2
244    >
245struct apply_wrap_impl2<
246          3
247        , F
248        , T1, T2
249        >
250{
251    typedef typename F::template apply<
252          T1, T2
253
254        , na
255
256        > type;
257};
258
259template<
260      typename F, typename T1, typename T2
261    >
262struct apply_wrap_impl2<
263          4
264        , F
265        , T1, T2
266        >
267{
268    typedef typename F::template apply<
269          T1, T2
270
271        , na, na
272
273        > type;
274};
275
276template<
277      typename F, typename T1, typename T2
278    >
279struct apply_wrap_impl2<
280          5
281        , F
282        , T1, T2
283        >
284{
285    typedef typename F::template apply<
286          T1, T2
287
288        , na, na, na
289
290        > type;
291};
292
293template<
294      typename F, typename T1, typename T2
295    >
296struct apply_wrap2
297    : apply_wrap_impl2<
298          ::boost::mpl::aux::arity< F,2 >::value
299        , F
300        , T1, T2
301        >::type
302{
303};
304
305template<
306      int N, typename F, typename T1, typename T2, typename T3
307    >
308struct apply_wrap_impl3;
309
310template<
311      typename F, typename T1, typename T2, typename T3
312    >
313struct apply_wrap_impl3<
314          3
315        , F
316        , T1, T2, T3
317        >
318{
319    typedef typename F::template apply<
320          T1, T2, T3
321
322        > type;
323};
324
325template<
326      typename F, typename T1, typename T2, typename T3
327    >
328struct apply_wrap_impl3<
329          4
330        , F
331        , T1, T2, T3
332        >
333{
334    typedef typename F::template apply<
335          T1, T2, T3
336
337        , na
338
339        > type;
340};
341
342template<
343      typename F, typename T1, typename T2, typename T3
344    >
345struct apply_wrap_impl3<
346          5
347        , F
348        , T1, T2, T3
349        >
350{
351    typedef typename F::template apply<
352          T1, T2, T3
353
354        , na, na
355
356        > type;
357};
358
359template<
360      typename F, typename T1, typename T2, typename T3
361    >
362struct apply_wrap3
363    : apply_wrap_impl3<
364          ::boost::mpl::aux::arity< F,3 >::value
365        , F
366        , T1, T2, T3
367        >::type
368{
369};
370
371template<
372      int N, typename F, typename T1, typename T2, typename T3, typename T4
373    >
374struct apply_wrap_impl4;
375
376template<
377      typename F, typename T1, typename T2, typename T3, typename T4
378    >
379struct apply_wrap_impl4<
380          4
381        , F
382        , T1, T2, T3, T4
383        >
384{
385    typedef typename F::template apply<
386          T1, T2, T3, T4
387
388        > type;
389};
390
391template<
392      typename F, typename T1, typename T2, typename T3, typename T4
393    >
394struct apply_wrap_impl4<
395          5
396        , F
397        , T1, T2, T3, T4
398        >
399{
400    typedef typename F::template apply<
401          T1, T2, T3, T4
402
403        , na
404
405        > type;
406};
407
408template<
409      typename F, typename T1, typename T2, typename T3, typename T4
410    >
411struct apply_wrap4
412    : apply_wrap_impl4<
413          ::boost::mpl::aux::arity< F,4 >::value
414        , F
415        , T1, T2, T3, T4
416        >::type
417{
418};
419
420template<
421      int N, typename F, typename T1, typename T2, typename T3, typename T4
422    , typename T5
423    >
424struct apply_wrap_impl5;
425
426template<
427      typename F, typename T1, typename T2, typename T3, typename T4
428    , typename T5
429    >
430struct apply_wrap_impl5<
431          5
432        , F
433        , T1, T2, T3, T4, T5
434        >
435{
436    typedef typename F::template apply<
437          T1, T2, T3, T4, T5
438
439        > type;
440};
441
442template<
443      typename F, typename T1, typename T2, typename T3, typename T4
444    , typename T5
445    >
446struct apply_wrap5
447    : apply_wrap_impl5<
448          ::boost::mpl::aux::arity< F,5 >::value
449        , F
450        , T1, T2, T3, T4, T5
451        >::type
452{
453};
454
455}}
456