Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:50:24

0001     ///////////////////////////////////////////////////////////////////////////////
0002     /// \file or_n.hpp
0003     /// Definitions of or_N
0004     //
0005     //  Copyright 2008 Eric Niebler. Distributed under the Boost
0006     //  Software License, Version 1.0. (See accompanying file
0007     //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0008     template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1>
0009     struct or_2
0010       : mpl::bool_<matches_<Expr, BasicExpr, typename G1::proto_grammar>::value>
0011     {
0012         typedef G1 which;
0013     };
0014     template<typename Expr, typename BasicExpr , typename G0 , typename G1>
0015     struct or_2<true, Expr, BasicExpr, G0 , G1>
0016       : mpl::true_
0017     {
0018         typedef G0 which;
0019     };
0020     template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2>
0021     struct or_3
0022       : or_2<
0023             matches_<Expr, BasicExpr, typename G1::proto_grammar>::value
0024           , Expr, BasicExpr, G1 , G2
0025         >
0026     {};
0027     template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2>
0028     struct or_3<true, Expr, BasicExpr, G0 , G1 , G2>
0029       : mpl::true_
0030     {
0031         typedef G0 which;
0032     };
0033     template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3>
0034     struct or_4
0035       : or_3<
0036             matches_<Expr, BasicExpr, typename G1::proto_grammar>::value
0037           , Expr, BasicExpr, G1 , G2 , G3
0038         >
0039     {};
0040     template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3>
0041     struct or_4<true, Expr, BasicExpr, G0 , G1 , G2 , G3>
0042       : mpl::true_
0043     {
0044         typedef G0 which;
0045     };
0046     template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4>
0047     struct or_5
0048       : or_4<
0049             matches_<Expr, BasicExpr, typename G1::proto_grammar>::value
0050           , Expr, BasicExpr, G1 , G2 , G3 , G4
0051         >
0052     {};
0053     template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4>
0054     struct or_5<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4>
0055       : mpl::true_
0056     {
0057         typedef G0 which;
0058     };
0059     template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5>
0060     struct or_6
0061       : or_5<
0062             matches_<Expr, BasicExpr, typename G1::proto_grammar>::value
0063           , Expr, BasicExpr, G1 , G2 , G3 , G4 , G5
0064         >
0065     {};
0066     template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5>
0067     struct or_6<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5>
0068       : mpl::true_
0069     {
0070         typedef G0 which;
0071     };
0072     template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6>
0073     struct or_7
0074       : or_6<
0075             matches_<Expr, BasicExpr, typename G1::proto_grammar>::value
0076           , Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 , G6
0077         >
0078     {};
0079     template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6>
0080     struct or_7<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5 , G6>
0081       : mpl::true_
0082     {
0083         typedef G0 which;
0084     };
0085     template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7>
0086     struct or_8
0087       : or_7<
0088             matches_<Expr, BasicExpr, typename G1::proto_grammar>::value
0089           , Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 , G6 , G7
0090         >
0091     {};
0092     template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7>
0093     struct or_8<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5 , G6 , G7>
0094       : mpl::true_
0095     {
0096         typedef G0 which;
0097     };
0098     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>
0099     struct or_9
0100       : or_8<
0101             matches_<Expr, BasicExpr, typename G1::proto_grammar>::value
0102           , Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 , G6 , G7 , G8
0103         >
0104     {};
0105     template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7 , typename G8>
0106     struct or_9<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5 , G6 , G7 , G8>
0107       : mpl::true_
0108     {
0109         typedef G0 which;
0110     };
0111     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>
0112     struct or_10
0113       : or_9<
0114             matches_<Expr, BasicExpr, typename G1::proto_grammar>::value
0115           , Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 , G6 , G7 , G8 , G9
0116         >
0117     {};
0118     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>
0119     struct or_10<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5 , G6 , G7 , G8 , G9>
0120       : mpl::true_
0121     {
0122         typedef G0 which;
0123     };