PageRenderTime 20ms CodeModel.GetById 13ms app.highlight 5ms RepoModel.GetById 1ms app.codeStats 0ms

/Src/Dependencies/Boost/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp

http://hadesmem.googlecode.com/
C++ Header | 109 lines | 83 code | 18 blank | 8 comment | 0 complexity | ee935af4d6096a47a96d474f84d7af2b MD5 | raw file
  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