source: vendor/nemo/current/NEMOGCM/EXTERNAL/XIOS/extern/boost/include/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp @ 44

Last change on this file since 44 was 44, checked in by cholod, 12 years ago

Load NEMO_TMP into vendor/nemo/current.

File size: 1.9 KB
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 the main "unpack_args.hpp" header
10// -- DO NOT modify by hand!
11
12namespace boost { namespace mpl {
13
14namespace aux {
15
16template< int size, typename F, typename Args >
17struct unpack_args_impl;
18
19template< typename F, typename Args >
20struct unpack_args_impl< 0,F,Args >
21    : apply0<
22          F
23        >
24{
25};
26
27template< typename F, typename Args >
28struct unpack_args_impl< 1,F,Args >
29    : apply1<
30          F
31        , typename at_c< Args,0 >::type
32        >
33{
34};
35
36template< typename F, typename Args >
37struct unpack_args_impl< 2,F,Args >
38    : apply2<
39          F
40        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
41        >
42{
43};
44
45template< typename F, typename Args >
46struct unpack_args_impl< 3,F,Args >
47    : apply3<
48          F
49        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
50        , typename at_c< Args,2 >::type
51        >
52{
53};
54
55template< typename F, typename Args >
56struct unpack_args_impl< 4,F,Args >
57    : apply4<
58          F
59        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
60        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
61        >
62{
63};
64
65template< typename F, typename Args >
66struct unpack_args_impl< 5,F,Args >
67    : apply5<
68          F
69        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
70        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
71        , typename at_c< Args,4 >::type
72        >
73{
74};
75
76}
77
78template<
79      typename F
80    >
81struct unpack_args
82{
83    template< typename Args > struct apply
84    {
85        typedef typename aux::unpack_args_impl<
86              size<Args>::value
87            , F
88            , Args
89            >::type type;
90
91    };
92};
93
94BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
95
96}}
97
Note: See TracBrowser for help on using the repository browser.