You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
5.3 KiB
124 lines
5.3 KiB
3 years ago
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/// \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;
|
||
|
};
|