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 "boost/mpl/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 = na, typename U2 = na, typename U3 = na
22         , typename U4 = na, typename U5 = na
23         >
24     struct apply
25     {
26         typedef U1 type;
27         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
28     };
29 };
30 
31 template<> struct arg<1>
32 {
33     BOOST_STATIC_CONSTANT(int, value  = 1);
34     typedef arg<2> next;
35     BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
36     BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
37 
38     template<
39           typename U1 = na, typename U2 = na, typename U3 = na
40         , typename U4 = na, typename U5 = na
41         >
42     struct apply
43     {
44         typedef U1 type;
45         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
46     };
47 };
48 
49 template<> struct arg<2>
50 {
51     BOOST_STATIC_CONSTANT(int, value  = 2);
52     typedef arg<3> next;
53     BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
54     BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
55 
56     template<
57           typename U1 = na, typename U2 = na, typename U3 = na
58         , typename U4 = na, typename U5 = na
59         >
60     struct apply
61     {
62         typedef U2 type;
63         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
64     };
65 };
66 
67 template<> struct arg<3>
68 {
69     BOOST_STATIC_CONSTANT(int, value  = 3);
70     typedef arg<4> next;
71     BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
72     BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
73 
74     template<
75           typename U1 = na, typename U2 = na, typename U3 = na
76         , typename U4 = na, typename U5 = na
77         >
78     struct apply
79     {
80         typedef U3 type;
81         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
82     };
83 };
84 
85 template<> struct arg<4>
86 {
87     BOOST_STATIC_CONSTANT(int, value  = 4);
88     typedef arg<5> next;
89     BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
90     BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
91 
92     template<
93           typename U1 = na, typename U2 = na, typename U3 = na
94         , typename U4 = na, typename U5 = na
95         >
96     struct apply
97     {
98         typedef U4 type;
99         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
100     };
101 };
102 
103 template<> struct arg<5>
104 {
105     BOOST_STATIC_CONSTANT(int, value  = 5);
106     typedef arg<6> next;
107     BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
108     BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
109 
110     template<
111           typename U1 = na, typename U2 = na, typename U3 = na
112         , typename U4 = na, typename U5 = na
113         >
114     struct apply
115     {
116         typedef U5 type;
117         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
118     };
119 };
120 
121 BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
122 
123 BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
124