blob: 8603cc32ddeb831ee666d205754248fbd668941b [file] [log] [blame]
// Copyright Aleksey Gurtovoy 2000-2004
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
//
// Preprocessed version of "boost/mpl/apply_wrap.hpp" header
// -- DO NOT modify by hand!
namespace boost { namespace mpl {
template<
int N, typename F
>
struct apply_wrap_impl0;
template<
typename F
>
struct apply_wrap_impl0<
0
, F
>
{
typedef typename F::template apply<
/// since the defaults are "lost", we have to pass *something* even for nullary
/// metafunction classes
na
> type;
};
template<
typename F
>
struct apply_wrap_impl0<
1
, F
>
{
typedef typename F::template apply<
na
> type;
};
template<
typename F
>
struct apply_wrap_impl0<
2
, F
>
{
typedef typename F::template apply<
na, na
> type;
};
template<
typename F
>
struct apply_wrap_impl0<
3
, F
>
{
typedef typename F::template apply<
na, na, na
> type;
};
template<
typename F
>
struct apply_wrap_impl0<
4
, F
>
{
typedef typename F::template apply<
na, na, na, na
> type;
};
template<
typename F
>
struct apply_wrap_impl0<
5
, F
>
{
typedef typename F::template apply<
na, na, na, na, na
> type;
};
template<
typename F
>
struct apply_wrap0
: apply_wrap_impl0<
::boost::mpl::aux::arity< F,0 >::value
, F
>::type
{
};
template<
int N, typename F, typename T1
>
struct apply_wrap_impl1;
template<
typename F, typename T1
>
struct apply_wrap_impl1<
1
, F
, T1
>
{
typedef typename F::template apply<
T1
> type;
};
template<
typename F, typename T1
>
struct apply_wrap_impl1<
2
, F
, T1
>
{
typedef typename F::template apply<
T1
, na
> type;
};
template<
typename F, typename T1
>
struct apply_wrap_impl1<
3
, F
, T1
>
{
typedef typename F::template apply<
T1
, na, na
> type;
};
template<
typename F, typename T1
>
struct apply_wrap_impl1<
4
, F
, T1
>
{
typedef typename F::template apply<
T1
, na, na, na
> type;
};
template<
typename F, typename T1
>
struct apply_wrap_impl1<
5
, F
, T1
>
{
typedef typename F::template apply<
T1
, na, na, na, na
> type;
};
template<
typename F, typename T1
>
struct apply_wrap1
: apply_wrap_impl1<
::boost::mpl::aux::arity< F,1 >::value
, F
, T1
>::type
{
};
template<
int N, typename F, typename T1, typename T2
>
struct apply_wrap_impl2;
template<
typename F, typename T1, typename T2
>
struct apply_wrap_impl2<
2
, F
, T1, T2
>
{
typedef typename F::template apply<
T1, T2
> type;
};
template<
typename F, typename T1, typename T2
>
struct apply_wrap_impl2<
3
, F
, T1, T2
>
{
typedef typename F::template apply<
T1, T2
, na
> type;
};
template<
typename F, typename T1, typename T2
>
struct apply_wrap_impl2<
4
, F
, T1, T2
>
{
typedef typename F::template apply<
T1, T2
, na, na
> type;
};
template<
typename F, typename T1, typename T2
>
struct apply_wrap_impl2<
5
, F
, T1, T2
>
{
typedef typename F::template apply<
T1, T2
, na, na, na
> type;
};
template<
typename F, typename T1, typename T2
>
struct apply_wrap2
: apply_wrap_impl2<
::boost::mpl::aux::arity< F,2 >::value
, F
, T1, T2
>::type
{
};
template<
int N, typename F, typename T1, typename T2, typename T3
>
struct apply_wrap_impl3;
template<
typename F, typename T1, typename T2, typename T3
>
struct apply_wrap_impl3<
3
, F
, T1, T2, T3
>
{
typedef typename F::template apply<
T1, T2, T3
> type;
};
template<
typename F, typename T1, typename T2, typename T3
>
struct apply_wrap_impl3<
4
, F
, T1, T2, T3
>
{
typedef typename F::template apply<
T1, T2, T3
, na
> type;
};
template<
typename F, typename T1, typename T2, typename T3
>
struct apply_wrap_impl3<
5
, F
, T1, T2, T3
>
{
typedef typename F::template apply<
T1, T2, T3
, na, na
> type;
};
template<
typename F, typename T1, typename T2, typename T3
>
struct apply_wrap3
: apply_wrap_impl3<
::boost::mpl::aux::arity< F,3 >::value
, F
, T1, T2, T3
>::type
{
};
template<
int N, typename F, typename T1, typename T2, typename T3, typename T4
>
struct apply_wrap_impl4;
template<
typename F, typename T1, typename T2, typename T3, typename T4
>
struct apply_wrap_impl4<
4
, F
, T1, T2, T3, T4
>
{
typedef typename F::template apply<
T1, T2, T3, T4
> type;
};
template<
typename F, typename T1, typename T2, typename T3, typename T4
>
struct apply_wrap_impl4<
5
, F
, T1, T2, T3, T4
>
{
typedef typename F::template apply<
T1, T2, T3, T4
, na
> type;
};
template<
typename F, typename T1, typename T2, typename T3, typename T4
>
struct apply_wrap4
: apply_wrap_impl4<
::boost::mpl::aux::arity< F,4 >::value
, F
, T1, T2, T3, T4
>::type
{
};
template<
int N, typename F, typename T1, typename T2, typename T3, typename T4
, typename T5
>
struct apply_wrap_impl5;
template<
typename F, typename T1, typename T2, typename T3, typename T4
, typename T5
>
struct apply_wrap_impl5<
5
, F
, T1, T2, T3, T4, T5
>
{
typedef typename F::template apply<
T1, T2, T3, T4, T5
> type;
};
template<
typename F, typename T1, typename T2, typename T3, typename T4
, typename T5
>
struct apply_wrap5
: apply_wrap_impl5<
::boost::mpl::aux::arity< F,5 >::value
, F
, T1, T2, T3, T4, T5
>::type
{
};
}}