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