Fixes for VS 2008
[dyninst.git] / external / boost / mpl / aux_ / preprocessed / bcc / unpack_args.hpp
1 \r
2 // Copyright Aleksey Gurtovoy 2002-2004\r
3 //\r
4 // Distributed under the Boost Software License, Version 1.0. \r
5 // (See accompanying file LICENSE_1_0.txt or copy at \r
6 // http://www.boost.org/LICENSE_1_0.txt)\r
7 //\r
8 \r
9 // *Preprocessed* version of the main "unpack_args.hpp" header\r
10 // -- DO NOT modify by hand!\r
11 \r
12 namespace boost { namespace mpl {\r
13 \r
14 namespace aux {\r
15 \r
16 template< int size, typename F, typename Args >\r
17 struct unpack_args_impl;\r
18 \r
19 template< typename F, typename Args >\r
20 struct unpack_args_impl< 0,F,Args >\r
21     : apply0<\r
22           F\r
23         >\r
24 {\r
25 };\r
26 \r
27 template< typename F, typename Args >\r
28 struct unpack_args_impl< 1,F,Args >\r
29     : apply1<\r
30           F\r
31         , typename at_c< Args,0 >::type\r
32         >\r
33 {\r
34 };\r
35 \r
36 template< typename F, typename Args >\r
37 struct unpack_args_impl< 2,F,Args >\r
38     : apply2<\r
39           F\r
40         , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type\r
41         >\r
42 {\r
43 };\r
44 \r
45 template< typename F, typename Args >\r
46 struct unpack_args_impl< 3,F,Args >\r
47     : apply3<\r
48           F\r
49         , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type\r
50         , typename at_c< Args,2 >::type\r
51         >\r
52 {\r
53 };\r
54 \r
55 template< typename F, typename Args >\r
56 struct unpack_args_impl< 4,F,Args >\r
57     : apply4<\r
58           F\r
59         , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type\r
60         , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type\r
61         >\r
62 {\r
63 };\r
64 \r
65 template< typename F, typename Args >\r
66 struct unpack_args_impl< 5,F,Args >\r
67     : apply5<\r
68           F\r
69         , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type\r
70         , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type\r
71         , typename at_c< Args,4 >::type\r
72         >\r
73 {\r
74 };\r
75 \r
76 }\r
77 \r
78 template<\r
79       typename F\r
80     >\r
81 struct unpack_args\r
82 {\r
83     template< typename Args > struct apply\r
84     {\r
85         typedef typename aux::unpack_args_impl<\r
86               size<Args>::value\r
87             , F\r
88             , Args\r
89             >::type type;\r
90 \r
91     };\r
92 };\r
93 \r
94 BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)\r
95 \r
96 }}\r
97 \r