120 lines
2.3 KiB
C++
120 lines
2.3 KiB
C++
|
|
||
|
// Copyright Aleksey Gurtovoy 2000-2008
|
||
|
//
|
||
|
// 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 the main "quote.hpp" header
|
||
|
// -- DO NOT modify by hand!
|
||
|
|
||
|
namespace boost { namespace mpl {
|
||
|
|
||
|
template< typename T, bool has_type_ >
|
||
|
struct quote_impl
|
||
|
|
||
|
{
|
||
|
typedef typename T::type type;
|
||
|
};
|
||
|
|
||
|
template< typename T >
|
||
|
struct quote_impl< T,false >
|
||
|
{
|
||
|
typedef T type;
|
||
|
};
|
||
|
|
||
|
template<
|
||
|
template< typename P1 > class F
|
||
|
, typename Tag = void_
|
||
|
>
|
||
|
struct quote1
|
||
|
{
|
||
|
template< typename U1 > struct apply
|
||
|
|
||
|
{
|
||
|
typedef typename quote_impl<
|
||
|
F<U1>
|
||
|
, aux::has_type< F<U1> >::value
|
||
|
>::type type;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
template<
|
||
|
template< typename P1, typename P2 > class F
|
||
|
, typename Tag = void_
|
||
|
>
|
||
|
struct quote2
|
||
|
{
|
||
|
template< typename U1, typename U2 > struct apply
|
||
|
|
||
|
{
|
||
|
typedef typename quote_impl<
|
||
|
F< U1,U2 >
|
||
|
, aux::has_type< F< U1,U2 > >::value
|
||
|
>::type type;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
template<
|
||
|
template< typename P1, typename P2, typename P3 > class F
|
||
|
, typename Tag = void_
|
||
|
>
|
||
|
struct quote3
|
||
|
{
|
||
|
template< typename U1, typename U2, typename U3 > struct apply
|
||
|
|
||
|
{
|
||
|
typedef typename quote_impl<
|
||
|
F< U1,U2,U3 >
|
||
|
, aux::has_type< F< U1,U2,U3 > >::value
|
||
|
>::type type;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
template<
|
||
|
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||
|
, typename Tag = void_
|
||
|
>
|
||
|
struct quote4
|
||
|
{
|
||
|
template<
|
||
|
typename U1, typename U2, typename U3, typename U4
|
||
|
>
|
||
|
struct apply
|
||
|
|
||
|
{
|
||
|
typedef typename quote_impl<
|
||
|
F< U1,U2,U3,U4 >
|
||
|
, aux::has_type< F< U1,U2,U3,U4 > >::value
|
||
|
>::type type;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
template<
|
||
|
template<
|
||
|
typename P1, typename P2, typename P3, typename P4
|
||
|
, typename P5
|
||
|
>
|
||
|
class F
|
||
|
, typename Tag = void_
|
||
|
>
|
||
|
struct quote5
|
||
|
{
|
||
|
template<
|
||
|
typename U1, typename U2, typename U3, typename U4
|
||
|
, typename U5
|
||
|
>
|
||
|
struct apply
|
||
|
|
||
|
{
|
||
|
typedef typename quote_impl<
|
||
|
F< U1,U2,U3,U4,U5 >
|
||
|
, aux::has_type< F< U1,U2,U3,U4,U5 > >::value
|
||
|
>::type type;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
}}
|
||
|
|