source: NonGTP/Boost/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp @ 857

Revision 857, 2.3 KB checked in by igarcia, 19 years ago (diff)
Line 
1
2// Copyright Aleksey Gurtovoy 2002-2004
3//
4// Distributed under the Boost Software License, Version 1.0.
5// (See accompanying file LICENSE_1_0.txt or copy at
6// http://www.boost.org/LICENSE_1_0.txt)
7//
8
9// Preprocessed version of "boost/mpl/unpack_args.hpp" header
10// -- DO NOT modify by hand!
11
12namespace boost { namespace mpl {
13
14namespace aux {
15
16template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
17{
18    template< typename F, typename Args > struct apply;
19};
20
21template<> struct unpack_args_impl<0>
22{
23    template< typename F, typename Args > struct apply
24        : apply0<
25              F
26            >
27    {
28    };
29};
30
31template<> struct unpack_args_impl<1>
32{
33    template< typename F, typename Args > struct apply
34        : apply1<
35              F
36            , typename at_c< Args,0 >::type
37            >
38    {
39    };
40};
41
42template<> struct unpack_args_impl<2>
43{
44    template< typename F, typename Args > struct apply
45        : apply2<
46              F
47            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
48            >
49    {
50    };
51};
52
53template<> struct unpack_args_impl<3>
54{
55    template< typename F, typename Args > struct apply
56        : apply3<
57              F
58            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
59            , typename at_c< Args,2 >::type
60            >
61    {
62    };
63};
64
65template<> struct unpack_args_impl<4>
66{
67    template< typename F, typename Args > struct apply
68        : apply4<
69              F
70            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
71            , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
72            >
73    {
74    };
75};
76
77template<> struct unpack_args_impl<5>
78{
79    template< typename F, typename Args > struct apply
80        : apply5<
81              F
82            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
83            , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
84            , typename at_c< Args,4 >::type
85            >
86    {
87    };
88};
89
90}
91
92template<
93      typename F
94    >
95struct unpack_args
96{
97    template< typename Args > struct apply
98
99        : aux::unpack_args_impl< size<Args>::value >
100            ::template apply< F,Args >
101
102    {
103    };
104};
105
106BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
107
108}}
109
Note: See TracBrowser for help on using the repository browser.