forked from boostorg/mpl
111 lines
2.0 KiB
C++
111 lines
2.0 KiB
C++
// preprocessed version of 'boost/mpl/quote.hpp' header
|
|
// see the original for copyright information
|
|
|
|
namespace boost {
|
|
namespace mpl {
|
|
template< bool > struct quote_impl
|
|
{
|
|
template< typename T > struct result_
|
|
: T
|
|
{
|
|
};
|
|
};
|
|
|
|
template<> struct quote_impl<false>
|
|
{
|
|
template< typename T > struct result_
|
|
{
|
|
typedef T type;
|
|
};
|
|
};
|
|
|
|
template<
|
|
template< typename P1 > class F
|
|
, typename Tag = void_
|
|
>
|
|
struct quote1
|
|
{
|
|
template< typename U1 > struct apply
|
|
|
|
: quote_impl< aux::has_type< F<U1> >::value >
|
|
::template result_< F<U1> >
|
|
|
|
{
|
|
};
|
|
};
|
|
|
|
template<
|
|
template< typename P1, typename P2 > class F
|
|
, typename Tag = void_
|
|
>
|
|
struct quote2
|
|
{
|
|
template< typename U1, typename U2 > struct apply
|
|
|
|
: quote_impl< aux::has_type< F<U1,U2> >::value >
|
|
::template result_< F<U1,U2> >
|
|
|
|
{
|
|
};
|
|
};
|
|
|
|
template<
|
|
template< typename P1, typename P2, typename P3 > class F
|
|
, typename Tag = void_
|
|
>
|
|
struct quote3
|
|
{
|
|
template< typename U1, typename U2, typename U3 > struct apply
|
|
|
|
: quote_impl< aux::has_type< F<U1,U2,U3> >::value >
|
|
::template result_< F<U1,U2,U3> >
|
|
|
|
{
|
|
};
|
|
};
|
|
|
|
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
|
|
|
|
: quote_impl< aux::has_type< F<U1,U2,U3,U4> >::value >
|
|
::template result_< F<U1,U2,U3,U4> >
|
|
|
|
{
|
|
};
|
|
};
|
|
|
|
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
|
|
|
|
: quote_impl< aux::has_type< F<U1,U2,U3,U4,U5> >::value >
|
|
::template result_< F<U1,U2,U3,U4,U5> >
|
|
|
|
{
|
|
};
|
|
};
|
|
|
|
} // namespace mpl
|
|
} // namespace boost
|
|
|