You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
142 lines
7.8 KiB
142 lines
7.8 KiB
/////////////////////////////////////////////////////////////////////////////// |
|
/// \file lambda_matches.hpp |
|
/// Specializations of the lambda_matches template |
|
// |
|
// Copyright 2008 Eric Niebler. 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) |
|
template< |
|
template<typename , typename> class T |
|
, typename Expr0 , typename Expr1 |
|
, typename Grammar0 , typename Grammar1 |
|
> |
|
struct lambda_matches< |
|
T<Expr0 , Expr1> |
|
, T<Grammar0 , Grammar1> |
|
BOOST_PROTO_TEMPLATE_ARITY_PARAM(2) |
|
> |
|
: and_2< |
|
lambda_matches< Expr0 , Grammar0 >::value, |
|
lambda_matches< Expr1 , Grammar1 > |
|
> |
|
{}; |
|
template< |
|
template<typename , typename , typename> class T |
|
, typename Expr0 , typename Expr1 , typename Expr2 |
|
, typename Grammar0 , typename Grammar1 , typename Grammar2 |
|
> |
|
struct lambda_matches< |
|
T<Expr0 , Expr1 , Expr2> |
|
, T<Grammar0 , Grammar1 , Grammar2> |
|
BOOST_PROTO_TEMPLATE_ARITY_PARAM(3) |
|
> |
|
: and_3< |
|
lambda_matches< Expr0 , Grammar0 >::value, |
|
lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > |
|
> |
|
{}; |
|
template< |
|
template<typename , typename , typename , typename> class T |
|
, typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 |
|
, typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 |
|
> |
|
struct lambda_matches< |
|
T<Expr0 , Expr1 , Expr2 , Expr3> |
|
, T<Grammar0 , Grammar1 , Grammar2 , Grammar3> |
|
BOOST_PROTO_TEMPLATE_ARITY_PARAM(4) |
|
> |
|
: and_4< |
|
lambda_matches< Expr0 , Grammar0 >::value, |
|
lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > |
|
> |
|
{}; |
|
template< |
|
template<typename , typename , typename , typename , typename> class T |
|
, typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4 |
|
, typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4 |
|
> |
|
struct lambda_matches< |
|
T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4> |
|
, T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4> |
|
BOOST_PROTO_TEMPLATE_ARITY_PARAM(5) |
|
> |
|
: and_5< |
|
lambda_matches< Expr0 , Grammar0 >::value, |
|
lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 > |
|
> |
|
{}; |
|
template< |
|
template<typename , typename , typename , typename , typename , typename> class T |
|
, typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4 , typename Expr5 |
|
, typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4 , typename Grammar5 |
|
> |
|
struct lambda_matches< |
|
T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4 , Expr5> |
|
, T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4 , Grammar5> |
|
BOOST_PROTO_TEMPLATE_ARITY_PARAM(6) |
|
> |
|
: and_6< |
|
lambda_matches< Expr0 , Grammar0 >::value, |
|
lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 > , lambda_matches< Expr5 , Grammar5 > |
|
> |
|
{}; |
|
template< |
|
template<typename , typename , typename , typename , typename , typename , typename> class T |
|
, typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4 , typename Expr5 , typename Expr6 |
|
, typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4 , typename Grammar5 , typename Grammar6 |
|
> |
|
struct lambda_matches< |
|
T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4 , Expr5 , Expr6> |
|
, T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4 , Grammar5 , Grammar6> |
|
BOOST_PROTO_TEMPLATE_ARITY_PARAM(7) |
|
> |
|
: and_7< |
|
lambda_matches< Expr0 , Grammar0 >::value, |
|
lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 > , lambda_matches< Expr5 , Grammar5 > , lambda_matches< Expr6 , Grammar6 > |
|
> |
|
{}; |
|
template< |
|
template<typename , typename , typename , typename , typename , typename , typename , typename> class T |
|
, typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4 , typename Expr5 , typename Expr6 , typename Expr7 |
|
, typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4 , typename Grammar5 , typename Grammar6 , typename Grammar7 |
|
> |
|
struct lambda_matches< |
|
T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4 , Expr5 , Expr6 , Expr7> |
|
, T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4 , Grammar5 , Grammar6 , Grammar7> |
|
BOOST_PROTO_TEMPLATE_ARITY_PARAM(8) |
|
> |
|
: and_8< |
|
lambda_matches< Expr0 , Grammar0 >::value, |
|
lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 > , lambda_matches< Expr5 , Grammar5 > , lambda_matches< Expr6 , Grammar6 > , lambda_matches< Expr7 , Grammar7 > |
|
> |
|
{}; |
|
template< |
|
template<typename , typename , typename , typename , typename , typename , typename , typename , typename> class T |
|
, typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4 , typename Expr5 , typename Expr6 , typename Expr7 , typename Expr8 |
|
, typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4 , typename Grammar5 , typename Grammar6 , typename Grammar7 , typename Grammar8 |
|
> |
|
struct lambda_matches< |
|
T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4 , Expr5 , Expr6 , Expr7 , Expr8> |
|
, T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4 , Grammar5 , Grammar6 , Grammar7 , Grammar8> |
|
BOOST_PROTO_TEMPLATE_ARITY_PARAM(9) |
|
> |
|
: and_9< |
|
lambda_matches< Expr0 , Grammar0 >::value, |
|
lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 > , lambda_matches< Expr5 , Grammar5 > , lambda_matches< Expr6 , Grammar6 > , lambda_matches< Expr7 , Grammar7 > , lambda_matches< Expr8 , Grammar8 > |
|
> |
|
{}; |
|
template< |
|
template<typename , typename , typename , typename , typename , typename , typename , typename , typename , typename> class T |
|
, typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4 , typename Expr5 , typename Expr6 , typename Expr7 , typename Expr8 , typename Expr9 |
|
, typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4 , typename Grammar5 , typename Grammar6 , typename Grammar7 , typename Grammar8 , typename Grammar9 |
|
> |
|
struct lambda_matches< |
|
T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4 , Expr5 , Expr6 , Expr7 , Expr8 , Expr9> |
|
, T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4 , Grammar5 , Grammar6 , Grammar7 , Grammar8 , Grammar9> |
|
BOOST_PROTO_TEMPLATE_ARITY_PARAM(10) |
|
> |
|
: and_10< |
|
lambda_matches< Expr0 , Grammar0 >::value, |
|
lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 > , lambda_matches< Expr5 , Grammar5 > , lambda_matches< Expr6 , Grammar6 > , lambda_matches< Expr7 , Grammar7 > , lambda_matches< Expr8 , Grammar8 > , lambda_matches< Expr9 , Grammar9 > |
|
> |
|
{};
|
|
|