]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | /////////////////////////////////////////////////////////////////////////////// |
2 | /// \file or_n.hpp | |
3 | /// Definitions of or_N | |
4 | // | |
5 | // Copyright 2008 Eric Niebler. Distributed under the Boost | |
6 | // Software License, Version 1.0. (See accompanying file | |
7 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
8 | template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1> | |
9 | struct or_2 | |
10 | : mpl::bool_<matches_<Expr, BasicExpr, typename G1::proto_grammar>::value> | |
11 | { | |
12 | typedef G1 which; | |
13 | }; | |
14 | template<typename Expr, typename BasicExpr , typename G0 , typename G1> | |
15 | struct or_2<true, Expr, BasicExpr, G0 , G1> | |
16 | : mpl::true_ | |
17 | { | |
18 | typedef G0 which; | |
19 | }; | |
20 | template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2> | |
21 | struct or_3 | |
22 | : or_2< | |
23 | matches_<Expr, BasicExpr, typename G1::proto_grammar>::value | |
24 | , Expr, BasicExpr, G1 , G2 | |
25 | > | |
26 | {}; | |
27 | template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2> | |
28 | struct or_3<true, Expr, BasicExpr, G0 , G1 , G2> | |
29 | : mpl::true_ | |
30 | { | |
31 | typedef G0 which; | |
32 | }; | |
33 | template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3> | |
34 | struct or_4 | |
35 | : or_3< | |
36 | matches_<Expr, BasicExpr, typename G1::proto_grammar>::value | |
37 | , Expr, BasicExpr, G1 , G2 , G3 | |
38 | > | |
39 | {}; | |
40 | template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3> | |
41 | struct or_4<true, Expr, BasicExpr, G0 , G1 , G2 , G3> | |
42 | : mpl::true_ | |
43 | { | |
44 | typedef G0 which; | |
45 | }; | |
46 | template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4> | |
47 | struct or_5 | |
48 | : or_4< | |
49 | matches_<Expr, BasicExpr, typename G1::proto_grammar>::value | |
50 | , Expr, BasicExpr, G1 , G2 , G3 , G4 | |
51 | > | |
52 | {}; | |
53 | template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4> | |
54 | struct or_5<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4> | |
55 | : mpl::true_ | |
56 | { | |
57 | typedef G0 which; | |
58 | }; | |
59 | template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5> | |
60 | struct or_6 | |
61 | : or_5< | |
62 | matches_<Expr, BasicExpr, typename G1::proto_grammar>::value | |
63 | , Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 | |
64 | > | |
65 | {}; | |
66 | template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5> | |
67 | struct or_6<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5> | |
68 | : mpl::true_ | |
69 | { | |
70 | typedef G0 which; | |
71 | }; | |
72 | template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6> | |
73 | struct or_7 | |
74 | : or_6< | |
75 | matches_<Expr, BasicExpr, typename G1::proto_grammar>::value | |
76 | , Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 , G6 | |
77 | > | |
78 | {}; | |
79 | template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6> | |
80 | struct or_7<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5 , G6> | |
81 | : mpl::true_ | |
82 | { | |
83 | typedef G0 which; | |
84 | }; | |
85 | template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7> | |
86 | struct or_8 | |
87 | : or_7< | |
88 | matches_<Expr, BasicExpr, typename G1::proto_grammar>::value | |
89 | , Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 , G6 , G7 | |
90 | > | |
91 | {}; | |
92 | template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7> | |
93 | struct or_8<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5 , G6 , G7> | |
94 | : mpl::true_ | |
95 | { | |
96 | typedef G0 which; | |
97 | }; | |
98 | 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> | |
99 | struct or_9 | |
100 | : or_8< | |
101 | matches_<Expr, BasicExpr, typename G1::proto_grammar>::value | |
102 | , Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 , G6 , G7 , G8 | |
103 | > | |
104 | {}; | |
105 | template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7 , typename G8> | |
106 | struct or_9<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5 , G6 , G7 , G8> | |
107 | : mpl::true_ | |
108 | { | |
109 | typedef G0 which; | |
110 | }; | |
111 | 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> | |
112 | struct or_10 | |
113 | : or_9< | |
114 | matches_<Expr, BasicExpr, typename G1::proto_grammar>::value | |
115 | , Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 , G6 , G7 , G8 , G9 | |
116 | > | |
117 | {}; | |
118 | 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> | |
119 | struct or_10<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5 , G6 , G7 , G8 , G9> | |
120 | : mpl::true_ | |
121 | { | |
122 | typedef G0 which; | |
123 | }; |