Mercurial > libbase64
comparison gtest/include/gtest/internal/gtest-type-util.h @ 13:a837dfb51eea
Switch to Boost.Test
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 27 Nov 2017 14:51:55 +0100 |
parents | f8a106ba04f8 |
children | 23cf89f2570a |
comparison
equal
deleted
inserted
replaced
12:f8a106ba04f8 | 13:a837dfb51eea |
---|---|
1 // This file was GENERATED by command: | |
2 // pump.py gtest-type-util.h.pump | |
3 // DO NOT EDIT BY HAND!!! | |
4 | |
5 // Copyright 2008 Google Inc. | |
6 // All Rights Reserved. | |
7 // | |
8 // Redistribution and use in source and binary forms, with or without | |
9 // modification, are permitted provided that the following conditions are | |
10 // met: | |
11 // | |
12 // * Redistributions of source code must retain the above copyright | |
13 // notice, this list of conditions and the following disclaimer. | |
14 // * Redistributions in binary form must reproduce the above | |
15 // copyright notice, this list of conditions and the following disclaimer | |
16 // in the documentation and/or other materials provided with the | |
17 // distribution. | |
18 // * Neither the name of Google Inc. nor the names of its | |
19 // contributors may be used to endorse or promote products derived from | |
20 // this software without specific prior written permission. | |
21 // | |
22 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
23 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
24 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
25 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
26 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
27 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
28 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
29 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
30 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
31 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
32 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
33 // | |
34 // Author: wan@google.com (Zhanyong Wan) | |
35 | |
36 // Type utilities needed for implementing typed and type-parameterized | |
37 // tests. This file is generated by a SCRIPT. DO NOT EDIT BY HAND! | |
38 // | |
39 // Currently we support at most 50 types in a list, and at most 50 | |
40 // type-parameterized tests in one type-parameterized test case. | |
41 // Please contact googletestframework@googlegroups.com if you need | |
42 // more. | |
43 | |
44 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ | |
45 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ | |
46 | |
47 #include "gtest/internal/gtest-port.h" | |
48 | |
49 // #ifdef __GNUC__ is too general here. It is possible to use gcc without using | |
50 // libstdc++ (which is where cxxabi.h comes from). | |
51 # if GTEST_HAS_CXXABI_H_ | |
52 # include <cxxabi.h> | |
53 # elif defined(__HP_aCC) | |
54 # include <acxx_demangle.h> | |
55 # endif // GTEST_HASH_CXXABI_H_ | |
56 | |
57 namespace testing { | |
58 namespace internal { | |
59 | |
60 // GetTypeName<T>() returns a human-readable name of type T. | |
61 // NB: This function is also used in Google Mock, so don't move it inside of | |
62 // the typed-test-only section below. | |
63 template <typename T> | |
64 std::string GetTypeName() { | |
65 # if GTEST_HAS_RTTI | |
66 | |
67 const char* const name = typeid(T).name(); | |
68 # if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC) | |
69 int status = 0; | |
70 // gcc's implementation of typeid(T).name() mangles the type name, | |
71 // so we have to demangle it. | |
72 # if GTEST_HAS_CXXABI_H_ | |
73 using abi::__cxa_demangle; | |
74 # endif // GTEST_HAS_CXXABI_H_ | |
75 char* const readable_name = __cxa_demangle(name, 0, 0, &status); | |
76 const std::string name_str(status == 0 ? readable_name : name); | |
77 free(readable_name); | |
78 return name_str; | |
79 # else | |
80 return name; | |
81 # endif // GTEST_HAS_CXXABI_H_ || __HP_aCC | |
82 | |
83 # else | |
84 | |
85 return "<type>"; | |
86 | |
87 # endif // GTEST_HAS_RTTI | |
88 } | |
89 | |
90 #if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P | |
91 | |
92 // AssertyTypeEq<T1, T2>::type is defined iff T1 and T2 are the same | |
93 // type. This can be used as a compile-time assertion to ensure that | |
94 // two types are equal. | |
95 | |
96 template <typename T1, typename T2> | |
97 struct AssertTypeEq; | |
98 | |
99 template <typename T> | |
100 struct AssertTypeEq<T, T> { | |
101 typedef bool type; | |
102 }; | |
103 | |
104 // A unique type used as the default value for the arguments of class | |
105 // template Types. This allows us to simulate variadic templates | |
106 // (e.g. Types<int>, Type<int, double>, and etc), which C++ doesn't | |
107 // support directly. | |
108 struct None {}; | |
109 | |
110 // The following family of struct and struct templates are used to | |
111 // represent type lists. In particular, TypesN<T1, T2, ..., TN> | |
112 // represents a type list with N types (T1, T2, ..., and TN) in it. | |
113 // Except for Types0, every struct in the family has two member types: | |
114 // Head for the first type in the list, and Tail for the rest of the | |
115 // list. | |
116 | |
117 // The empty type list. | |
118 struct Types0 {}; | |
119 | |
120 // Type lists of length 1, 2, 3, and so on. | |
121 | |
122 template <typename T1> | |
123 struct Types1 { | |
124 typedef T1 Head; | |
125 typedef Types0 Tail; | |
126 }; | |
127 template <typename T1, typename T2> | |
128 struct Types2 { | |
129 typedef T1 Head; | |
130 typedef Types1<T2> Tail; | |
131 }; | |
132 | |
133 template <typename T1, typename T2, typename T3> | |
134 struct Types3 { | |
135 typedef T1 Head; | |
136 typedef Types2<T2, T3> Tail; | |
137 }; | |
138 | |
139 template <typename T1, typename T2, typename T3, typename T4> | |
140 struct Types4 { | |
141 typedef T1 Head; | |
142 typedef Types3<T2, T3, T4> Tail; | |
143 }; | |
144 | |
145 template <typename T1, typename T2, typename T3, typename T4, typename T5> | |
146 struct Types5 { | |
147 typedef T1 Head; | |
148 typedef Types4<T2, T3, T4, T5> Tail; | |
149 }; | |
150 | |
151 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
152 typename T6> | |
153 struct Types6 { | |
154 typedef T1 Head; | |
155 typedef Types5<T2, T3, T4, T5, T6> Tail; | |
156 }; | |
157 | |
158 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
159 typename T6, typename T7> | |
160 struct Types7 { | |
161 typedef T1 Head; | |
162 typedef Types6<T2, T3, T4, T5, T6, T7> Tail; | |
163 }; | |
164 | |
165 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
166 typename T6, typename T7, typename T8> | |
167 struct Types8 { | |
168 typedef T1 Head; | |
169 typedef Types7<T2, T3, T4, T5, T6, T7, T8> Tail; | |
170 }; | |
171 | |
172 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
173 typename T6, typename T7, typename T8, typename T9> | |
174 struct Types9 { | |
175 typedef T1 Head; | |
176 typedef Types8<T2, T3, T4, T5, T6, T7, T8, T9> Tail; | |
177 }; | |
178 | |
179 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
180 typename T6, typename T7, typename T8, typename T9, typename T10> | |
181 struct Types10 { | |
182 typedef T1 Head; | |
183 typedef Types9<T2, T3, T4, T5, T6, T7, T8, T9, T10> Tail; | |
184 }; | |
185 | |
186 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
187 typename T6, typename T7, typename T8, typename T9, typename T10, | |
188 typename T11> | |
189 struct Types11 { | |
190 typedef T1 Head; | |
191 typedef Types10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Tail; | |
192 }; | |
193 | |
194 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
195 typename T6, typename T7, typename T8, typename T9, typename T10, | |
196 typename T11, typename T12> | |
197 struct Types12 { | |
198 typedef T1 Head; | |
199 typedef Types11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tail; | |
200 }; | |
201 | |
202 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
203 typename T6, typename T7, typename T8, typename T9, typename T10, | |
204 typename T11, typename T12, typename T13> | |
205 struct Types13 { | |
206 typedef T1 Head; | |
207 typedef Types12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail; | |
208 }; | |
209 | |
210 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
211 typename T6, typename T7, typename T8, typename T9, typename T10, | |
212 typename T11, typename T12, typename T13, typename T14> | |
213 struct Types14 { | |
214 typedef T1 Head; | |
215 typedef Types13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Tail; | |
216 }; | |
217 | |
218 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
219 typename T6, typename T7, typename T8, typename T9, typename T10, | |
220 typename T11, typename T12, typename T13, typename T14, typename T15> | |
221 struct Types15 { | |
222 typedef T1 Head; | |
223 typedef Types14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
224 T15> Tail; | |
225 }; | |
226 | |
227 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
228 typename T6, typename T7, typename T8, typename T9, typename T10, | |
229 typename T11, typename T12, typename T13, typename T14, typename T15, | |
230 typename T16> | |
231 struct Types16 { | |
232 typedef T1 Head; | |
233 typedef Types15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
234 T16> Tail; | |
235 }; | |
236 | |
237 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
238 typename T6, typename T7, typename T8, typename T9, typename T10, | |
239 typename T11, typename T12, typename T13, typename T14, typename T15, | |
240 typename T16, typename T17> | |
241 struct Types17 { | |
242 typedef T1 Head; | |
243 typedef Types16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
244 T16, T17> Tail; | |
245 }; | |
246 | |
247 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
248 typename T6, typename T7, typename T8, typename T9, typename T10, | |
249 typename T11, typename T12, typename T13, typename T14, typename T15, | |
250 typename T16, typename T17, typename T18> | |
251 struct Types18 { | |
252 typedef T1 Head; | |
253 typedef Types17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
254 T16, T17, T18> Tail; | |
255 }; | |
256 | |
257 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
258 typename T6, typename T7, typename T8, typename T9, typename T10, | |
259 typename T11, typename T12, typename T13, typename T14, typename T15, | |
260 typename T16, typename T17, typename T18, typename T19> | |
261 struct Types19 { | |
262 typedef T1 Head; | |
263 typedef Types18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
264 T16, T17, T18, T19> Tail; | |
265 }; | |
266 | |
267 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
268 typename T6, typename T7, typename T8, typename T9, typename T10, | |
269 typename T11, typename T12, typename T13, typename T14, typename T15, | |
270 typename T16, typename T17, typename T18, typename T19, typename T20> | |
271 struct Types20 { | |
272 typedef T1 Head; | |
273 typedef Types19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
274 T16, T17, T18, T19, T20> Tail; | |
275 }; | |
276 | |
277 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
278 typename T6, typename T7, typename T8, typename T9, typename T10, | |
279 typename T11, typename T12, typename T13, typename T14, typename T15, | |
280 typename T16, typename T17, typename T18, typename T19, typename T20, | |
281 typename T21> | |
282 struct Types21 { | |
283 typedef T1 Head; | |
284 typedef Types20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
285 T16, T17, T18, T19, T20, T21> Tail; | |
286 }; | |
287 | |
288 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
289 typename T6, typename T7, typename T8, typename T9, typename T10, | |
290 typename T11, typename T12, typename T13, typename T14, typename T15, | |
291 typename T16, typename T17, typename T18, typename T19, typename T20, | |
292 typename T21, typename T22> | |
293 struct Types22 { | |
294 typedef T1 Head; | |
295 typedef Types21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
296 T16, T17, T18, T19, T20, T21, T22> Tail; | |
297 }; | |
298 | |
299 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
300 typename T6, typename T7, typename T8, typename T9, typename T10, | |
301 typename T11, typename T12, typename T13, typename T14, typename T15, | |
302 typename T16, typename T17, typename T18, typename T19, typename T20, | |
303 typename T21, typename T22, typename T23> | |
304 struct Types23 { | |
305 typedef T1 Head; | |
306 typedef Types22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
307 T16, T17, T18, T19, T20, T21, T22, T23> Tail; | |
308 }; | |
309 | |
310 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
311 typename T6, typename T7, typename T8, typename T9, typename T10, | |
312 typename T11, typename T12, typename T13, typename T14, typename T15, | |
313 typename T16, typename T17, typename T18, typename T19, typename T20, | |
314 typename T21, typename T22, typename T23, typename T24> | |
315 struct Types24 { | |
316 typedef T1 Head; | |
317 typedef Types23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
318 T16, T17, T18, T19, T20, T21, T22, T23, T24> Tail; | |
319 }; | |
320 | |
321 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
322 typename T6, typename T7, typename T8, typename T9, typename T10, | |
323 typename T11, typename T12, typename T13, typename T14, typename T15, | |
324 typename T16, typename T17, typename T18, typename T19, typename T20, | |
325 typename T21, typename T22, typename T23, typename T24, typename T25> | |
326 struct Types25 { | |
327 typedef T1 Head; | |
328 typedef Types24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
329 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Tail; | |
330 }; | |
331 | |
332 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
333 typename T6, typename T7, typename T8, typename T9, typename T10, | |
334 typename T11, typename T12, typename T13, typename T14, typename T15, | |
335 typename T16, typename T17, typename T18, typename T19, typename T20, | |
336 typename T21, typename T22, typename T23, typename T24, typename T25, | |
337 typename T26> | |
338 struct Types26 { | |
339 typedef T1 Head; | |
340 typedef Types25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
341 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> Tail; | |
342 }; | |
343 | |
344 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
345 typename T6, typename T7, typename T8, typename T9, typename T10, | |
346 typename T11, typename T12, typename T13, typename T14, typename T15, | |
347 typename T16, typename T17, typename T18, typename T19, typename T20, | |
348 typename T21, typename T22, typename T23, typename T24, typename T25, | |
349 typename T26, typename T27> | |
350 struct Types27 { | |
351 typedef T1 Head; | |
352 typedef Types26<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
353 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> Tail; | |
354 }; | |
355 | |
356 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
357 typename T6, typename T7, typename T8, typename T9, typename T10, | |
358 typename T11, typename T12, typename T13, typename T14, typename T15, | |
359 typename T16, typename T17, typename T18, typename T19, typename T20, | |
360 typename T21, typename T22, typename T23, typename T24, typename T25, | |
361 typename T26, typename T27, typename T28> | |
362 struct Types28 { | |
363 typedef T1 Head; | |
364 typedef Types27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
365 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28> Tail; | |
366 }; | |
367 | |
368 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
369 typename T6, typename T7, typename T8, typename T9, typename T10, | |
370 typename T11, typename T12, typename T13, typename T14, typename T15, | |
371 typename T16, typename T17, typename T18, typename T19, typename T20, | |
372 typename T21, typename T22, typename T23, typename T24, typename T25, | |
373 typename T26, typename T27, typename T28, typename T29> | |
374 struct Types29 { | |
375 typedef T1 Head; | |
376 typedef Types28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
377 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
378 T29> Tail; | |
379 }; | |
380 | |
381 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
382 typename T6, typename T7, typename T8, typename T9, typename T10, | |
383 typename T11, typename T12, typename T13, typename T14, typename T15, | |
384 typename T16, typename T17, typename T18, typename T19, typename T20, | |
385 typename T21, typename T22, typename T23, typename T24, typename T25, | |
386 typename T26, typename T27, typename T28, typename T29, typename T30> | |
387 struct Types30 { | |
388 typedef T1 Head; | |
389 typedef Types29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
390 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
391 T30> Tail; | |
392 }; | |
393 | |
394 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
395 typename T6, typename T7, typename T8, typename T9, typename T10, | |
396 typename T11, typename T12, typename T13, typename T14, typename T15, | |
397 typename T16, typename T17, typename T18, typename T19, typename T20, | |
398 typename T21, typename T22, typename T23, typename T24, typename T25, | |
399 typename T26, typename T27, typename T28, typename T29, typename T30, | |
400 typename T31> | |
401 struct Types31 { | |
402 typedef T1 Head; | |
403 typedef Types30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
404 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
405 T30, T31> Tail; | |
406 }; | |
407 | |
408 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
409 typename T6, typename T7, typename T8, typename T9, typename T10, | |
410 typename T11, typename T12, typename T13, typename T14, typename T15, | |
411 typename T16, typename T17, typename T18, typename T19, typename T20, | |
412 typename T21, typename T22, typename T23, typename T24, typename T25, | |
413 typename T26, typename T27, typename T28, typename T29, typename T30, | |
414 typename T31, typename T32> | |
415 struct Types32 { | |
416 typedef T1 Head; | |
417 typedef Types31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
418 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
419 T30, T31, T32> Tail; | |
420 }; | |
421 | |
422 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
423 typename T6, typename T7, typename T8, typename T9, typename T10, | |
424 typename T11, typename T12, typename T13, typename T14, typename T15, | |
425 typename T16, typename T17, typename T18, typename T19, typename T20, | |
426 typename T21, typename T22, typename T23, typename T24, typename T25, | |
427 typename T26, typename T27, typename T28, typename T29, typename T30, | |
428 typename T31, typename T32, typename T33> | |
429 struct Types33 { | |
430 typedef T1 Head; | |
431 typedef Types32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
432 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
433 T30, T31, T32, T33> Tail; | |
434 }; | |
435 | |
436 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
437 typename T6, typename T7, typename T8, typename T9, typename T10, | |
438 typename T11, typename T12, typename T13, typename T14, typename T15, | |
439 typename T16, typename T17, typename T18, typename T19, typename T20, | |
440 typename T21, typename T22, typename T23, typename T24, typename T25, | |
441 typename T26, typename T27, typename T28, typename T29, typename T30, | |
442 typename T31, typename T32, typename T33, typename T34> | |
443 struct Types34 { | |
444 typedef T1 Head; | |
445 typedef Types33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
446 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
447 T30, T31, T32, T33, T34> Tail; | |
448 }; | |
449 | |
450 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
451 typename T6, typename T7, typename T8, typename T9, typename T10, | |
452 typename T11, typename T12, typename T13, typename T14, typename T15, | |
453 typename T16, typename T17, typename T18, typename T19, typename T20, | |
454 typename T21, typename T22, typename T23, typename T24, typename T25, | |
455 typename T26, typename T27, typename T28, typename T29, typename T30, | |
456 typename T31, typename T32, typename T33, typename T34, typename T35> | |
457 struct Types35 { | |
458 typedef T1 Head; | |
459 typedef Types34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
460 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
461 T30, T31, T32, T33, T34, T35> Tail; | |
462 }; | |
463 | |
464 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
465 typename T6, typename T7, typename T8, typename T9, typename T10, | |
466 typename T11, typename T12, typename T13, typename T14, typename T15, | |
467 typename T16, typename T17, typename T18, typename T19, typename T20, | |
468 typename T21, typename T22, typename T23, typename T24, typename T25, | |
469 typename T26, typename T27, typename T28, typename T29, typename T30, | |
470 typename T31, typename T32, typename T33, typename T34, typename T35, | |
471 typename T36> | |
472 struct Types36 { | |
473 typedef T1 Head; | |
474 typedef Types35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
475 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
476 T30, T31, T32, T33, T34, T35, T36> Tail; | |
477 }; | |
478 | |
479 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
480 typename T6, typename T7, typename T8, typename T9, typename T10, | |
481 typename T11, typename T12, typename T13, typename T14, typename T15, | |
482 typename T16, typename T17, typename T18, typename T19, typename T20, | |
483 typename T21, typename T22, typename T23, typename T24, typename T25, | |
484 typename T26, typename T27, typename T28, typename T29, typename T30, | |
485 typename T31, typename T32, typename T33, typename T34, typename T35, | |
486 typename T36, typename T37> | |
487 struct Types37 { | |
488 typedef T1 Head; | |
489 typedef Types36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
490 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
491 T30, T31, T32, T33, T34, T35, T36, T37> Tail; | |
492 }; | |
493 | |
494 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
495 typename T6, typename T7, typename T8, typename T9, typename T10, | |
496 typename T11, typename T12, typename T13, typename T14, typename T15, | |
497 typename T16, typename T17, typename T18, typename T19, typename T20, | |
498 typename T21, typename T22, typename T23, typename T24, typename T25, | |
499 typename T26, typename T27, typename T28, typename T29, typename T30, | |
500 typename T31, typename T32, typename T33, typename T34, typename T35, | |
501 typename T36, typename T37, typename T38> | |
502 struct Types38 { | |
503 typedef T1 Head; | |
504 typedef Types37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
505 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
506 T30, T31, T32, T33, T34, T35, T36, T37, T38> Tail; | |
507 }; | |
508 | |
509 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
510 typename T6, typename T7, typename T8, typename T9, typename T10, | |
511 typename T11, typename T12, typename T13, typename T14, typename T15, | |
512 typename T16, typename T17, typename T18, typename T19, typename T20, | |
513 typename T21, typename T22, typename T23, typename T24, typename T25, | |
514 typename T26, typename T27, typename T28, typename T29, typename T30, | |
515 typename T31, typename T32, typename T33, typename T34, typename T35, | |
516 typename T36, typename T37, typename T38, typename T39> | |
517 struct Types39 { | |
518 typedef T1 Head; | |
519 typedef Types38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
520 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
521 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Tail; | |
522 }; | |
523 | |
524 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
525 typename T6, typename T7, typename T8, typename T9, typename T10, | |
526 typename T11, typename T12, typename T13, typename T14, typename T15, | |
527 typename T16, typename T17, typename T18, typename T19, typename T20, | |
528 typename T21, typename T22, typename T23, typename T24, typename T25, | |
529 typename T26, typename T27, typename T28, typename T29, typename T30, | |
530 typename T31, typename T32, typename T33, typename T34, typename T35, | |
531 typename T36, typename T37, typename T38, typename T39, typename T40> | |
532 struct Types40 { | |
533 typedef T1 Head; | |
534 typedef Types39<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
535 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
536 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Tail; | |
537 }; | |
538 | |
539 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
540 typename T6, typename T7, typename T8, typename T9, typename T10, | |
541 typename T11, typename T12, typename T13, typename T14, typename T15, | |
542 typename T16, typename T17, typename T18, typename T19, typename T20, | |
543 typename T21, typename T22, typename T23, typename T24, typename T25, | |
544 typename T26, typename T27, typename T28, typename T29, typename T30, | |
545 typename T31, typename T32, typename T33, typename T34, typename T35, | |
546 typename T36, typename T37, typename T38, typename T39, typename T40, | |
547 typename T41> | |
548 struct Types41 { | |
549 typedef T1 Head; | |
550 typedef Types40<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
551 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
552 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41> Tail; | |
553 }; | |
554 | |
555 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
556 typename T6, typename T7, typename T8, typename T9, typename T10, | |
557 typename T11, typename T12, typename T13, typename T14, typename T15, | |
558 typename T16, typename T17, typename T18, typename T19, typename T20, | |
559 typename T21, typename T22, typename T23, typename T24, typename T25, | |
560 typename T26, typename T27, typename T28, typename T29, typename T30, | |
561 typename T31, typename T32, typename T33, typename T34, typename T35, | |
562 typename T36, typename T37, typename T38, typename T39, typename T40, | |
563 typename T41, typename T42> | |
564 struct Types42 { | |
565 typedef T1 Head; | |
566 typedef Types41<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
567 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
568 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42> Tail; | |
569 }; | |
570 | |
571 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
572 typename T6, typename T7, typename T8, typename T9, typename T10, | |
573 typename T11, typename T12, typename T13, typename T14, typename T15, | |
574 typename T16, typename T17, typename T18, typename T19, typename T20, | |
575 typename T21, typename T22, typename T23, typename T24, typename T25, | |
576 typename T26, typename T27, typename T28, typename T29, typename T30, | |
577 typename T31, typename T32, typename T33, typename T34, typename T35, | |
578 typename T36, typename T37, typename T38, typename T39, typename T40, | |
579 typename T41, typename T42, typename T43> | |
580 struct Types43 { | |
581 typedef T1 Head; | |
582 typedef Types42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
583 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
584 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, | |
585 T43> Tail; | |
586 }; | |
587 | |
588 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
589 typename T6, typename T7, typename T8, typename T9, typename T10, | |
590 typename T11, typename T12, typename T13, typename T14, typename T15, | |
591 typename T16, typename T17, typename T18, typename T19, typename T20, | |
592 typename T21, typename T22, typename T23, typename T24, typename T25, | |
593 typename T26, typename T27, typename T28, typename T29, typename T30, | |
594 typename T31, typename T32, typename T33, typename T34, typename T35, | |
595 typename T36, typename T37, typename T38, typename T39, typename T40, | |
596 typename T41, typename T42, typename T43, typename T44> | |
597 struct Types44 { | |
598 typedef T1 Head; | |
599 typedef Types43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
600 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
601 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, | |
602 T44> Tail; | |
603 }; | |
604 | |
605 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
606 typename T6, typename T7, typename T8, typename T9, typename T10, | |
607 typename T11, typename T12, typename T13, typename T14, typename T15, | |
608 typename T16, typename T17, typename T18, typename T19, typename T20, | |
609 typename T21, typename T22, typename T23, typename T24, typename T25, | |
610 typename T26, typename T27, typename T28, typename T29, typename T30, | |
611 typename T31, typename T32, typename T33, typename T34, typename T35, | |
612 typename T36, typename T37, typename T38, typename T39, typename T40, | |
613 typename T41, typename T42, typename T43, typename T44, typename T45> | |
614 struct Types45 { | |
615 typedef T1 Head; | |
616 typedef Types44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
617 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
618 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, | |
619 T44, T45> Tail; | |
620 }; | |
621 | |
622 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
623 typename T6, typename T7, typename T8, typename T9, typename T10, | |
624 typename T11, typename T12, typename T13, typename T14, typename T15, | |
625 typename T16, typename T17, typename T18, typename T19, typename T20, | |
626 typename T21, typename T22, typename T23, typename T24, typename T25, | |
627 typename T26, typename T27, typename T28, typename T29, typename T30, | |
628 typename T31, typename T32, typename T33, typename T34, typename T35, | |
629 typename T36, typename T37, typename T38, typename T39, typename T40, | |
630 typename T41, typename T42, typename T43, typename T44, typename T45, | |
631 typename T46> | |
632 struct Types46 { | |
633 typedef T1 Head; | |
634 typedef Types45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
635 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
636 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, | |
637 T44, T45, T46> Tail; | |
638 }; | |
639 | |
640 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
641 typename T6, typename T7, typename T8, typename T9, typename T10, | |
642 typename T11, typename T12, typename T13, typename T14, typename T15, | |
643 typename T16, typename T17, typename T18, typename T19, typename T20, | |
644 typename T21, typename T22, typename T23, typename T24, typename T25, | |
645 typename T26, typename T27, typename T28, typename T29, typename T30, | |
646 typename T31, typename T32, typename T33, typename T34, typename T35, | |
647 typename T36, typename T37, typename T38, typename T39, typename T40, | |
648 typename T41, typename T42, typename T43, typename T44, typename T45, | |
649 typename T46, typename T47> | |
650 struct Types47 { | |
651 typedef T1 Head; | |
652 typedef Types46<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
653 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
654 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, | |
655 T44, T45, T46, T47> Tail; | |
656 }; | |
657 | |
658 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
659 typename T6, typename T7, typename T8, typename T9, typename T10, | |
660 typename T11, typename T12, typename T13, typename T14, typename T15, | |
661 typename T16, typename T17, typename T18, typename T19, typename T20, | |
662 typename T21, typename T22, typename T23, typename T24, typename T25, | |
663 typename T26, typename T27, typename T28, typename T29, typename T30, | |
664 typename T31, typename T32, typename T33, typename T34, typename T35, | |
665 typename T36, typename T37, typename T38, typename T39, typename T40, | |
666 typename T41, typename T42, typename T43, typename T44, typename T45, | |
667 typename T46, typename T47, typename T48> | |
668 struct Types48 { | |
669 typedef T1 Head; | |
670 typedef Types47<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
671 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
672 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, | |
673 T44, T45, T46, T47, T48> Tail; | |
674 }; | |
675 | |
676 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
677 typename T6, typename T7, typename T8, typename T9, typename T10, | |
678 typename T11, typename T12, typename T13, typename T14, typename T15, | |
679 typename T16, typename T17, typename T18, typename T19, typename T20, | |
680 typename T21, typename T22, typename T23, typename T24, typename T25, | |
681 typename T26, typename T27, typename T28, typename T29, typename T30, | |
682 typename T31, typename T32, typename T33, typename T34, typename T35, | |
683 typename T36, typename T37, typename T38, typename T39, typename T40, | |
684 typename T41, typename T42, typename T43, typename T44, typename T45, | |
685 typename T46, typename T47, typename T48, typename T49> | |
686 struct Types49 { | |
687 typedef T1 Head; | |
688 typedef Types48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
689 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
690 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, | |
691 T44, T45, T46, T47, T48, T49> Tail; | |
692 }; | |
693 | |
694 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
695 typename T6, typename T7, typename T8, typename T9, typename T10, | |
696 typename T11, typename T12, typename T13, typename T14, typename T15, | |
697 typename T16, typename T17, typename T18, typename T19, typename T20, | |
698 typename T21, typename T22, typename T23, typename T24, typename T25, | |
699 typename T26, typename T27, typename T28, typename T29, typename T30, | |
700 typename T31, typename T32, typename T33, typename T34, typename T35, | |
701 typename T36, typename T37, typename T38, typename T39, typename T40, | |
702 typename T41, typename T42, typename T43, typename T44, typename T45, | |
703 typename T46, typename T47, typename T48, typename T49, typename T50> | |
704 struct Types50 { | |
705 typedef T1 Head; | |
706 typedef Types49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
707 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
708 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, | |
709 T44, T45, T46, T47, T48, T49, T50> Tail; | |
710 }; | |
711 | |
712 | |
713 } // namespace internal | |
714 | |
715 // We don't want to require the users to write TypesN<...> directly, | |
716 // as that would require them to count the length. Types<...> is much | |
717 // easier to write, but generates horrible messages when there is a | |
718 // compiler error, as gcc insists on printing out each template | |
719 // argument, even if it has the default value (this means Types<int> | |
720 // will appear as Types<int, None, None, ..., None> in the compiler | |
721 // errors). | |
722 // | |
723 // Our solution is to combine the best part of the two approaches: a | |
724 // user would write Types<T1, ..., TN>, and Google Test will translate | |
725 // that to TypesN<T1, ..., TN> internally to make error messages | |
726 // readable. The translation is done by the 'type' member of the | |
727 // Types template. | |
728 template <typename T1 = internal::None, typename T2 = internal::None, | |
729 typename T3 = internal::None, typename T4 = internal::None, | |
730 typename T5 = internal::None, typename T6 = internal::None, | |
731 typename T7 = internal::None, typename T8 = internal::None, | |
732 typename T9 = internal::None, typename T10 = internal::None, | |
733 typename T11 = internal::None, typename T12 = internal::None, | |
734 typename T13 = internal::None, typename T14 = internal::None, | |
735 typename T15 = internal::None, typename T16 = internal::None, | |
736 typename T17 = internal::None, typename T18 = internal::None, | |
737 typename T19 = internal::None, typename T20 = internal::None, | |
738 typename T21 = internal::None, typename T22 = internal::None, | |
739 typename T23 = internal::None, typename T24 = internal::None, | |
740 typename T25 = internal::None, typename T26 = internal::None, | |
741 typename T27 = internal::None, typename T28 = internal::None, | |
742 typename T29 = internal::None, typename T30 = internal::None, | |
743 typename T31 = internal::None, typename T32 = internal::None, | |
744 typename T33 = internal::None, typename T34 = internal::None, | |
745 typename T35 = internal::None, typename T36 = internal::None, | |
746 typename T37 = internal::None, typename T38 = internal::None, | |
747 typename T39 = internal::None, typename T40 = internal::None, | |
748 typename T41 = internal::None, typename T42 = internal::None, | |
749 typename T43 = internal::None, typename T44 = internal::None, | |
750 typename T45 = internal::None, typename T46 = internal::None, | |
751 typename T47 = internal::None, typename T48 = internal::None, | |
752 typename T49 = internal::None, typename T50 = internal::None> | |
753 struct Types { | |
754 typedef internal::Types50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
755 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
756 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, | |
757 T41, T42, T43, T44, T45, T46, T47, T48, T49, T50> type; | |
758 }; | |
759 | |
760 template <> | |
761 struct Types<internal::None, internal::None, internal::None, internal::None, | |
762 internal::None, internal::None, internal::None, internal::None, | |
763 internal::None, internal::None, internal::None, internal::None, | |
764 internal::None, internal::None, internal::None, internal::None, | |
765 internal::None, internal::None, internal::None, internal::None, | |
766 internal::None, internal::None, internal::None, internal::None, | |
767 internal::None, internal::None, internal::None, internal::None, | |
768 internal::None, internal::None, internal::None, internal::None, | |
769 internal::None, internal::None, internal::None, internal::None, | |
770 internal::None, internal::None, internal::None, internal::None, | |
771 internal::None, internal::None, internal::None, internal::None, | |
772 internal::None, internal::None, internal::None, internal::None, | |
773 internal::None, internal::None> { | |
774 typedef internal::Types0 type; | |
775 }; | |
776 template <typename T1> | |
777 struct Types<T1, internal::None, internal::None, internal::None, | |
778 internal::None, internal::None, internal::None, internal::None, | |
779 internal::None, internal::None, internal::None, internal::None, | |
780 internal::None, internal::None, internal::None, internal::None, | |
781 internal::None, internal::None, internal::None, internal::None, | |
782 internal::None, internal::None, internal::None, internal::None, | |
783 internal::None, internal::None, internal::None, internal::None, | |
784 internal::None, internal::None, internal::None, internal::None, | |
785 internal::None, internal::None, internal::None, internal::None, | |
786 internal::None, internal::None, internal::None, internal::None, | |
787 internal::None, internal::None, internal::None, internal::None, | |
788 internal::None, internal::None, internal::None, internal::None, | |
789 internal::None, internal::None> { | |
790 typedef internal::Types1<T1> type; | |
791 }; | |
792 template <typename T1, typename T2> | |
793 struct Types<T1, T2, internal::None, internal::None, internal::None, | |
794 internal::None, internal::None, internal::None, internal::None, | |
795 internal::None, internal::None, internal::None, internal::None, | |
796 internal::None, internal::None, internal::None, internal::None, | |
797 internal::None, internal::None, internal::None, internal::None, | |
798 internal::None, internal::None, internal::None, internal::None, | |
799 internal::None, internal::None, internal::None, internal::None, | |
800 internal::None, internal::None, internal::None, internal::None, | |
801 internal::None, internal::None, internal::None, internal::None, | |
802 internal::None, internal::None, internal::None, internal::None, | |
803 internal::None, internal::None, internal::None, internal::None, | |
804 internal::None, internal::None, internal::None, internal::None, | |
805 internal::None> { | |
806 typedef internal::Types2<T1, T2> type; | |
807 }; | |
808 template <typename T1, typename T2, typename T3> | |
809 struct Types<T1, T2, T3, internal::None, internal::None, internal::None, | |
810 internal::None, internal::None, internal::None, internal::None, | |
811 internal::None, internal::None, internal::None, internal::None, | |
812 internal::None, internal::None, internal::None, internal::None, | |
813 internal::None, internal::None, internal::None, internal::None, | |
814 internal::None, internal::None, internal::None, internal::None, | |
815 internal::None, internal::None, internal::None, internal::None, | |
816 internal::None, internal::None, internal::None, internal::None, | |
817 internal::None, internal::None, internal::None, internal::None, | |
818 internal::None, internal::None, internal::None, internal::None, | |
819 internal::None, internal::None, internal::None, internal::None, | |
820 internal::None, internal::None, internal::None, internal::None> { | |
821 typedef internal::Types3<T1, T2, T3> type; | |
822 }; | |
823 template <typename T1, typename T2, typename T3, typename T4> | |
824 struct Types<T1, T2, T3, T4, internal::None, internal::None, internal::None, | |
825 internal::None, internal::None, internal::None, internal::None, | |
826 internal::None, internal::None, internal::None, internal::None, | |
827 internal::None, internal::None, internal::None, internal::None, | |
828 internal::None, internal::None, internal::None, internal::None, | |
829 internal::None, internal::None, internal::None, internal::None, | |
830 internal::None, internal::None, internal::None, internal::None, | |
831 internal::None, internal::None, internal::None, internal::None, | |
832 internal::None, internal::None, internal::None, internal::None, | |
833 internal::None, internal::None, internal::None, internal::None, | |
834 internal::None, internal::None, internal::None, internal::None, | |
835 internal::None, internal::None, internal::None> { | |
836 typedef internal::Types4<T1, T2, T3, T4> type; | |
837 }; | |
838 template <typename T1, typename T2, typename T3, typename T4, typename T5> | |
839 struct Types<T1, T2, T3, T4, T5, internal::None, internal::None, | |
840 internal::None, internal::None, internal::None, internal::None, | |
841 internal::None, internal::None, internal::None, internal::None, | |
842 internal::None, internal::None, internal::None, internal::None, | |
843 internal::None, internal::None, internal::None, internal::None, | |
844 internal::None, internal::None, internal::None, internal::None, | |
845 internal::None, internal::None, internal::None, internal::None, | |
846 internal::None, internal::None, internal::None, internal::None, | |
847 internal::None, internal::None, internal::None, internal::None, | |
848 internal::None, internal::None, internal::None, internal::None, | |
849 internal::None, internal::None, internal::None, internal::None, | |
850 internal::None, internal::None, internal::None> { | |
851 typedef internal::Types5<T1, T2, T3, T4, T5> type; | |
852 }; | |
853 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
854 typename T6> | |
855 struct Types<T1, T2, T3, T4, T5, T6, internal::None, internal::None, | |
856 internal::None, internal::None, internal::None, internal::None, | |
857 internal::None, internal::None, internal::None, internal::None, | |
858 internal::None, internal::None, internal::None, internal::None, | |
859 internal::None, internal::None, internal::None, internal::None, | |
860 internal::None, internal::None, internal::None, internal::None, | |
861 internal::None, internal::None, internal::None, internal::None, | |
862 internal::None, internal::None, internal::None, internal::None, | |
863 internal::None, internal::None, internal::None, internal::None, | |
864 internal::None, internal::None, internal::None, internal::None, | |
865 internal::None, internal::None, internal::None, internal::None, | |
866 internal::None, internal::None> { | |
867 typedef internal::Types6<T1, T2, T3, T4, T5, T6> type; | |
868 }; | |
869 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
870 typename T6, typename T7> | |
871 struct Types<T1, T2, T3, T4, T5, T6, T7, internal::None, internal::None, | |
872 internal::None, internal::None, internal::None, internal::None, | |
873 internal::None, internal::None, internal::None, internal::None, | |
874 internal::None, internal::None, internal::None, internal::None, | |
875 internal::None, internal::None, internal::None, internal::None, | |
876 internal::None, internal::None, internal::None, internal::None, | |
877 internal::None, internal::None, internal::None, internal::None, | |
878 internal::None, internal::None, internal::None, internal::None, | |
879 internal::None, internal::None, internal::None, internal::None, | |
880 internal::None, internal::None, internal::None, internal::None, | |
881 internal::None, internal::None, internal::None, internal::None, | |
882 internal::None> { | |
883 typedef internal::Types7<T1, T2, T3, T4, T5, T6, T7> type; | |
884 }; | |
885 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
886 typename T6, typename T7, typename T8> | |
887 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, internal::None, internal::None, | |
888 internal::None, internal::None, internal::None, internal::None, | |
889 internal::None, internal::None, internal::None, internal::None, | |
890 internal::None, internal::None, internal::None, internal::None, | |
891 internal::None, internal::None, internal::None, internal::None, | |
892 internal::None, internal::None, internal::None, internal::None, | |
893 internal::None, internal::None, internal::None, internal::None, | |
894 internal::None, internal::None, internal::None, internal::None, | |
895 internal::None, internal::None, internal::None, internal::None, | |
896 internal::None, internal::None, internal::None, internal::None, | |
897 internal::None, internal::None, internal::None, internal::None> { | |
898 typedef internal::Types8<T1, T2, T3, T4, T5, T6, T7, T8> type; | |
899 }; | |
900 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
901 typename T6, typename T7, typename T8, typename T9> | |
902 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, internal::None, | |
903 internal::None, internal::None, internal::None, internal::None, | |
904 internal::None, internal::None, internal::None, internal::None, | |
905 internal::None, internal::None, internal::None, internal::None, | |
906 internal::None, internal::None, internal::None, internal::None, | |
907 internal::None, internal::None, internal::None, internal::None, | |
908 internal::None, internal::None, internal::None, internal::None, | |
909 internal::None, internal::None, internal::None, internal::None, | |
910 internal::None, internal::None, internal::None, internal::None, | |
911 internal::None, internal::None, internal::None, internal::None, | |
912 internal::None, internal::None, internal::None, internal::None> { | |
913 typedef internal::Types9<T1, T2, T3, T4, T5, T6, T7, T8, T9> type; | |
914 }; | |
915 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
916 typename T6, typename T7, typename T8, typename T9, typename T10> | |
917 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, internal::None, | |
918 internal::None, internal::None, internal::None, internal::None, | |
919 internal::None, internal::None, internal::None, internal::None, | |
920 internal::None, internal::None, internal::None, internal::None, | |
921 internal::None, internal::None, internal::None, internal::None, | |
922 internal::None, internal::None, internal::None, internal::None, | |
923 internal::None, internal::None, internal::None, internal::None, | |
924 internal::None, internal::None, internal::None, internal::None, | |
925 internal::None, internal::None, internal::None, internal::None, | |
926 internal::None, internal::None, internal::None, internal::None, | |
927 internal::None, internal::None, internal::None> { | |
928 typedef internal::Types10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> type; | |
929 }; | |
930 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
931 typename T6, typename T7, typename T8, typename T9, typename T10, | |
932 typename T11> | |
933 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, internal::None, | |
934 internal::None, internal::None, internal::None, internal::None, | |
935 internal::None, internal::None, internal::None, internal::None, | |
936 internal::None, internal::None, internal::None, internal::None, | |
937 internal::None, internal::None, internal::None, internal::None, | |
938 internal::None, internal::None, internal::None, internal::None, | |
939 internal::None, internal::None, internal::None, internal::None, | |
940 internal::None, internal::None, internal::None, internal::None, | |
941 internal::None, internal::None, internal::None, internal::None, | |
942 internal::None, internal::None, internal::None, internal::None, | |
943 internal::None, internal::None> { | |
944 typedef internal::Types11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> type; | |
945 }; | |
946 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
947 typename T6, typename T7, typename T8, typename T9, typename T10, | |
948 typename T11, typename T12> | |
949 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, internal::None, | |
950 internal::None, internal::None, internal::None, internal::None, | |
951 internal::None, internal::None, internal::None, internal::None, | |
952 internal::None, internal::None, internal::None, internal::None, | |
953 internal::None, internal::None, internal::None, internal::None, | |
954 internal::None, internal::None, internal::None, internal::None, | |
955 internal::None, internal::None, internal::None, internal::None, | |
956 internal::None, internal::None, internal::None, internal::None, | |
957 internal::None, internal::None, internal::None, internal::None, | |
958 internal::None, internal::None, internal::None, internal::None, | |
959 internal::None> { | |
960 typedef internal::Types12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, | |
961 T12> type; | |
962 }; | |
963 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
964 typename T6, typename T7, typename T8, typename T9, typename T10, | |
965 typename T11, typename T12, typename T13> | |
966 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
967 internal::None, internal::None, internal::None, internal::None, | |
968 internal::None, internal::None, internal::None, internal::None, | |
969 internal::None, internal::None, internal::None, internal::None, | |
970 internal::None, internal::None, internal::None, internal::None, | |
971 internal::None, internal::None, internal::None, internal::None, | |
972 internal::None, internal::None, internal::None, internal::None, | |
973 internal::None, internal::None, internal::None, internal::None, | |
974 internal::None, internal::None, internal::None, internal::None, | |
975 internal::None, internal::None, internal::None, internal::None, | |
976 internal::None> { | |
977 typedef internal::Types13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
978 T13> type; | |
979 }; | |
980 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
981 typename T6, typename T7, typename T8, typename T9, typename T10, | |
982 typename T11, typename T12, typename T13, typename T14> | |
983 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
984 internal::None, internal::None, internal::None, internal::None, | |
985 internal::None, internal::None, internal::None, internal::None, | |
986 internal::None, internal::None, internal::None, internal::None, | |
987 internal::None, internal::None, internal::None, internal::None, | |
988 internal::None, internal::None, internal::None, internal::None, | |
989 internal::None, internal::None, internal::None, internal::None, | |
990 internal::None, internal::None, internal::None, internal::None, | |
991 internal::None, internal::None, internal::None, internal::None, | |
992 internal::None, internal::None, internal::None, internal::None> { | |
993 typedef internal::Types14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
994 T13, T14> type; | |
995 }; | |
996 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
997 typename T6, typename T7, typename T8, typename T9, typename T10, | |
998 typename T11, typename T12, typename T13, typename T14, typename T15> | |
999 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1000 internal::None, internal::None, internal::None, internal::None, | |
1001 internal::None, internal::None, internal::None, internal::None, | |
1002 internal::None, internal::None, internal::None, internal::None, | |
1003 internal::None, internal::None, internal::None, internal::None, | |
1004 internal::None, internal::None, internal::None, internal::None, | |
1005 internal::None, internal::None, internal::None, internal::None, | |
1006 internal::None, internal::None, internal::None, internal::None, | |
1007 internal::None, internal::None, internal::None, internal::None, | |
1008 internal::None, internal::None, internal::None> { | |
1009 typedef internal::Types15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1010 T13, T14, T15> type; | |
1011 }; | |
1012 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1013 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1014 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1015 typename T16> | |
1016 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1017 T16, internal::None, internal::None, internal::None, internal::None, | |
1018 internal::None, internal::None, internal::None, internal::None, | |
1019 internal::None, internal::None, internal::None, internal::None, | |
1020 internal::None, internal::None, internal::None, internal::None, | |
1021 internal::None, internal::None, internal::None, internal::None, | |
1022 internal::None, internal::None, internal::None, internal::None, | |
1023 internal::None, internal::None, internal::None, internal::None, | |
1024 internal::None, internal::None, internal::None, internal::None, | |
1025 internal::None, internal::None> { | |
1026 typedef internal::Types16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1027 T13, T14, T15, T16> type; | |
1028 }; | |
1029 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1030 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1031 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1032 typename T16, typename T17> | |
1033 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1034 T16, T17, internal::None, internal::None, internal::None, internal::None, | |
1035 internal::None, internal::None, internal::None, internal::None, | |
1036 internal::None, internal::None, internal::None, internal::None, | |
1037 internal::None, internal::None, internal::None, internal::None, | |
1038 internal::None, internal::None, internal::None, internal::None, | |
1039 internal::None, internal::None, internal::None, internal::None, | |
1040 internal::None, internal::None, internal::None, internal::None, | |
1041 internal::None, internal::None, internal::None, internal::None, | |
1042 internal::None> { | |
1043 typedef internal::Types17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1044 T13, T14, T15, T16, T17> type; | |
1045 }; | |
1046 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1047 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1048 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1049 typename T16, typename T17, typename T18> | |
1050 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1051 T16, T17, T18, internal::None, internal::None, internal::None, | |
1052 internal::None, internal::None, internal::None, internal::None, | |
1053 internal::None, internal::None, internal::None, internal::None, | |
1054 internal::None, internal::None, internal::None, internal::None, | |
1055 internal::None, internal::None, internal::None, internal::None, | |
1056 internal::None, internal::None, internal::None, internal::None, | |
1057 internal::None, internal::None, internal::None, internal::None, | |
1058 internal::None, internal::None, internal::None, internal::None, | |
1059 internal::None> { | |
1060 typedef internal::Types18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1061 T13, T14, T15, T16, T17, T18> type; | |
1062 }; | |
1063 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1064 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1065 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1066 typename T16, typename T17, typename T18, typename T19> | |
1067 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1068 T16, T17, T18, T19, internal::None, internal::None, internal::None, | |
1069 internal::None, internal::None, internal::None, internal::None, | |
1070 internal::None, internal::None, internal::None, internal::None, | |
1071 internal::None, internal::None, internal::None, internal::None, | |
1072 internal::None, internal::None, internal::None, internal::None, | |
1073 internal::None, internal::None, internal::None, internal::None, | |
1074 internal::None, internal::None, internal::None, internal::None, | |
1075 internal::None, internal::None, internal::None, internal::None> { | |
1076 typedef internal::Types19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1077 T13, T14, T15, T16, T17, T18, T19> type; | |
1078 }; | |
1079 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1080 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1081 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1082 typename T16, typename T17, typename T18, typename T19, typename T20> | |
1083 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1084 T16, T17, T18, T19, T20, internal::None, internal::None, internal::None, | |
1085 internal::None, internal::None, internal::None, internal::None, | |
1086 internal::None, internal::None, internal::None, internal::None, | |
1087 internal::None, internal::None, internal::None, internal::None, | |
1088 internal::None, internal::None, internal::None, internal::None, | |
1089 internal::None, internal::None, internal::None, internal::None, | |
1090 internal::None, internal::None, internal::None, internal::None, | |
1091 internal::None, internal::None, internal::None> { | |
1092 typedef internal::Types20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1093 T13, T14, T15, T16, T17, T18, T19, T20> type; | |
1094 }; | |
1095 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1096 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1097 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1098 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1099 typename T21> | |
1100 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1101 T16, T17, T18, T19, T20, T21, internal::None, internal::None, | |
1102 internal::None, internal::None, internal::None, internal::None, | |
1103 internal::None, internal::None, internal::None, internal::None, | |
1104 internal::None, internal::None, internal::None, internal::None, | |
1105 internal::None, internal::None, internal::None, internal::None, | |
1106 internal::None, internal::None, internal::None, internal::None, | |
1107 internal::None, internal::None, internal::None, internal::None, | |
1108 internal::None, internal::None, internal::None> { | |
1109 typedef internal::Types21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1110 T13, T14, T15, T16, T17, T18, T19, T20, T21> type; | |
1111 }; | |
1112 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1113 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1114 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1115 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1116 typename T21, typename T22> | |
1117 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1118 T16, T17, T18, T19, T20, T21, T22, internal::None, internal::None, | |
1119 internal::None, internal::None, internal::None, internal::None, | |
1120 internal::None, internal::None, internal::None, internal::None, | |
1121 internal::None, internal::None, internal::None, internal::None, | |
1122 internal::None, internal::None, internal::None, internal::None, | |
1123 internal::None, internal::None, internal::None, internal::None, | |
1124 internal::None, internal::None, internal::None, internal::None, | |
1125 internal::None, internal::None> { | |
1126 typedef internal::Types22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1127 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> type; | |
1128 }; | |
1129 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1130 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1131 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1132 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1133 typename T21, typename T22, typename T23> | |
1134 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1135 T16, T17, T18, T19, T20, T21, T22, T23, internal::None, internal::None, | |
1136 internal::None, internal::None, internal::None, internal::None, | |
1137 internal::None, internal::None, internal::None, internal::None, | |
1138 internal::None, internal::None, internal::None, internal::None, | |
1139 internal::None, internal::None, internal::None, internal::None, | |
1140 internal::None, internal::None, internal::None, internal::None, | |
1141 internal::None, internal::None, internal::None, internal::None, | |
1142 internal::None> { | |
1143 typedef internal::Types23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1144 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> type; | |
1145 }; | |
1146 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1147 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1148 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1149 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1150 typename T21, typename T22, typename T23, typename T24> | |
1151 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1152 T16, T17, T18, T19, T20, T21, T22, T23, T24, internal::None, | |
1153 internal::None, internal::None, internal::None, internal::None, | |
1154 internal::None, internal::None, internal::None, internal::None, | |
1155 internal::None, internal::None, internal::None, internal::None, | |
1156 internal::None, internal::None, internal::None, internal::None, | |
1157 internal::None, internal::None, internal::None, internal::None, | |
1158 internal::None, internal::None, internal::None, internal::None, | |
1159 internal::None> { | |
1160 typedef internal::Types24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1161 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> type; | |
1162 }; | |
1163 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1164 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1165 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1166 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1167 typename T21, typename T22, typename T23, typename T24, typename T25> | |
1168 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1169 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, internal::None, | |
1170 internal::None, internal::None, internal::None, internal::None, | |
1171 internal::None, internal::None, internal::None, internal::None, | |
1172 internal::None, internal::None, internal::None, internal::None, | |
1173 internal::None, internal::None, internal::None, internal::None, | |
1174 internal::None, internal::None, internal::None, internal::None, | |
1175 internal::None, internal::None, internal::None, internal::None> { | |
1176 typedef internal::Types25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1177 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> type; | |
1178 }; | |
1179 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1180 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1181 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1182 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1183 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1184 typename T26> | |
1185 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1186 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, internal::None, | |
1187 internal::None, internal::None, internal::None, internal::None, | |
1188 internal::None, internal::None, internal::None, internal::None, | |
1189 internal::None, internal::None, internal::None, internal::None, | |
1190 internal::None, internal::None, internal::None, internal::None, | |
1191 internal::None, internal::None, internal::None, internal::None, | |
1192 internal::None, internal::None, internal::None> { | |
1193 typedef internal::Types26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1194 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, | |
1195 T26> type; | |
1196 }; | |
1197 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1198 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1199 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1200 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1201 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1202 typename T26, typename T27> | |
1203 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1204 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, internal::None, | |
1205 internal::None, internal::None, internal::None, internal::None, | |
1206 internal::None, internal::None, internal::None, internal::None, | |
1207 internal::None, internal::None, internal::None, internal::None, | |
1208 internal::None, internal::None, internal::None, internal::None, | |
1209 internal::None, internal::None, internal::None, internal::None, | |
1210 internal::None, internal::None> { | |
1211 typedef internal::Types27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1212 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1213 T27> type; | |
1214 }; | |
1215 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1216 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1217 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1218 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1219 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1220 typename T26, typename T27, typename T28> | |
1221 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1222 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
1223 internal::None, internal::None, internal::None, internal::None, | |
1224 internal::None, internal::None, internal::None, internal::None, | |
1225 internal::None, internal::None, internal::None, internal::None, | |
1226 internal::None, internal::None, internal::None, internal::None, | |
1227 internal::None, internal::None, internal::None, internal::None, | |
1228 internal::None, internal::None> { | |
1229 typedef internal::Types28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1230 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1231 T27, T28> type; | |
1232 }; | |
1233 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1234 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1235 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1236 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1237 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1238 typename T26, typename T27, typename T28, typename T29> | |
1239 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1240 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
1241 internal::None, internal::None, internal::None, internal::None, | |
1242 internal::None, internal::None, internal::None, internal::None, | |
1243 internal::None, internal::None, internal::None, internal::None, | |
1244 internal::None, internal::None, internal::None, internal::None, | |
1245 internal::None, internal::None, internal::None, internal::None, | |
1246 internal::None> { | |
1247 typedef internal::Types29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1248 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1249 T27, T28, T29> type; | |
1250 }; | |
1251 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1252 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1253 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1254 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1255 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1256 typename T26, typename T27, typename T28, typename T29, typename T30> | |
1257 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1258 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1259 internal::None, internal::None, internal::None, internal::None, | |
1260 internal::None, internal::None, internal::None, internal::None, | |
1261 internal::None, internal::None, internal::None, internal::None, | |
1262 internal::None, internal::None, internal::None, internal::None, | |
1263 internal::None, internal::None, internal::None, internal::None> { | |
1264 typedef internal::Types30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1265 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1266 T27, T28, T29, T30> type; | |
1267 }; | |
1268 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1269 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1270 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1271 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1272 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1273 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1274 typename T31> | |
1275 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1276 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1277 T31, internal::None, internal::None, internal::None, internal::None, | |
1278 internal::None, internal::None, internal::None, internal::None, | |
1279 internal::None, internal::None, internal::None, internal::None, | |
1280 internal::None, internal::None, internal::None, internal::None, | |
1281 internal::None, internal::None, internal::None> { | |
1282 typedef internal::Types31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1283 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1284 T27, T28, T29, T30, T31> type; | |
1285 }; | |
1286 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1287 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1288 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1289 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1290 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1291 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1292 typename T31, typename T32> | |
1293 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1294 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1295 T31, T32, internal::None, internal::None, internal::None, internal::None, | |
1296 internal::None, internal::None, internal::None, internal::None, | |
1297 internal::None, internal::None, internal::None, internal::None, | |
1298 internal::None, internal::None, internal::None, internal::None, | |
1299 internal::None, internal::None> { | |
1300 typedef internal::Types32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1301 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1302 T27, T28, T29, T30, T31, T32> type; | |
1303 }; | |
1304 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1305 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1306 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1307 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1308 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1309 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1310 typename T31, typename T32, typename T33> | |
1311 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1312 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1313 T31, T32, T33, internal::None, internal::None, internal::None, | |
1314 internal::None, internal::None, internal::None, internal::None, | |
1315 internal::None, internal::None, internal::None, internal::None, | |
1316 internal::None, internal::None, internal::None, internal::None, | |
1317 internal::None, internal::None> { | |
1318 typedef internal::Types33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1319 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1320 T27, T28, T29, T30, T31, T32, T33> type; | |
1321 }; | |
1322 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1323 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1324 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1325 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1326 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1327 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1328 typename T31, typename T32, typename T33, typename T34> | |
1329 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1330 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1331 T31, T32, T33, T34, internal::None, internal::None, internal::None, | |
1332 internal::None, internal::None, internal::None, internal::None, | |
1333 internal::None, internal::None, internal::None, internal::None, | |
1334 internal::None, internal::None, internal::None, internal::None, | |
1335 internal::None> { | |
1336 typedef internal::Types34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1337 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1338 T27, T28, T29, T30, T31, T32, T33, T34> type; | |
1339 }; | |
1340 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1341 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1342 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1343 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1344 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1345 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1346 typename T31, typename T32, typename T33, typename T34, typename T35> | |
1347 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1348 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1349 T31, T32, T33, T34, T35, internal::None, internal::None, internal::None, | |
1350 internal::None, internal::None, internal::None, internal::None, | |
1351 internal::None, internal::None, internal::None, internal::None, | |
1352 internal::None, internal::None, internal::None, internal::None> { | |
1353 typedef internal::Types35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1354 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1355 T27, T28, T29, T30, T31, T32, T33, T34, T35> type; | |
1356 }; | |
1357 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1358 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1359 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1360 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1361 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1362 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1363 typename T31, typename T32, typename T33, typename T34, typename T35, | |
1364 typename T36> | |
1365 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1366 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1367 T31, T32, T33, T34, T35, T36, internal::None, internal::None, | |
1368 internal::None, internal::None, internal::None, internal::None, | |
1369 internal::None, internal::None, internal::None, internal::None, | |
1370 internal::None, internal::None, internal::None, internal::None> { | |
1371 typedef internal::Types36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1372 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1373 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36> type; | |
1374 }; | |
1375 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1376 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1377 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1378 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1379 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1380 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1381 typename T31, typename T32, typename T33, typename T34, typename T35, | |
1382 typename T36, typename T37> | |
1383 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1384 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1385 T31, T32, T33, T34, T35, T36, T37, internal::None, internal::None, | |
1386 internal::None, internal::None, internal::None, internal::None, | |
1387 internal::None, internal::None, internal::None, internal::None, | |
1388 internal::None, internal::None, internal::None> { | |
1389 typedef internal::Types37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1390 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1391 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37> type; | |
1392 }; | |
1393 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1394 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1395 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1396 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1397 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1398 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1399 typename T31, typename T32, typename T33, typename T34, typename T35, | |
1400 typename T36, typename T37, typename T38> | |
1401 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1402 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1403 T31, T32, T33, T34, T35, T36, T37, T38, internal::None, internal::None, | |
1404 internal::None, internal::None, internal::None, internal::None, | |
1405 internal::None, internal::None, internal::None, internal::None, | |
1406 internal::None, internal::None> { | |
1407 typedef internal::Types38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1408 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1409 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> type; | |
1410 }; | |
1411 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1412 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1413 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1414 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1415 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1416 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1417 typename T31, typename T32, typename T33, typename T34, typename T35, | |
1418 typename T36, typename T37, typename T38, typename T39> | |
1419 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1420 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1421 T31, T32, T33, T34, T35, T36, T37, T38, T39, internal::None, | |
1422 internal::None, internal::None, internal::None, internal::None, | |
1423 internal::None, internal::None, internal::None, internal::None, | |
1424 internal::None, internal::None> { | |
1425 typedef internal::Types39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1426 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1427 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> type; | |
1428 }; | |
1429 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1430 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1431 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1432 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1433 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1434 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1435 typename T31, typename T32, typename T33, typename T34, typename T35, | |
1436 typename T36, typename T37, typename T38, typename T39, typename T40> | |
1437 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1438 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1439 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, internal::None, | |
1440 internal::None, internal::None, internal::None, internal::None, | |
1441 internal::None, internal::None, internal::None, internal::None, | |
1442 internal::None> { | |
1443 typedef internal::Types40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1444 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1445 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, | |
1446 T40> type; | |
1447 }; | |
1448 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1449 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1450 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1451 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1452 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1453 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1454 typename T31, typename T32, typename T33, typename T34, typename T35, | |
1455 typename T36, typename T37, typename T38, typename T39, typename T40, | |
1456 typename T41> | |
1457 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1458 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1459 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, internal::None, | |
1460 internal::None, internal::None, internal::None, internal::None, | |
1461 internal::None, internal::None, internal::None, internal::None> { | |
1462 typedef internal::Types41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1463 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1464 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, | |
1465 T41> type; | |
1466 }; | |
1467 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1468 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1469 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1470 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1471 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1472 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1473 typename T31, typename T32, typename T33, typename T34, typename T35, | |
1474 typename T36, typename T37, typename T38, typename T39, typename T40, | |
1475 typename T41, typename T42> | |
1476 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1477 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1478 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, internal::None, | |
1479 internal::None, internal::None, internal::None, internal::None, | |
1480 internal::None, internal::None, internal::None> { | |
1481 typedef internal::Types42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1482 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1483 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, | |
1484 T41, T42> type; | |
1485 }; | |
1486 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1487 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1488 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1489 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1490 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1491 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1492 typename T31, typename T32, typename T33, typename T34, typename T35, | |
1493 typename T36, typename T37, typename T38, typename T39, typename T40, | |
1494 typename T41, typename T42, typename T43> | |
1495 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1496 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1497 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, | |
1498 internal::None, internal::None, internal::None, internal::None, | |
1499 internal::None, internal::None, internal::None> { | |
1500 typedef internal::Types43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1501 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1502 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, | |
1503 T41, T42, T43> type; | |
1504 }; | |
1505 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1506 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1507 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1508 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1509 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1510 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1511 typename T31, typename T32, typename T33, typename T34, typename T35, | |
1512 typename T36, typename T37, typename T38, typename T39, typename T40, | |
1513 typename T41, typename T42, typename T43, typename T44> | |
1514 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1515 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1516 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, | |
1517 internal::None, internal::None, internal::None, internal::None, | |
1518 internal::None, internal::None> { | |
1519 typedef internal::Types44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1520 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1521 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, | |
1522 T41, T42, T43, T44> type; | |
1523 }; | |
1524 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1525 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1526 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1527 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1528 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1529 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1530 typename T31, typename T32, typename T33, typename T34, typename T35, | |
1531 typename T36, typename T37, typename T38, typename T39, typename T40, | |
1532 typename T41, typename T42, typename T43, typename T44, typename T45> | |
1533 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1534 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1535 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, | |
1536 internal::None, internal::None, internal::None, internal::None, | |
1537 internal::None> { | |
1538 typedef internal::Types45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1539 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1540 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, | |
1541 T41, T42, T43, T44, T45> type; | |
1542 }; | |
1543 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1544 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1545 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1546 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1547 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1548 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1549 typename T31, typename T32, typename T33, typename T34, typename T35, | |
1550 typename T36, typename T37, typename T38, typename T39, typename T40, | |
1551 typename T41, typename T42, typename T43, typename T44, typename T45, | |
1552 typename T46> | |
1553 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1554 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1555 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, | |
1556 T46, internal::None, internal::None, internal::None, internal::None> { | |
1557 typedef internal::Types46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1558 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1559 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, | |
1560 T41, T42, T43, T44, T45, T46> type; | |
1561 }; | |
1562 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1563 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1564 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1565 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1566 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1567 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1568 typename T31, typename T32, typename T33, typename T34, typename T35, | |
1569 typename T36, typename T37, typename T38, typename T39, typename T40, | |
1570 typename T41, typename T42, typename T43, typename T44, typename T45, | |
1571 typename T46, typename T47> | |
1572 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1573 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1574 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, | |
1575 T46, T47, internal::None, internal::None, internal::None> { | |
1576 typedef internal::Types47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1577 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1578 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, | |
1579 T41, T42, T43, T44, T45, T46, T47> type; | |
1580 }; | |
1581 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1582 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1583 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1584 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1585 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1586 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1587 typename T31, typename T32, typename T33, typename T34, typename T35, | |
1588 typename T36, typename T37, typename T38, typename T39, typename T40, | |
1589 typename T41, typename T42, typename T43, typename T44, typename T45, | |
1590 typename T46, typename T47, typename T48> | |
1591 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1592 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1593 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, | |
1594 T46, T47, T48, internal::None, internal::None> { | |
1595 typedef internal::Types48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1596 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1597 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, | |
1598 T41, T42, T43, T44, T45, T46, T47, T48> type; | |
1599 }; | |
1600 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
1601 typename T6, typename T7, typename T8, typename T9, typename T10, | |
1602 typename T11, typename T12, typename T13, typename T14, typename T15, | |
1603 typename T16, typename T17, typename T18, typename T19, typename T20, | |
1604 typename T21, typename T22, typename T23, typename T24, typename T25, | |
1605 typename T26, typename T27, typename T28, typename T29, typename T30, | |
1606 typename T31, typename T32, typename T33, typename T34, typename T35, | |
1607 typename T36, typename T37, typename T38, typename T39, typename T40, | |
1608 typename T41, typename T42, typename T43, typename T44, typename T45, | |
1609 typename T46, typename T47, typename T48, typename T49> | |
1610 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, | |
1611 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, | |
1612 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, | |
1613 T46, T47, T48, T49, internal::None> { | |
1614 typedef internal::Types49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
1615 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
1616 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, | |
1617 T41, T42, T43, T44, T45, T46, T47, T48, T49> type; | |
1618 }; | |
1619 | |
1620 namespace internal { | |
1621 | |
1622 # define GTEST_TEMPLATE_ template <typename T> class | |
1623 | |
1624 // The template "selector" struct TemplateSel<Tmpl> is used to | |
1625 // represent Tmpl, which must be a class template with one type | |
1626 // parameter, as a type. TemplateSel<Tmpl>::Bind<T>::type is defined | |
1627 // as the type Tmpl<T>. This allows us to actually instantiate the | |
1628 // template "selected" by TemplateSel<Tmpl>. | |
1629 // | |
1630 // This trick is necessary for simulating typedef for class templates, | |
1631 // which C++ doesn't support directly. | |
1632 template <GTEST_TEMPLATE_ Tmpl> | |
1633 struct TemplateSel { | |
1634 template <typename T> | |
1635 struct Bind { | |
1636 typedef Tmpl<T> type; | |
1637 }; | |
1638 }; | |
1639 | |
1640 # define GTEST_BIND_(TmplSel, T) \ | |
1641 TmplSel::template Bind<T>::type | |
1642 | |
1643 // A unique struct template used as the default value for the | |
1644 // arguments of class template Templates. This allows us to simulate | |
1645 // variadic templates (e.g. Templates<int>, Templates<int, double>, | |
1646 // and etc), which C++ doesn't support directly. | |
1647 template <typename T> | |
1648 struct NoneT {}; | |
1649 | |
1650 // The following family of struct and struct templates are used to | |
1651 // represent template lists. In particular, TemplatesN<T1, T2, ..., | |
1652 // TN> represents a list of N templates (T1, T2, ..., and TN). Except | |
1653 // for Templates0, every struct in the family has two member types: | |
1654 // Head for the selector of the first template in the list, and Tail | |
1655 // for the rest of the list. | |
1656 | |
1657 // The empty template list. | |
1658 struct Templates0 {}; | |
1659 | |
1660 // Template lists of length 1, 2, 3, and so on. | |
1661 | |
1662 template <GTEST_TEMPLATE_ T1> | |
1663 struct Templates1 { | |
1664 typedef TemplateSel<T1> Head; | |
1665 typedef Templates0 Tail; | |
1666 }; | |
1667 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2> | |
1668 struct Templates2 { | |
1669 typedef TemplateSel<T1> Head; | |
1670 typedef Templates1<T2> Tail; | |
1671 }; | |
1672 | |
1673 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3> | |
1674 struct Templates3 { | |
1675 typedef TemplateSel<T1> Head; | |
1676 typedef Templates2<T2, T3> Tail; | |
1677 }; | |
1678 | |
1679 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1680 GTEST_TEMPLATE_ T4> | |
1681 struct Templates4 { | |
1682 typedef TemplateSel<T1> Head; | |
1683 typedef Templates3<T2, T3, T4> Tail; | |
1684 }; | |
1685 | |
1686 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1687 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5> | |
1688 struct Templates5 { | |
1689 typedef TemplateSel<T1> Head; | |
1690 typedef Templates4<T2, T3, T4, T5> Tail; | |
1691 }; | |
1692 | |
1693 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1694 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6> | |
1695 struct Templates6 { | |
1696 typedef TemplateSel<T1> Head; | |
1697 typedef Templates5<T2, T3, T4, T5, T6> Tail; | |
1698 }; | |
1699 | |
1700 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1701 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1702 GTEST_TEMPLATE_ T7> | |
1703 struct Templates7 { | |
1704 typedef TemplateSel<T1> Head; | |
1705 typedef Templates6<T2, T3, T4, T5, T6, T7> Tail; | |
1706 }; | |
1707 | |
1708 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1709 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1710 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8> | |
1711 struct Templates8 { | |
1712 typedef TemplateSel<T1> Head; | |
1713 typedef Templates7<T2, T3, T4, T5, T6, T7, T8> Tail; | |
1714 }; | |
1715 | |
1716 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1717 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1718 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9> | |
1719 struct Templates9 { | |
1720 typedef TemplateSel<T1> Head; | |
1721 typedef Templates8<T2, T3, T4, T5, T6, T7, T8, T9> Tail; | |
1722 }; | |
1723 | |
1724 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1725 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1726 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1727 GTEST_TEMPLATE_ T10> | |
1728 struct Templates10 { | |
1729 typedef TemplateSel<T1> Head; | |
1730 typedef Templates9<T2, T3, T4, T5, T6, T7, T8, T9, T10> Tail; | |
1731 }; | |
1732 | |
1733 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1734 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1735 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1736 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11> | |
1737 struct Templates11 { | |
1738 typedef TemplateSel<T1> Head; | |
1739 typedef Templates10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Tail; | |
1740 }; | |
1741 | |
1742 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1743 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1744 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1745 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12> | |
1746 struct Templates12 { | |
1747 typedef TemplateSel<T1> Head; | |
1748 typedef Templates11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tail; | |
1749 }; | |
1750 | |
1751 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1752 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1753 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1754 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1755 GTEST_TEMPLATE_ T13> | |
1756 struct Templates13 { | |
1757 typedef TemplateSel<T1> Head; | |
1758 typedef Templates12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail; | |
1759 }; | |
1760 | |
1761 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1762 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1763 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1764 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1765 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14> | |
1766 struct Templates14 { | |
1767 typedef TemplateSel<T1> Head; | |
1768 typedef Templates13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
1769 T14> Tail; | |
1770 }; | |
1771 | |
1772 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1773 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1774 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1775 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1776 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15> | |
1777 struct Templates15 { | |
1778 typedef TemplateSel<T1> Head; | |
1779 typedef Templates14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
1780 T15> Tail; | |
1781 }; | |
1782 | |
1783 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1784 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1785 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1786 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1787 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
1788 GTEST_TEMPLATE_ T16> | |
1789 struct Templates16 { | |
1790 typedef TemplateSel<T1> Head; | |
1791 typedef Templates15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
1792 T15, T16> Tail; | |
1793 }; | |
1794 | |
1795 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1796 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1797 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1798 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1799 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
1800 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17> | |
1801 struct Templates17 { | |
1802 typedef TemplateSel<T1> Head; | |
1803 typedef Templates16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
1804 T15, T16, T17> Tail; | |
1805 }; | |
1806 | |
1807 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1808 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1809 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1810 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1811 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
1812 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18> | |
1813 struct Templates18 { | |
1814 typedef TemplateSel<T1> Head; | |
1815 typedef Templates17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
1816 T15, T16, T17, T18> Tail; | |
1817 }; | |
1818 | |
1819 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1820 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1821 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1822 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1823 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
1824 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
1825 GTEST_TEMPLATE_ T19> | |
1826 struct Templates19 { | |
1827 typedef TemplateSel<T1> Head; | |
1828 typedef Templates18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
1829 T15, T16, T17, T18, T19> Tail; | |
1830 }; | |
1831 | |
1832 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1833 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1834 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1835 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1836 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
1837 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
1838 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20> | |
1839 struct Templates20 { | |
1840 typedef TemplateSel<T1> Head; | |
1841 typedef Templates19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
1842 T15, T16, T17, T18, T19, T20> Tail; | |
1843 }; | |
1844 | |
1845 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1846 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1847 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1848 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1849 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
1850 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
1851 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21> | |
1852 struct Templates21 { | |
1853 typedef TemplateSel<T1> Head; | |
1854 typedef Templates20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
1855 T15, T16, T17, T18, T19, T20, T21> Tail; | |
1856 }; | |
1857 | |
1858 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1859 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1860 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1861 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1862 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
1863 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
1864 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
1865 GTEST_TEMPLATE_ T22> | |
1866 struct Templates22 { | |
1867 typedef TemplateSel<T1> Head; | |
1868 typedef Templates21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
1869 T15, T16, T17, T18, T19, T20, T21, T22> Tail; | |
1870 }; | |
1871 | |
1872 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1873 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1874 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1875 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1876 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
1877 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
1878 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
1879 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23> | |
1880 struct Templates23 { | |
1881 typedef TemplateSel<T1> Head; | |
1882 typedef Templates22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
1883 T15, T16, T17, T18, T19, T20, T21, T22, T23> Tail; | |
1884 }; | |
1885 | |
1886 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1887 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1888 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1889 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1890 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
1891 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
1892 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
1893 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24> | |
1894 struct Templates24 { | |
1895 typedef TemplateSel<T1> Head; | |
1896 typedef Templates23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
1897 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> Tail; | |
1898 }; | |
1899 | |
1900 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1901 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1902 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1903 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1904 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
1905 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
1906 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
1907 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
1908 GTEST_TEMPLATE_ T25> | |
1909 struct Templates25 { | |
1910 typedef TemplateSel<T1> Head; | |
1911 typedef Templates24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
1912 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Tail; | |
1913 }; | |
1914 | |
1915 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1916 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1917 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1918 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1919 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
1920 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
1921 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
1922 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
1923 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26> | |
1924 struct Templates26 { | |
1925 typedef TemplateSel<T1> Head; | |
1926 typedef Templates25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
1927 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> Tail; | |
1928 }; | |
1929 | |
1930 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1931 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1932 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1933 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1934 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
1935 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
1936 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
1937 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
1938 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27> | |
1939 struct Templates27 { | |
1940 typedef TemplateSel<T1> Head; | |
1941 typedef Templates26<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
1942 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> Tail; | |
1943 }; | |
1944 | |
1945 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1946 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1947 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1948 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1949 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
1950 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
1951 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
1952 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
1953 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
1954 GTEST_TEMPLATE_ T28> | |
1955 struct Templates28 { | |
1956 typedef TemplateSel<T1> Head; | |
1957 typedef Templates27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
1958 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
1959 T28> Tail; | |
1960 }; | |
1961 | |
1962 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1963 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1964 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1965 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1966 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
1967 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
1968 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
1969 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
1970 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
1971 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29> | |
1972 struct Templates29 { | |
1973 typedef TemplateSel<T1> Head; | |
1974 typedef Templates28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
1975 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
1976 T29> Tail; | |
1977 }; | |
1978 | |
1979 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1980 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1981 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1982 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
1983 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
1984 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
1985 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
1986 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
1987 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
1988 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30> | |
1989 struct Templates30 { | |
1990 typedef TemplateSel<T1> Head; | |
1991 typedef Templates29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
1992 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
1993 T29, T30> Tail; | |
1994 }; | |
1995 | |
1996 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
1997 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
1998 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
1999 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2000 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2001 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2002 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2003 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2004 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2005 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2006 GTEST_TEMPLATE_ T31> | |
2007 struct Templates31 { | |
2008 typedef TemplateSel<T1> Head; | |
2009 typedef Templates30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2010 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2011 T29, T30, T31> Tail; | |
2012 }; | |
2013 | |
2014 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2015 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2016 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2017 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2018 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2019 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2020 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2021 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2022 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2023 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2024 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32> | |
2025 struct Templates32 { | |
2026 typedef TemplateSel<T1> Head; | |
2027 typedef Templates31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2028 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2029 T29, T30, T31, T32> Tail; | |
2030 }; | |
2031 | |
2032 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2033 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2034 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2035 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2036 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2037 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2038 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2039 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2040 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2041 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2042 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33> | |
2043 struct Templates33 { | |
2044 typedef TemplateSel<T1> Head; | |
2045 typedef Templates32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2046 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2047 T29, T30, T31, T32, T33> Tail; | |
2048 }; | |
2049 | |
2050 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2051 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2052 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2053 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2054 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2055 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2056 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2057 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2058 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2059 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2060 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2061 GTEST_TEMPLATE_ T34> | |
2062 struct Templates34 { | |
2063 typedef TemplateSel<T1> Head; | |
2064 typedef Templates33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2065 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2066 T29, T30, T31, T32, T33, T34> Tail; | |
2067 }; | |
2068 | |
2069 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2070 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2071 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2072 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2073 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2074 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2075 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2076 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2077 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2078 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2079 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2080 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35> | |
2081 struct Templates35 { | |
2082 typedef TemplateSel<T1> Head; | |
2083 typedef Templates34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2084 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2085 T29, T30, T31, T32, T33, T34, T35> Tail; | |
2086 }; | |
2087 | |
2088 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2089 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2090 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2091 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2092 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2093 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2094 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2095 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2096 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2097 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2098 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2099 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36> | |
2100 struct Templates36 { | |
2101 typedef TemplateSel<T1> Head; | |
2102 typedef Templates35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2103 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2104 T29, T30, T31, T32, T33, T34, T35, T36> Tail; | |
2105 }; | |
2106 | |
2107 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2108 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2109 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2110 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2111 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2112 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2113 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2114 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2115 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2116 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2117 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2118 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
2119 GTEST_TEMPLATE_ T37> | |
2120 struct Templates37 { | |
2121 typedef TemplateSel<T1> Head; | |
2122 typedef Templates36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2123 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2124 T29, T30, T31, T32, T33, T34, T35, T36, T37> Tail; | |
2125 }; | |
2126 | |
2127 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2128 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2129 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2130 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2131 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2132 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2133 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2134 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2135 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2136 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2137 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2138 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
2139 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38> | |
2140 struct Templates38 { | |
2141 typedef TemplateSel<T1> Head; | |
2142 typedef Templates37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2143 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2144 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> Tail; | |
2145 }; | |
2146 | |
2147 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2148 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2149 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2150 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2151 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2152 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2153 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2154 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2155 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2156 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2157 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2158 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
2159 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39> | |
2160 struct Templates39 { | |
2161 typedef TemplateSel<T1> Head; | |
2162 typedef Templates38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2163 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2164 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Tail; | |
2165 }; | |
2166 | |
2167 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2168 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2169 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2170 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2171 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2172 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2173 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2174 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2175 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2176 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2177 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2178 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
2179 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
2180 GTEST_TEMPLATE_ T40> | |
2181 struct Templates40 { | |
2182 typedef TemplateSel<T1> Head; | |
2183 typedef Templates39<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2184 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2185 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Tail; | |
2186 }; | |
2187 | |
2188 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2189 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2190 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2191 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2192 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2193 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2194 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2195 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2196 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2197 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2198 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2199 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
2200 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
2201 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41> | |
2202 struct Templates41 { | |
2203 typedef TemplateSel<T1> Head; | |
2204 typedef Templates40<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2205 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2206 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41> Tail; | |
2207 }; | |
2208 | |
2209 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2210 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2211 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2212 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2213 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2214 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2215 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2216 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2217 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2218 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2219 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2220 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
2221 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
2222 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42> | |
2223 struct Templates42 { | |
2224 typedef TemplateSel<T1> Head; | |
2225 typedef Templates41<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2226 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2227 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, | |
2228 T42> Tail; | |
2229 }; | |
2230 | |
2231 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2232 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2233 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2234 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2235 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2236 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2237 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2238 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2239 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2240 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2241 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2242 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
2243 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
2244 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, | |
2245 GTEST_TEMPLATE_ T43> | |
2246 struct Templates43 { | |
2247 typedef TemplateSel<T1> Head; | |
2248 typedef Templates42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2249 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2250 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, | |
2251 T43> Tail; | |
2252 }; | |
2253 | |
2254 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2255 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2256 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2257 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2258 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2259 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2260 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2261 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2262 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2263 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2264 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2265 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
2266 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
2267 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, | |
2268 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44> | |
2269 struct Templates44 { | |
2270 typedef TemplateSel<T1> Head; | |
2271 typedef Templates43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2272 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2273 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, | |
2274 T43, T44> Tail; | |
2275 }; | |
2276 | |
2277 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2278 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2279 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2280 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2281 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2282 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2283 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2284 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2285 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2286 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2287 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2288 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
2289 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
2290 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, | |
2291 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45> | |
2292 struct Templates45 { | |
2293 typedef TemplateSel<T1> Head; | |
2294 typedef Templates44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2295 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2296 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, | |
2297 T43, T44, T45> Tail; | |
2298 }; | |
2299 | |
2300 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2301 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2302 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2303 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2304 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2305 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2306 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2307 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2308 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2309 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2310 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2311 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
2312 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
2313 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, | |
2314 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, | |
2315 GTEST_TEMPLATE_ T46> | |
2316 struct Templates46 { | |
2317 typedef TemplateSel<T1> Head; | |
2318 typedef Templates45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2319 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2320 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, | |
2321 T43, T44, T45, T46> Tail; | |
2322 }; | |
2323 | |
2324 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2325 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2326 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2327 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2328 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2329 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2330 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2331 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2332 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2333 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2334 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2335 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
2336 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
2337 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, | |
2338 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, | |
2339 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47> | |
2340 struct Templates47 { | |
2341 typedef TemplateSel<T1> Head; | |
2342 typedef Templates46<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2343 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2344 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, | |
2345 T43, T44, T45, T46, T47> Tail; | |
2346 }; | |
2347 | |
2348 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2349 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2350 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2351 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2352 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2353 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2354 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2355 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2356 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2357 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2358 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2359 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
2360 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
2361 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, | |
2362 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, | |
2363 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48> | |
2364 struct Templates48 { | |
2365 typedef TemplateSel<T1> Head; | |
2366 typedef Templates47<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2367 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2368 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, | |
2369 T43, T44, T45, T46, T47, T48> Tail; | |
2370 }; | |
2371 | |
2372 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2373 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2374 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2375 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2376 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2377 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2378 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2379 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2380 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2381 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2382 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2383 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
2384 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
2385 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, | |
2386 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, | |
2387 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48, | |
2388 GTEST_TEMPLATE_ T49> | |
2389 struct Templates49 { | |
2390 typedef TemplateSel<T1> Head; | |
2391 typedef Templates48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2392 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2393 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, | |
2394 T43, T44, T45, T46, T47, T48, T49> Tail; | |
2395 }; | |
2396 | |
2397 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2398 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2399 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2400 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2401 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2402 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2403 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2404 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2405 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2406 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2407 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2408 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
2409 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
2410 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, | |
2411 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, | |
2412 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48, | |
2413 GTEST_TEMPLATE_ T49, GTEST_TEMPLATE_ T50> | |
2414 struct Templates50 { | |
2415 typedef TemplateSel<T1> Head; | |
2416 typedef Templates49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2417 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2418 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, | |
2419 T43, T44, T45, T46, T47, T48, T49, T50> Tail; | |
2420 }; | |
2421 | |
2422 | |
2423 // We don't want to require the users to write TemplatesN<...> directly, | |
2424 // as that would require them to count the length. Templates<...> is much | |
2425 // easier to write, but generates horrible messages when there is a | |
2426 // compiler error, as gcc insists on printing out each template | |
2427 // argument, even if it has the default value (this means Templates<list> | |
2428 // will appear as Templates<list, NoneT, NoneT, ..., NoneT> in the compiler | |
2429 // errors). | |
2430 // | |
2431 // Our solution is to combine the best part of the two approaches: a | |
2432 // user would write Templates<T1, ..., TN>, and Google Test will translate | |
2433 // that to TemplatesN<T1, ..., TN> internally to make error messages | |
2434 // readable. The translation is done by the 'type' member of the | |
2435 // Templates template. | |
2436 template <GTEST_TEMPLATE_ T1 = NoneT, GTEST_TEMPLATE_ T2 = NoneT, | |
2437 GTEST_TEMPLATE_ T3 = NoneT, GTEST_TEMPLATE_ T4 = NoneT, | |
2438 GTEST_TEMPLATE_ T5 = NoneT, GTEST_TEMPLATE_ T6 = NoneT, | |
2439 GTEST_TEMPLATE_ T7 = NoneT, GTEST_TEMPLATE_ T8 = NoneT, | |
2440 GTEST_TEMPLATE_ T9 = NoneT, GTEST_TEMPLATE_ T10 = NoneT, | |
2441 GTEST_TEMPLATE_ T11 = NoneT, GTEST_TEMPLATE_ T12 = NoneT, | |
2442 GTEST_TEMPLATE_ T13 = NoneT, GTEST_TEMPLATE_ T14 = NoneT, | |
2443 GTEST_TEMPLATE_ T15 = NoneT, GTEST_TEMPLATE_ T16 = NoneT, | |
2444 GTEST_TEMPLATE_ T17 = NoneT, GTEST_TEMPLATE_ T18 = NoneT, | |
2445 GTEST_TEMPLATE_ T19 = NoneT, GTEST_TEMPLATE_ T20 = NoneT, | |
2446 GTEST_TEMPLATE_ T21 = NoneT, GTEST_TEMPLATE_ T22 = NoneT, | |
2447 GTEST_TEMPLATE_ T23 = NoneT, GTEST_TEMPLATE_ T24 = NoneT, | |
2448 GTEST_TEMPLATE_ T25 = NoneT, GTEST_TEMPLATE_ T26 = NoneT, | |
2449 GTEST_TEMPLATE_ T27 = NoneT, GTEST_TEMPLATE_ T28 = NoneT, | |
2450 GTEST_TEMPLATE_ T29 = NoneT, GTEST_TEMPLATE_ T30 = NoneT, | |
2451 GTEST_TEMPLATE_ T31 = NoneT, GTEST_TEMPLATE_ T32 = NoneT, | |
2452 GTEST_TEMPLATE_ T33 = NoneT, GTEST_TEMPLATE_ T34 = NoneT, | |
2453 GTEST_TEMPLATE_ T35 = NoneT, GTEST_TEMPLATE_ T36 = NoneT, | |
2454 GTEST_TEMPLATE_ T37 = NoneT, GTEST_TEMPLATE_ T38 = NoneT, | |
2455 GTEST_TEMPLATE_ T39 = NoneT, GTEST_TEMPLATE_ T40 = NoneT, | |
2456 GTEST_TEMPLATE_ T41 = NoneT, GTEST_TEMPLATE_ T42 = NoneT, | |
2457 GTEST_TEMPLATE_ T43 = NoneT, GTEST_TEMPLATE_ T44 = NoneT, | |
2458 GTEST_TEMPLATE_ T45 = NoneT, GTEST_TEMPLATE_ T46 = NoneT, | |
2459 GTEST_TEMPLATE_ T47 = NoneT, GTEST_TEMPLATE_ T48 = NoneT, | |
2460 GTEST_TEMPLATE_ T49 = NoneT, GTEST_TEMPLATE_ T50 = NoneT> | |
2461 struct Templates { | |
2462 typedef Templates50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2463 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
2464 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, | |
2465 T42, T43, T44, T45, T46, T47, T48, T49, T50> type; | |
2466 }; | |
2467 | |
2468 template <> | |
2469 struct Templates<NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2470 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2471 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2472 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2473 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2474 NoneT> { | |
2475 typedef Templates0 type; | |
2476 }; | |
2477 template <GTEST_TEMPLATE_ T1> | |
2478 struct Templates<T1, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2479 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2480 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2481 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2482 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2483 NoneT> { | |
2484 typedef Templates1<T1> type; | |
2485 }; | |
2486 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2> | |
2487 struct Templates<T1, T2, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2488 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2489 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2490 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2491 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2492 NoneT> { | |
2493 typedef Templates2<T1, T2> type; | |
2494 }; | |
2495 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3> | |
2496 struct Templates<T1, T2, T3, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2497 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2498 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2499 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2500 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2501 typedef Templates3<T1, T2, T3> type; | |
2502 }; | |
2503 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2504 GTEST_TEMPLATE_ T4> | |
2505 struct Templates<T1, T2, T3, T4, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2506 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2507 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2508 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2509 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2510 typedef Templates4<T1, T2, T3, T4> type; | |
2511 }; | |
2512 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2513 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5> | |
2514 struct Templates<T1, T2, T3, T4, T5, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2515 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2516 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2517 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2518 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2519 typedef Templates5<T1, T2, T3, T4, T5> type; | |
2520 }; | |
2521 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2522 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6> | |
2523 struct Templates<T1, T2, T3, T4, T5, T6, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2524 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2525 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2526 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2527 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2528 typedef Templates6<T1, T2, T3, T4, T5, T6> type; | |
2529 }; | |
2530 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2531 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2532 GTEST_TEMPLATE_ T7> | |
2533 struct Templates<T1, T2, T3, T4, T5, T6, T7, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2534 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2535 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2536 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2537 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2538 typedef Templates7<T1, T2, T3, T4, T5, T6, T7> type; | |
2539 }; | |
2540 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2541 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2542 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8> | |
2543 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, NoneT, NoneT, NoneT, NoneT, | |
2544 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2545 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2546 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2547 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2548 typedef Templates8<T1, T2, T3, T4, T5, T6, T7, T8> type; | |
2549 }; | |
2550 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2551 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2552 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9> | |
2553 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, NoneT, NoneT, NoneT, | |
2554 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2555 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2556 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2557 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2558 typedef Templates9<T1, T2, T3, T4, T5, T6, T7, T8, T9> type; | |
2559 }; | |
2560 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2561 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2562 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2563 GTEST_TEMPLATE_ T10> | |
2564 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, NoneT, NoneT, NoneT, | |
2565 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2566 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2567 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2568 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2569 typedef Templates10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> type; | |
2570 }; | |
2571 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2572 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2573 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2574 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11> | |
2575 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, NoneT, NoneT, | |
2576 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2577 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2578 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2579 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2580 typedef Templates11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> type; | |
2581 }; | |
2582 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2583 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2584 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2585 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12> | |
2586 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, NoneT, | |
2587 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2588 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2589 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2590 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2591 typedef Templates12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> type; | |
2592 }; | |
2593 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2594 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2595 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2596 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2597 GTEST_TEMPLATE_ T13> | |
2598 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, NoneT, | |
2599 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2600 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2601 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2602 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2603 typedef Templates13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
2604 T13> type; | |
2605 }; | |
2606 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2607 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2608 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2609 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2610 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14> | |
2611 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2612 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2613 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2614 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2615 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2616 typedef Templates14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2617 T14> type; | |
2618 }; | |
2619 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2620 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2621 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2622 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2623 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15> | |
2624 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2625 T15, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2626 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2627 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2628 NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2629 typedef Templates15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2630 T14, T15> type; | |
2631 }; | |
2632 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2633 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2634 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2635 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2636 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2637 GTEST_TEMPLATE_ T16> | |
2638 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2639 T15, T16, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2640 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2641 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2642 NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2643 typedef Templates16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2644 T14, T15, T16> type; | |
2645 }; | |
2646 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2647 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2648 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2649 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2650 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2651 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17> | |
2652 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2653 T15, T16, T17, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2654 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2655 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2656 NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2657 typedef Templates17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2658 T14, T15, T16, T17> type; | |
2659 }; | |
2660 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2661 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2662 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2663 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2664 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2665 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18> | |
2666 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2667 T15, T16, T17, T18, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2668 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2669 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2670 NoneT, NoneT, NoneT, NoneT> { | |
2671 typedef Templates18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2672 T14, T15, T16, T17, T18> type; | |
2673 }; | |
2674 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2675 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2676 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2677 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2678 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2679 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2680 GTEST_TEMPLATE_ T19> | |
2681 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2682 T15, T16, T17, T18, T19, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2683 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2684 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2685 NoneT, NoneT, NoneT, NoneT> { | |
2686 typedef Templates19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2687 T14, T15, T16, T17, T18, T19> type; | |
2688 }; | |
2689 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2690 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2691 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2692 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2693 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2694 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2695 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20> | |
2696 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2697 T15, T16, T17, T18, T19, T20, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2698 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2699 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2700 NoneT, NoneT, NoneT, NoneT> { | |
2701 typedef Templates20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2702 T14, T15, T16, T17, T18, T19, T20> type; | |
2703 }; | |
2704 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2705 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2706 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2707 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2708 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2709 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2710 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21> | |
2711 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2712 T15, T16, T17, T18, T19, T20, T21, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2713 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2714 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2715 NoneT, NoneT, NoneT, NoneT> { | |
2716 typedef Templates21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2717 T14, T15, T16, T17, T18, T19, T20, T21> type; | |
2718 }; | |
2719 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2720 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2721 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2722 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2723 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2724 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2725 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2726 GTEST_TEMPLATE_ T22> | |
2727 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2728 T15, T16, T17, T18, T19, T20, T21, T22, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2729 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2730 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2731 NoneT, NoneT, NoneT> { | |
2732 typedef Templates22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2733 T14, T15, T16, T17, T18, T19, T20, T21, T22> type; | |
2734 }; | |
2735 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2736 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2737 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2738 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2739 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2740 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2741 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2742 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23> | |
2743 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2744 T15, T16, T17, T18, T19, T20, T21, T22, T23, NoneT, NoneT, NoneT, NoneT, | |
2745 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2746 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2747 NoneT, NoneT, NoneT> { | |
2748 typedef Templates23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2749 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> type; | |
2750 }; | |
2751 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2752 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2753 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2754 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2755 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2756 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2757 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2758 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24> | |
2759 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2760 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, NoneT, NoneT, NoneT, | |
2761 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2762 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2763 NoneT, NoneT, NoneT> { | |
2764 typedef Templates24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2765 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> type; | |
2766 }; | |
2767 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2768 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2769 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2770 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2771 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2772 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2773 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2774 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2775 GTEST_TEMPLATE_ T25> | |
2776 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2777 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, NoneT, NoneT, NoneT, | |
2778 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2779 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2780 NoneT, NoneT> { | |
2781 typedef Templates25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2782 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> type; | |
2783 }; | |
2784 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2785 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2786 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2787 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2788 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2789 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2790 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2791 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2792 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26> | |
2793 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2794 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, NoneT, NoneT, | |
2795 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2796 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2797 NoneT, NoneT> { | |
2798 typedef Templates26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2799 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> type; | |
2800 }; | |
2801 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2802 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2803 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2804 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2805 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2806 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2807 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2808 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2809 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27> | |
2810 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2811 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, NoneT, | |
2812 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2813 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2814 NoneT, NoneT> { | |
2815 typedef Templates27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2816 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
2817 T27> type; | |
2818 }; | |
2819 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2820 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2821 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2822 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2823 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2824 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2825 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2826 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2827 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2828 GTEST_TEMPLATE_ T28> | |
2829 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2830 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
2831 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2832 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2833 NoneT, NoneT> { | |
2834 typedef Templates28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2835 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
2836 T28> type; | |
2837 }; | |
2838 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2839 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2840 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2841 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2842 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2843 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2844 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2845 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2846 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2847 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29> | |
2848 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2849 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
2850 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2851 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2852 NoneT> { | |
2853 typedef Templates29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2854 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
2855 T28, T29> type; | |
2856 }; | |
2857 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2858 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2859 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2860 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2861 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2862 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2863 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2864 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2865 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2866 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30> | |
2867 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2868 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
2869 T30, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2870 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2871 typedef Templates30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2872 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
2873 T28, T29, T30> type; | |
2874 }; | |
2875 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2876 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2877 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2878 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2879 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2880 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2881 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2882 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2883 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2884 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2885 GTEST_TEMPLATE_ T31> | |
2886 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2887 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
2888 T30, T31, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2889 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2890 typedef Templates31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2891 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
2892 T28, T29, T30, T31> type; | |
2893 }; | |
2894 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2895 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2896 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2897 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2898 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2899 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2900 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2901 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2902 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2903 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2904 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32> | |
2905 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2906 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
2907 T30, T31, T32, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2908 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2909 typedef Templates32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2910 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
2911 T28, T29, T30, T31, T32> type; | |
2912 }; | |
2913 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2914 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2915 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2916 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2917 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2918 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2919 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2920 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2921 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2922 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2923 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33> | |
2924 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2925 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
2926 T30, T31, T32, T33, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2927 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2928 typedef Templates33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2929 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
2930 T28, T29, T30, T31, T32, T33> type; | |
2931 }; | |
2932 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2933 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2934 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2935 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2936 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2937 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2938 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2939 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2940 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2941 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2942 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2943 GTEST_TEMPLATE_ T34> | |
2944 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2945 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
2946 T30, T31, T32, T33, T34, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2947 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2948 typedef Templates34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2949 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
2950 T28, T29, T30, T31, T32, T33, T34> type; | |
2951 }; | |
2952 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2953 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2954 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2955 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2956 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2957 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2958 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2959 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2960 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2961 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2962 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2963 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35> | |
2964 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2965 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
2966 T30, T31, T32, T33, T34, T35, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2967 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2968 typedef Templates35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2969 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
2970 T28, T29, T30, T31, T32, T33, T34, T35> type; | |
2971 }; | |
2972 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2973 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2974 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2975 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2976 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2977 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2978 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2979 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
2980 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
2981 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
2982 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
2983 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36> | |
2984 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
2985 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
2986 T30, T31, T32, T33, T34, T35, T36, NoneT, NoneT, NoneT, NoneT, NoneT, | |
2987 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
2988 typedef Templates36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
2989 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
2990 T28, T29, T30, T31, T32, T33, T34, T35, T36> type; | |
2991 }; | |
2992 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
2993 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
2994 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
2995 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
2996 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
2997 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
2998 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
2999 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
3000 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
3001 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
3002 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
3003 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
3004 GTEST_TEMPLATE_ T37> | |
3005 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
3006 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
3007 T30, T31, T32, T33, T34, T35, T36, T37, NoneT, NoneT, NoneT, NoneT, NoneT, | |
3008 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
3009 typedef Templates37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
3010 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
3011 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37> type; | |
3012 }; | |
3013 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
3014 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
3015 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
3016 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
3017 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
3018 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
3019 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
3020 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
3021 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
3022 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
3023 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
3024 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
3025 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38> | |
3026 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
3027 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
3028 T30, T31, T32, T33, T34, T35, T36, T37, T38, NoneT, NoneT, NoneT, NoneT, | |
3029 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
3030 typedef Templates38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
3031 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
3032 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> type; | |
3033 }; | |
3034 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
3035 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
3036 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
3037 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
3038 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
3039 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
3040 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
3041 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
3042 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
3043 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
3044 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
3045 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
3046 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39> | |
3047 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
3048 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
3049 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, NoneT, NoneT, NoneT, | |
3050 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
3051 typedef Templates39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
3052 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
3053 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> type; | |
3054 }; | |
3055 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
3056 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
3057 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
3058 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
3059 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
3060 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
3061 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
3062 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
3063 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
3064 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
3065 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
3066 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
3067 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
3068 GTEST_TEMPLATE_ T40> | |
3069 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
3070 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
3071 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, NoneT, NoneT, NoneT, | |
3072 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
3073 typedef Templates40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
3074 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
3075 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> type; | |
3076 }; | |
3077 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
3078 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
3079 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
3080 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
3081 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
3082 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
3083 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
3084 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
3085 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
3086 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
3087 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
3088 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
3089 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
3090 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41> | |
3091 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
3092 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
3093 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, NoneT, NoneT, | |
3094 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
3095 typedef Templates41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
3096 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
3097 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, | |
3098 T41> type; | |
3099 }; | |
3100 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
3101 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
3102 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
3103 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
3104 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
3105 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
3106 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
3107 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
3108 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
3109 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
3110 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
3111 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
3112 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
3113 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42> | |
3114 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
3115 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
3116 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, NoneT, | |
3117 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
3118 typedef Templates42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
3119 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
3120 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, | |
3121 T42> type; | |
3122 }; | |
3123 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
3124 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
3125 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
3126 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
3127 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
3128 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
3129 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
3130 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
3131 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
3132 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
3133 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
3134 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
3135 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
3136 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, | |
3137 GTEST_TEMPLATE_ T43> | |
3138 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
3139 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
3140 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, | |
3141 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
3142 typedef Templates43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
3143 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
3144 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, | |
3145 T42, T43> type; | |
3146 }; | |
3147 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
3148 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
3149 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
3150 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
3151 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
3152 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
3153 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
3154 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
3155 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
3156 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
3157 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
3158 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
3159 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
3160 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, | |
3161 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44> | |
3162 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
3163 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
3164 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, | |
3165 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
3166 typedef Templates44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
3167 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
3168 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, | |
3169 T42, T43, T44> type; | |
3170 }; | |
3171 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
3172 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
3173 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
3174 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
3175 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
3176 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
3177 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
3178 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
3179 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
3180 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
3181 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
3182 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
3183 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
3184 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, | |
3185 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45> | |
3186 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
3187 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
3188 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, | |
3189 T45, NoneT, NoneT, NoneT, NoneT, NoneT> { | |
3190 typedef Templates45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
3191 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
3192 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, | |
3193 T42, T43, T44, T45> type; | |
3194 }; | |
3195 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
3196 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
3197 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
3198 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
3199 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
3200 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
3201 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
3202 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
3203 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
3204 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
3205 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
3206 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
3207 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
3208 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, | |
3209 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, | |
3210 GTEST_TEMPLATE_ T46> | |
3211 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
3212 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
3213 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, | |
3214 T45, T46, NoneT, NoneT, NoneT, NoneT> { | |
3215 typedef Templates46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
3216 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
3217 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, | |
3218 T42, T43, T44, T45, T46> type; | |
3219 }; | |
3220 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
3221 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
3222 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
3223 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
3224 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
3225 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
3226 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
3227 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
3228 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
3229 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
3230 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
3231 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
3232 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
3233 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, | |
3234 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, | |
3235 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47> | |
3236 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
3237 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
3238 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, | |
3239 T45, T46, T47, NoneT, NoneT, NoneT> { | |
3240 typedef Templates47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
3241 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
3242 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, | |
3243 T42, T43, T44, T45, T46, T47> type; | |
3244 }; | |
3245 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
3246 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
3247 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
3248 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
3249 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
3250 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
3251 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
3252 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
3253 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
3254 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
3255 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
3256 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
3257 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
3258 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, | |
3259 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, | |
3260 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48> | |
3261 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
3262 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
3263 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, | |
3264 T45, T46, T47, T48, NoneT, NoneT> { | |
3265 typedef Templates48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
3266 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
3267 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, | |
3268 T42, T43, T44, T45, T46, T47, T48> type; | |
3269 }; | |
3270 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, | |
3271 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, | |
3272 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, | |
3273 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, | |
3274 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, | |
3275 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, | |
3276 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, | |
3277 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, | |
3278 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, | |
3279 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, | |
3280 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, | |
3281 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, | |
3282 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, | |
3283 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, | |
3284 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, | |
3285 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48, | |
3286 GTEST_TEMPLATE_ T49> | |
3287 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, | |
3288 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | |
3289 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, | |
3290 T45, T46, T47, T48, T49, NoneT> { | |
3291 typedef Templates49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
3292 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, | |
3293 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, | |
3294 T42, T43, T44, T45, T46, T47, T48, T49> type; | |
3295 }; | |
3296 | |
3297 // The TypeList template makes it possible to use either a single type | |
3298 // or a Types<...> list in TYPED_TEST_CASE() and | |
3299 // INSTANTIATE_TYPED_TEST_CASE_P(). | |
3300 | |
3301 template <typename T> | |
3302 struct TypeList { | |
3303 typedef Types1<T> type; | |
3304 }; | |
3305 | |
3306 template <typename T1, typename T2, typename T3, typename T4, typename T5, | |
3307 typename T6, typename T7, typename T8, typename T9, typename T10, | |
3308 typename T11, typename T12, typename T13, typename T14, typename T15, | |
3309 typename T16, typename T17, typename T18, typename T19, typename T20, | |
3310 typename T21, typename T22, typename T23, typename T24, typename T25, | |
3311 typename T26, typename T27, typename T28, typename T29, typename T30, | |
3312 typename T31, typename T32, typename T33, typename T34, typename T35, | |
3313 typename T36, typename T37, typename T38, typename T39, typename T40, | |
3314 typename T41, typename T42, typename T43, typename T44, typename T45, | |
3315 typename T46, typename T47, typename T48, typename T49, typename T50> | |
3316 struct TypeList<Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, | |
3317 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, | |
3318 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, | |
3319 T44, T45, T46, T47, T48, T49, T50> > { | |
3320 typedef typename Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, | |
3321 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, | |
3322 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, | |
3323 T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>::type type; | |
3324 }; | |
3325 | |
3326 #endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P | |
3327 | |
3328 } // namespace internal | |
3329 } // namespace testing | |
3330 | |
3331 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ |