~ubuntu-branches/ubuntu/warty/aqsis/warty

« back to all changes in this revision

Viewing changes to boost/boost/mpl/aux_/preprocessed/plain/apply.hpp

  • Committer: Bazaar Package Importer
  • Author(s): LaMont Jones
  • Date: 2004-08-24 07:25:04 UTC
  • Revision ID: james.westby@ubuntu.com-20040824072504-zf993vnevvisdsvb
Tags: upstream-0.9.1
ImportĀ upstreamĀ versionĀ 0.9.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// preprocessed version of 'boost/mpl/apply.hpp' header
 
2
// see the original for copyright information
 
3
 
 
4
namespace boost {
 
5
namespace mpl {
 
6
 
 
7
template<
 
8
      typename F, typename T1 = void_, typename T2 = void_
 
9
    , typename T3 = void_, typename T4 = void_, typename T5 = void_
 
10
    >
 
11
struct apply;
 
12
 
 
13
template< typename F >
 
14
struct apply0 : F
 
15
{
 
16
};
 
17
 
 
18
template<
 
19
      typename F
 
20
    >
 
21
struct apply< F,void_,void_,void_,void_,void_ >
 
22
    : apply0<F>
 
23
{
 
24
};
 
25
 
 
26
template<
 
27
      typename F, typename T1
 
28
    >
 
29
struct apply1
 
30
    : F::template apply<
 
31
          T1
 
32
        >
 
33
{
 
34
};
 
35
 
 
36
template<
 
37
      typename F, typename T1
 
38
    >
 
39
struct apply< F,T1,void_,void_,void_,void_ >
 
40
    : apply1< F,T1 >
 
41
{
 
42
};
 
43
 
 
44
template<
 
45
      typename F, typename T1, typename T2
 
46
    >
 
47
struct apply2
 
48
    : F::template apply<
 
49
          T1, T2
 
50
        >
 
51
{
 
52
};
 
53
 
 
54
template<
 
55
      typename F, typename T1, typename T2
 
56
    >
 
57
struct apply< F,T1,T2,void_,void_,void_ >
 
58
    : apply2< F,T1,T2 >
 
59
{
 
60
};
 
61
 
 
62
template<
 
63
      typename F, typename T1, typename T2, typename T3
 
64
    >
 
65
struct apply3
 
66
    : F::template apply<
 
67
          T1, T2, T3
 
68
        >
 
69
{
 
70
};
 
71
 
 
72
template<
 
73
      typename F, typename T1, typename T2, typename T3
 
74
    >
 
75
struct apply< F,T1,T2,T3,void_,void_ >
 
76
    : apply3< F,T1,T2,T3 >
 
77
{
 
78
};
 
79
 
 
80
template<
 
81
      typename F, typename T1, typename T2, typename T3, typename T4
 
82
    >
 
83
struct apply4
 
84
    : F::template apply<
 
85
          T1, T2, T3, T4
 
86
        >
 
87
{
 
88
};
 
89
 
 
90
template<
 
91
      typename F, typename T1, typename T2, typename T3, typename T4
 
92
    >
 
93
struct apply< F,T1,T2,T3,T4,void_ >
 
94
    : apply4< F,T1,T2,T3,T4 >
 
95
{
 
96
};
 
97
 
 
98
template<
 
99
      typename F, typename T1, typename T2, typename T3, typename T4
 
100
    , typename T5
 
101
    >
 
102
struct apply5
 
103
    : F::template apply<
 
104
          T1, T2, T3, T4, T5
 
105
        >
 
106
{
 
107
};
 
108
 
 
109
// primary template (not a specialization!)
 
110
template<
 
111
      typename F, typename T1, typename T2, typename T3, typename T4
 
112
    , typename T5
 
113
    >
 
114
struct apply
 
115
    : apply5< F,T1,T2,T3,T4,T5 >
 
116
{
 
117
};
 
118
 
 
119
} // namespace mpl
 
120
} // namespace boost
 
121