Merge c:/dyninst/pc_bluegene/dyninst into dyn_pc_integration
[dyninst.git] / external / boost / mpl / aux_ / preprocessed / bcc_pre590 / arg.hpp
1
2 // Copyright Peter Dimov 2001-2002
3 // Copyright Aleksey Gurtovoy 2001-2004
4 //
5 // Distributed under the Boost Software License, Version 1.0. 
6 // (See accompanying file LICENSE_1_0.txt or copy at 
7 // http://www.boost.org/LICENSE_1_0.txt)
8 //
9
10 // *Preprocessed* version of the main "arg.hpp" header
11 // -- DO NOT modify by hand!
12
13 BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
14 template<> struct arg< -1 >
15 {
16     BOOST_STATIC_CONSTANT(int, value  = -1);
17     BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
18     BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
19
20     template<
21           typename U1, typename U2, typename U3, typename U4, typename U5
22         >
23     struct apply
24     {
25         typedef U1 type;
26         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
27     };
28 };
29
30 template<> struct arg<1>
31 {
32     BOOST_STATIC_CONSTANT(int, value  = 1);
33     typedef arg<2> next;
34     BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
35     BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
36
37     template<
38           typename U1, typename U2, typename U3, typename U4, typename U5
39         >
40     struct apply
41     {
42         typedef U1 type;
43         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
44     };
45 };
46
47 template<> struct arg<2>
48 {
49     BOOST_STATIC_CONSTANT(int, value  = 2);
50     typedef arg<3> next;
51     BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
52     BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
53
54     template<
55           typename U1, typename U2, typename U3, typename U4, typename U5
56         >
57     struct apply
58     {
59         typedef U2 type;
60         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
61     };
62 };
63
64 template<> struct arg<3>
65 {
66     BOOST_STATIC_CONSTANT(int, value  = 3);
67     typedef arg<4> next;
68     BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
69     BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
70
71     template<
72           typename U1, typename U2, typename U3, typename U4, typename U5
73         >
74     struct apply
75     {
76         typedef U3 type;
77         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
78     };
79 };
80
81 template<> struct arg<4>
82 {
83     BOOST_STATIC_CONSTANT(int, value  = 4);
84     typedef arg<5> next;
85     BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
86     BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
87
88     template<
89           typename U1, typename U2, typename U3, typename U4, typename U5
90         >
91     struct apply
92     {
93         typedef U4 type;
94         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
95     };
96 };
97
98 template<> struct arg<5>
99 {
100     BOOST_STATIC_CONSTANT(int, value  = 5);
101     typedef arg<6> next;
102     BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
103     BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
104
105     template<
106           typename U1, typename U2, typename U3, typename U4, typename U5
107         >
108     struct apply
109     {
110         typedef U5 type;
111         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
112     };
113 };
114
115 BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
116
117 BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE