Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: third_party/re2/re2/variadic_function.h

Issue 1544433002: Replace RE2 import with a dependency (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Re-Added LICENSE and OWNERS file Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/re2/re2/unicode_groups.cc ('k') | third_party/re2/re2/walker-inl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2010 The RE2 Authors. All Rights Reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 #ifndef RE2_VARIADIC_FUNCTION_H_
6 #define RE2_VARIADIC_FUNCTION_H_
7
8 namespace re2 {
9
10 template <typename Result, typename Param0, typename Param1, typename Arg,
11 Result (*Func)(Param0, Param1, const Arg* const [], int count)>
12 class VariadicFunction2 {
13 public:
14 Result operator()(Param0 p0, Param1 p1) const {
15 return Func(p0, p1, 0, 0);
16 }
17
18 Result operator()(Param0 p0, Param1 p1, const Arg& a0) const {
19 const Arg* const args[] = { &a0 };
20 return Func(p0, p1, args, 1);
21 }
22
23 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1) const {
24 const Arg* const args[] = { &a0, &a1 };
25 return Func(p0, p1, args, 2);
26 }
27
28 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
29 const Arg& a2) const {
30 const Arg* const args[] = { &a0, &a1, &a2 };
31 return Func(p0, p1, args, 3);
32 }
33
34 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
35 const Arg& a2, const Arg& a3) const {
36 const Arg* const args[] = { &a0, &a1, &a2, &a3 };
37 return Func(p0, p1, args, 4);
38 }
39
40 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
41 const Arg& a2, const Arg& a3, const Arg& a4) const {
42 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4 };
43 return Func(p0, p1, args, 5);
44 }
45
46 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
47 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5) const {
48 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5 };
49 return Func(p0, p1, args, 6);
50 }
51
52 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
53 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
54 const Arg& a6) const {
55 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6 };
56 return Func(p0, p1, args, 7);
57 }
58
59 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
60 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
61 const Arg& a6, const Arg& a7) const {
62 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7 };
63 return Func(p0, p1, args, 8);
64 }
65
66 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
67 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
68 const Arg& a6, const Arg& a7, const Arg& a8) const {
69 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8 };
70 return Func(p0, p1, args, 9);
71 }
72
73 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
74 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
75 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9) const {
76 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
77 &a9 };
78 return Func(p0, p1, args, 10);
79 }
80
81 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
82 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
83 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
84 const Arg& a10) const {
85 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
86 &a9, &a10 };
87 return Func(p0, p1, args, 11);
88 }
89
90 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
91 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
92 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
93 const Arg& a10, const Arg& a11) const {
94 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
95 &a9, &a10, &a11 };
96 return Func(p0, p1, args, 12);
97 }
98
99 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
100 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
101 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
102 const Arg& a10, const Arg& a11, const Arg& a12) const {
103 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
104 &a9, &a10, &a11, &a12 };
105 return Func(p0, p1, args, 13);
106 }
107
108 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
109 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
110 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
111 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13) const {
112 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
113 &a9, &a10, &a11, &a12, &a13 };
114 return Func(p0, p1, args, 14);
115 }
116
117 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
118 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
119 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
120 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
121 const Arg& a14) const {
122 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
123 &a9, &a10, &a11, &a12, &a13, &a14 };
124 return Func(p0, p1, args, 15);
125 }
126
127 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
128 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
129 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
130 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
131 const Arg& a14, const Arg& a15) const {
132 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
133 &a9, &a10, &a11, &a12, &a13, &a14, &a15 };
134 return Func(p0, p1, args, 16);
135 }
136
137 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
138 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
139 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
140 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
141 const Arg& a14, const Arg& a15, const Arg& a16) const {
142 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
143 &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16 };
144 return Func(p0, p1, args, 17);
145 }
146
147 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
148 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
149 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
150 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
151 const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17) const {
152 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
153 &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17 };
154 return Func(p0, p1, args, 18);
155 }
156
157 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
158 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
159 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
160 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
161 const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17,
162 const Arg& a18) const {
163 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
164 &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18 };
165 return Func(p0, p1, args, 19);
166 }
167
168 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
169 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
170 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
171 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
172 const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17,
173 const Arg& a18, const Arg& a19) const {
174 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
175 &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19 };
176 return Func(p0, p1, args, 20);
177 }
178
179 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
180 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
181 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
182 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
183 const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17,
184 const Arg& a18, const Arg& a19, const Arg& a20) const {
185 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
186 &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19,
187 &a20 };
188 return Func(p0, p1, args, 21);
189 }
190
191 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
192 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
193 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
194 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
195 const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17,
196 const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21) const {
197 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
198 &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20,
199 &a21 };
200 return Func(p0, p1, args, 22);
201 }
202
203 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
204 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
205 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
206 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
207 const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17,
208 const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21,
209 const Arg& a22) const {
210 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
211 &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20,
212 &a21, &a22 };
213 return Func(p0, p1, args, 23);
214 }
215
216 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
217 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
218 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
219 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
220 const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17,
221 const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21,
222 const Arg& a22, const Arg& a23) const {
223 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
224 &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20,
225 &a21, &a22, &a23 };
226 return Func(p0, p1, args, 24);
227 }
228
229 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
230 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
231 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
232 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
233 const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17,
234 const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21,
235 const Arg& a22, const Arg& a23, const Arg& a24) const {
236 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
237 &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20,
238 &a21, &a22, &a23, &a24 };
239 return Func(p0, p1, args, 25);
240 }
241
242 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
243 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
244 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
245 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
246 const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17,
247 const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21,
248 const Arg& a22, const Arg& a23, const Arg& a24, const Arg& a25) const {
249 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
250 &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20,
251 &a21, &a22, &a23, &a24, &a25 };
252 return Func(p0, p1, args, 26);
253 }
254
255 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
256 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
257 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
258 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
259 const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17,
260 const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21,
261 const Arg& a22, const Arg& a23, const Arg& a24, const Arg& a25,
262 const Arg& a26) const {
263 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
264 &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20,
265 &a21, &a22, &a23, &a24, &a25, &a26 };
266 return Func(p0, p1, args, 27);
267 }
268
269 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
270 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
271 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
272 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
273 const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17,
274 const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21,
275 const Arg& a22, const Arg& a23, const Arg& a24, const Arg& a25,
276 const Arg& a26, const Arg& a27) const {
277 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
278 &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20,
279 &a21, &a22, &a23, &a24, &a25, &a26, &a27 };
280 return Func(p0, p1, args, 28);
281 }
282
283 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
284 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
285 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
286 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
287 const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17,
288 const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21,
289 const Arg& a22, const Arg& a23, const Arg& a24, const Arg& a25,
290 const Arg& a26, const Arg& a27, const Arg& a28) const {
291 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
292 &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20,
293 &a21, &a22, &a23, &a24, &a25, &a26, &a27, &a28 };
294 return Func(p0, p1, args, 29);
295 }
296
297 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
298 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
299 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
300 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
301 const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17,
302 const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21,
303 const Arg& a22, const Arg& a23, const Arg& a24, const Arg& a25,
304 const Arg& a26, const Arg& a27, const Arg& a28, const Arg& a29) const {
305 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
306 &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20,
307 &a21, &a22, &a23, &a24, &a25, &a26, &a27, &a28, &a29 };
308 return Func(p0, p1, args, 30);
309 }
310
311 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
312 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
313 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
314 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
315 const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17,
316 const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21,
317 const Arg& a22, const Arg& a23, const Arg& a24, const Arg& a25,
318 const Arg& a26, const Arg& a27, const Arg& a28, const Arg& a29,
319 const Arg& a30) const {
320 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
321 &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20,
322 &a21, &a22, &a23, &a24, &a25, &a26, &a27, &a28, &a29, &a30 };
323 return Func(p0, p1, args, 31);
324 }
325
326 Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1,
327 const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5,
328 const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9,
329 const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13,
330 const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17,
331 const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21,
332 const Arg& a22, const Arg& a23, const Arg& a24, const Arg& a25,
333 const Arg& a26, const Arg& a27, const Arg& a28, const Arg& a29,
334 const Arg& a30, const Arg& a31) const {
335 const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8,
336 &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20,
337 &a21, &a22, &a23, &a24, &a25, &a26, &a27, &a28, &a29, &a30, &a31 };
338 return Func(p0, p1, args, 32);
339 }
340 };
341
342 } // namespace re2
343
344 #endif // RE2_VARIADIC_FUNCTION_H_
OLDNEW
« no previous file with comments | « third_party/re2/re2/unicode_groups.cc ('k') | third_party/re2/re2/walker-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698