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.
123 lines
5.3 KiB
123 lines
5.3 KiB
/////////////////////////////////////////////////////////////////////////////// |
|
/// \file or_n.hpp |
|
/// Definitions of or_N |
|
// |
|
// 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<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1> |
|
struct or_2 |
|
: mpl::bool_<matches_<Expr, BasicExpr, typename G1::proto_grammar>::value> |
|
{ |
|
typedef G1 which; |
|
}; |
|
template<typename Expr, typename BasicExpr , typename G0 , typename G1> |
|
struct or_2<true, Expr, BasicExpr, G0 , G1> |
|
: mpl::true_ |
|
{ |
|
typedef G0 which; |
|
}; |
|
template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2> |
|
struct or_3 |
|
: or_2< |
|
matches_<Expr, BasicExpr, typename G1::proto_grammar>::value |
|
, Expr, BasicExpr, G1 , G2 |
|
> |
|
{}; |
|
template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2> |
|
struct or_3<true, Expr, BasicExpr, G0 , G1 , G2> |
|
: mpl::true_ |
|
{ |
|
typedef G0 which; |
|
}; |
|
template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3> |
|
struct or_4 |
|
: or_3< |
|
matches_<Expr, BasicExpr, typename G1::proto_grammar>::value |
|
, Expr, BasicExpr, G1 , G2 , G3 |
|
> |
|
{}; |
|
template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3> |
|
struct or_4<true, Expr, BasicExpr, G0 , G1 , G2 , G3> |
|
: mpl::true_ |
|
{ |
|
typedef G0 which; |
|
}; |
|
template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4> |
|
struct or_5 |
|
: or_4< |
|
matches_<Expr, BasicExpr, typename G1::proto_grammar>::value |
|
, Expr, BasicExpr, G1 , G2 , G3 , G4 |
|
> |
|
{}; |
|
template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4> |
|
struct or_5<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4> |
|
: mpl::true_ |
|
{ |
|
typedef G0 which; |
|
}; |
|
template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5> |
|
struct or_6 |
|
: or_5< |
|
matches_<Expr, BasicExpr, typename G1::proto_grammar>::value |
|
, Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 |
|
> |
|
{}; |
|
template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5> |
|
struct or_6<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5> |
|
: mpl::true_ |
|
{ |
|
typedef G0 which; |
|
}; |
|
template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6> |
|
struct or_7 |
|
: or_6< |
|
matches_<Expr, BasicExpr, typename G1::proto_grammar>::value |
|
, Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 , G6 |
|
> |
|
{}; |
|
template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6> |
|
struct or_7<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5 , G6> |
|
: mpl::true_ |
|
{ |
|
typedef G0 which; |
|
}; |
|
template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7> |
|
struct or_8 |
|
: or_7< |
|
matches_<Expr, BasicExpr, typename G1::proto_grammar>::value |
|
, Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 , G6 , G7 |
|
> |
|
{}; |
|
template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7> |
|
struct or_8<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5 , G6 , G7> |
|
: mpl::true_ |
|
{ |
|
typedef G0 which; |
|
}; |
|
template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7 , typename G8> |
|
struct or_9 |
|
: or_8< |
|
matches_<Expr, BasicExpr, typename G1::proto_grammar>::value |
|
, Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 , G6 , G7 , G8 |
|
> |
|
{}; |
|
template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7 , typename G8> |
|
struct or_9<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5 , G6 , G7 , G8> |
|
: mpl::true_ |
|
{ |
|
typedef G0 which; |
|
}; |
|
template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7 , typename G8 , typename G9> |
|
struct or_10 |
|
: or_9< |
|
matches_<Expr, BasicExpr, typename G1::proto_grammar>::value |
|
, Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 , G6 , G7 , G8 , G9 |
|
> |
|
{}; |
|
template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7 , typename G8 , typename G9> |
|
struct or_10<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5 , G6 , G7 , G8 , G9> |
|
: mpl::true_ |
|
{ |
|
typedef G0 which; |
|
};
|
|
|