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