]> AND Private Git Repository - canny.git/blob - stc/exp/ml_stc_linux_make_v1.0/include/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
17718d9b7fb1209d42d257f344c67694bfc49a25
[canny.git] / stc / exp / ml_stc_linux_make_v1.0 / include / boost / mpl / aux_ / preprocessed / msvc60 / 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 "boost/mpl/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< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl\r
17 {\r
18     template< typename F, typename Args > struct apply;\r
19 };\r
20 \r
21 template<> struct unpack_args_impl<0>\r
22 {\r
23     template< typename F, typename Args > struct apply\r
24         : apply0<\r
25               F\r
26             >\r
27     {\r
28     };\r
29 };\r
30 \r
31 template<> struct unpack_args_impl<1>\r
32 {\r
33     template< typename F, typename Args > struct apply\r
34         : apply1<\r
35               F\r
36             , typename at_c< Args,0 >::type\r
37             >\r
38     {\r
39     };\r
40 };\r
41 \r
42 template<> struct unpack_args_impl<2>\r
43 {\r
44     template< typename F, typename Args > struct apply\r
45         : apply2<\r
46               F\r
47             , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type\r
48             >\r
49     {\r
50     };\r
51 };\r
52 \r
53 template<> struct unpack_args_impl<3>\r
54 {\r
55     template< typename F, typename Args > struct apply\r
56         : apply3<\r
57               F\r
58             , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type\r
59             , typename at_c< Args,2 >::type\r
60             >\r
61     {\r
62     };\r
63 };\r
64 \r
65 template<> struct unpack_args_impl<4>\r
66 {\r
67     template< typename F, typename Args > struct apply\r
68         : apply4<\r
69               F\r
70             , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type\r
71             , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type\r
72             >\r
73     {\r
74     };\r
75 };\r
76 \r
77 template<> struct unpack_args_impl<5>\r
78 {\r
79     template< typename F, typename Args > struct apply\r
80         : apply5<\r
81               F\r
82             , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type\r
83             , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type\r
84             , typename at_c< Args,4 >::type\r
85             >\r
86     {\r
87     };\r
88 };\r
89 \r
90 }\r
91 \r
92 template<\r
93       typename F\r
94     >\r
95 struct unpack_args\r
96 {\r
97     template< typename Args > struct apply\r
98 \r
99         : aux::unpack_args_impl< size<Args>::value >\r
100             ::template apply< F,Args >\r
101 \r
102     {\r
103     };\r
104 };\r
105 \r
106 BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)\r
107 \r
108 }}\r
109 \r