44 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
45 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
51 # if GTEST_HAS_CXXABI_H_
53 # elif defined(__HP_aCC)
54 # include <acxx_demangle.h>
65 static const char prefix[] =
"std::__";
66 if (s.compare(0, strlen(prefix), prefix) == 0) {
67 std::string::size_type
end = s.find(
"::", strlen(prefix));
70 s.erase(strlen(
"std"),
end - strlen(
"std"));
83 const char*
const name =
typeid(T).name();
84 # if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC)
88 # if GTEST_HAS_CXXABI_H_
89 using abi::__cxa_demangle;
91 char*
const readable_name = __cxa_demangle(name,
nullptr,
nullptr, &status);
92 const std::string name_str(status == 0 ? readable_name : name);
106 #if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
112 template <
typename T1,
typename T2>
115 template <
typename T>
116 struct AssertTypeEq<T, T> {
138 template <
typename T1>
143 template <
typename T1,
typename T2>
146 typedef Types1<T2> Tail;
149 template <
typename T1,
typename T2,
typename T3>
152 typedef Types2<T2, T3> Tail;
155 template <
typename T1,
typename T2,
typename T3,
typename T4>
158 typedef Types3<T2, T3, T4> Tail;
161 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
164 typedef Types4<T2, T3, T4, T5> Tail;
167 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
171 typedef Types5<T2, T3, T4, T5, T6> Tail;
174 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
175 typename T6,
typename T7>
178 typedef Types6<T2, T3, T4, T5, T6, T7> Tail;
181 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
182 typename T6,
typename T7,
typename T8>
185 typedef Types7<T2, T3, T4, T5, T6, T7, T8> Tail;
188 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
189 typename T6,
typename T7,
typename T8,
typename T9>
192 typedef Types8<T2, T3, T4, T5, T6, T7, T8, T9> Tail;
195 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
196 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
199 typedef Types9<T2, T3, T4, T5, T6, T7, T8, T9, T10> Tail;
202 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
203 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
207 typedef Types10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Tail;
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>
215 typedef Types11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tail;
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>
223 typedef Types12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail;
226 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
227 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
228 typename T11,
typename T12,
typename T13,
typename T14>
231 typedef Types13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Tail;
234 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
235 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
236 typename T11,
typename T12,
typename T13,
typename T14,
typename T15>
239 typedef Types14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
243 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
244 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
245 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
249 typedef Types15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
253 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
254 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
255 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
256 typename T16,
typename T17>
259 typedef Types16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
263 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
264 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
265 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
266 typename T16,
typename T17,
typename T18>
269 typedef Types17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
273 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
274 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
275 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
276 typename T16,
typename T17,
typename T18,
typename T19>
279 typedef Types18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
280 T16, T17, T18, T19> Tail;
283 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
284 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
285 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
286 typename T16,
typename T17,
typename T18,
typename T19,
typename T20>
289 typedef Types19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
290 T16, T17, T18, T19, T20> Tail;
293 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
294 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
295 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
296 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
300 typedef Types20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
301 T16, T17, T18, T19, T20, T21> Tail;
304 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
305 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
306 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
307 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
308 typename T21,
typename T22>
311 typedef Types21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
312 T16, T17, T18, T19, T20, T21, T22> Tail;
315 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
316 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
317 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
318 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
319 typename T21,
typename T22,
typename T23>
322 typedef Types22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
323 T16, T17, T18, T19, T20, T21, T22, T23> Tail;
326 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
327 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
328 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
329 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
330 typename T21,
typename T22,
typename T23,
typename T24>
333 typedef Types23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
334 T16, T17, T18, T19, T20, T21, T22, T23, T24> Tail;
337 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
338 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
339 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
340 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
341 typename T21,
typename T22,
typename T23,
typename T24,
typename T25>
344 typedef Types24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
345 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Tail;
348 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
349 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
350 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
351 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
352 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
356 typedef Types25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
357 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> Tail;
360 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
361 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
362 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
363 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
364 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
365 typename T26,
typename T27>
368 typedef Types26<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
369 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> Tail;
372 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
373 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
374 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
375 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
376 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
377 typename T26,
typename T27,
typename T28>
380 typedef Types27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
381 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28> Tail;
384 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
385 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
386 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
387 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
388 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
389 typename T26,
typename T27,
typename T28,
typename T29>
392 typedef Types28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
393 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
397 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
398 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
399 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
400 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
401 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
402 typename T26,
typename T27,
typename T28,
typename T29,
typename T30>
405 typedef Types29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
406 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
410 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
411 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
412 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
413 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
414 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
415 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
419 typedef Types30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
420 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
424 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
425 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
426 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
427 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
428 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
429 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
430 typename T31,
typename T32>
433 typedef Types31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
434 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
438 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
439 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
440 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
441 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
442 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
443 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
444 typename T31,
typename T32,
typename T33>
447 typedef Types32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
448 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
449 T30, T31, T32, T33> Tail;
452 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
453 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
454 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
455 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
456 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
457 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
458 typename T31,
typename T32,
typename T33,
typename T34>
461 typedef Types33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
462 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
463 T30, T31, T32, T33, T34> Tail;
466 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
467 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
468 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
469 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
470 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
471 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
472 typename T31,
typename T32,
typename T33,
typename T34,
typename T35>
475 typedef Types34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
476 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
477 T30, T31, T32, T33, T34, T35> Tail;
480 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
481 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
482 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
483 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
484 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
485 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
486 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
490 typedef Types35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
491 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
492 T30, T31, T32, T33, T34, T35, T36> Tail;
495 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
496 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
497 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
498 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
499 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
500 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
501 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
502 typename T36,
typename T37>
505 typedef Types36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
506 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
507 T30, T31, T32, T33, T34, T35, T36, T37> Tail;
510 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
511 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
512 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
513 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
514 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
515 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
516 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
517 typename T36,
typename T37,
typename T38>
520 typedef Types37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
521 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
522 T30, T31, T32, T33, T34, T35, T36, T37, T38> Tail;
525 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
526 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
527 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
528 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
529 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
530 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
531 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
532 typename T36,
typename T37,
typename T38,
typename T39>
535 typedef Types38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
536 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
537 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Tail;
540 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
541 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
542 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
543 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
544 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
545 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
546 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
547 typename T36,
typename T37,
typename T38,
typename T39,
typename T40>
550 typedef Types39<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> Tail;
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,
566 typedef Types40<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> Tail;
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>
582 typedef Types41<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> Tail;
587 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
588 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
589 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
590 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
591 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
592 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
593 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
594 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
595 typename T41,
typename T42,
typename T43>
598 typedef Types42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
599 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
600 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
604 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
605 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
606 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
607 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
608 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
609 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
610 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
611 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
612 typename T41,
typename T42,
typename T43,
typename T44>
615 typedef Types43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
616 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
617 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
621 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
622 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
623 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
624 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
625 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
626 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
627 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
628 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
629 typename T41,
typename T42,
typename T43,
typename T44,
typename T45>
632 typedef Types44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
633 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
634 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
638 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
639 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
640 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
641 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
642 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
643 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
644 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
645 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
646 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
650 typedef Types45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
651 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
652 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
656 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
657 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
658 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
659 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
660 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
661 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
662 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
663 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
664 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
665 typename T46,
typename T47>
668 typedef Types46<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
669 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
670 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
671 T44, T45, T46, T47> Tail;
674 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
675 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
676 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
677 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
678 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
679 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
680 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
681 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
682 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
683 typename T46,
typename T47,
typename T48>
686 typedef Types47<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
687 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
688 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
689 T44, T45, T46, T47, T48> Tail;
692 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
693 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
694 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
695 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
696 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
697 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
698 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
699 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
700 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
701 typename T46,
typename T47,
typename T48,
typename T49>
704 typedef Types48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
705 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
706 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
707 T44, T45, T46, T47, T48, T49> Tail;
710 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
711 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
712 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
713 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
714 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
715 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
716 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
717 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
718 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
719 typename T46,
typename T47,
typename T48,
typename T49,
typename T50>
722 typedef Types49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
723 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
724 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
725 T44, T45, T46, T47, T48, T49, T50> Tail;
744 template <
typename T1 = internal::None,
typename T2 = internal::None,
745 typename T3 = internal::None,
typename T4 = internal::None,
746 typename T5 = internal::None,
typename T6 = internal::None,
747 typename T7 = internal::None,
typename T8 = internal::None,
748 typename T9 = internal::None,
typename T10 = internal::None,
749 typename T11 = internal::None,
typename T12 = internal::None,
750 typename T13 = internal::None,
typename T14 = internal::None,
751 typename T15 = internal::None,
typename T16 = internal::None,
752 typename T17 = internal::None,
typename T18 = internal::None,
753 typename T19 = internal::None,
typename T20 = internal::None,
754 typename T21 = internal::None,
typename T22 = internal::None,
755 typename T23 = internal::None,
typename T24 = internal::None,
756 typename T25 = internal::None,
typename T26 = internal::None,
757 typename T27 = internal::None,
typename T28 = internal::None,
758 typename T29 = internal::None,
typename T30 = internal::None,
759 typename T31 = internal::None,
typename T32 = internal::None,
760 typename T33 = internal::None,
typename T34 = internal::None,
761 typename T35 = internal::None,
typename T36 = internal::None,
762 typename T37 = internal::None,
typename T38 = internal::None,
763 typename T39 = internal::None,
typename T40 = internal::None,
764 typename T41 = internal::None,
typename T42 = internal::None,
765 typename T43 = internal::None,
typename T44 = internal::None,
766 typename T45 = internal::None,
typename T46 = internal::None,
767 typename T47 = internal::None,
typename T48 = internal::None,
768 typename T49 = internal::None,
typename T50 = internal::None>
770 typedef internal::Types50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
771 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
772 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
773 T41, T42, T43, T44, T45, T46, T47, T48, T49, T50> type;
777 struct Types<internal::None, 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::Types0 type;
792 template <
typename T1>
793 struct Types<T1, 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, internal::None> {
806 typedef internal::Types1<T1> type;
808 template <
typename T1,
typename T2>
809 struct Types<T1, T2, 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,
822 typedef internal::Types2<T1, T2> type;
824 template <
typename T1,
typename T2,
typename T3>
825 struct Types<T1, T2, T3, 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, internal::None,
836 internal::None, internal::None, internal::None, internal::None> {
837 typedef internal::Types3<T1, T2, T3> type;
839 template <
typename T1,
typename T2,
typename T3,
typename T4>
840 struct Types<T1, T2, T3, T4, 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, internal::None,
851 internal::None, internal::None, internal::None> {
852 typedef internal::Types4<T1, T2, T3, T4> type;
854 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
855 struct Types<T1, T2, T3, T4, T5, 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, internal::None> {
867 typedef internal::Types5<T1, T2, T3, T4, T5> type;
869 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
871 struct Types<T1, T2, T3, T4, T5, T6, 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, internal::None> {
883 typedef internal::Types6<T1, T2, T3, T4, T5, T6> type;
885 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
886 typename T6,
typename T7>
887 struct Types<T1, T2, T3, T4, T5, T6, T7, 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,
899 typedef internal::Types7<T1, T2, T3, T4, T5, T6, T7> type;
901 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
902 typename T6,
typename T7,
typename T8>
903 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, 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 internal::None, internal::None, internal::None, internal::None> {
914 typedef internal::Types8<T1, T2, T3, T4, T5, T6, T7, T8> type;
916 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
917 typename T6,
typename T7,
typename T8,
typename T9>
918 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, 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, internal::None,
928 internal::None, internal::None, internal::None, internal::None> {
929 typedef internal::Types9<T1, T2, T3, T4, T5, T6, T7, T8, T9> type;
931 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
932 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
933 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, 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, internal::None> {
944 typedef internal::Types10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> type;
946 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
947 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
949 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, 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, internal::None> {
960 typedef internal::Types11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> type;
962 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
963 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
964 typename T11,
typename T12>
965 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, internal::None,
966 internal::None, internal::None, internal::None, internal::None,
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,
976 typedef internal::Types12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
979 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
980 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
981 typename T11,
typename T12,
typename T13>
982 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
983 internal::None, internal::None, internal::None, internal::None,
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,
993 typedef internal::Types13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
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>
999 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
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, internal::None> {
1009 typedef internal::Types14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
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 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1016 internal::None, internal::None, internal::None, internal::None,
1017 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> {
1025 typedef internal::Types15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1026 T13, T14, T15> type;
1028 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1029 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1030 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1032 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1033 T16, internal::None, internal::None, internal::None, internal::None,
1034 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> {
1042 typedef internal::Types16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1043 T13, T14, T15, T16> type;
1045 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1046 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1047 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1048 typename T16,
typename T17>
1049 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1050 T16, T17, internal::None, internal::None, internal::None, internal::None,
1051 internal::None, 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,
1059 typedef internal::Types17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1060 T13, T14, T15, T16, T17> type;
1062 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1063 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1064 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1065 typename T16,
typename T17,
typename T18>
1066 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1067 T16, T17, T18, internal::None, internal::None, internal::None,
1068 internal::None, 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,
1076 typedef internal::Types18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1077 T13, T14, T15, T16, T17, T18> type;
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>
1083 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1084 T16, T17, T18, T19, 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, internal::None> {
1092 typedef internal::Types19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1093 T13, T14, T15, T16, T17, T18, T19> type;
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 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1100 T16, T17, T18, T19, T20, internal::None, internal::None, internal::None,
1101 internal::None, internal::None, 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> {
1108 typedef internal::Types20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1109 T13, T14, T15, T16, T17, T18, T19, T20> type;
1111 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1112 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1113 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1114 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1116 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1117 T16, T17, T18, T19, T20, T21, internal::None, internal::None,
1118 internal::None, internal::None, 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> {
1125 typedef internal::Types21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1126 T13, T14, T15, T16, T17, T18, T19, T20, T21> type;
1128 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1129 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1130 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1131 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1132 typename T21,
typename T22>
1133 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1134 T16, T17, T18, T19, T20, T21, T22, internal::None, internal::None,
1135 internal::None, internal::None, 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> {
1142 typedef internal::Types22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1143 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> type;
1145 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1146 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1147 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1148 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1149 typename T21,
typename T22,
typename T23>
1150 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1151 T16, T17, T18, T19, T20, T21, T22, T23, internal::None, internal::None,
1152 internal::None, internal::None, internal::None, 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,
1159 typedef internal::Types23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1160 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> type;
1162 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1163 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1164 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1165 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1166 typename T21,
typename T22,
typename T23,
typename T24>
1167 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1168 T16, T17, T18, T19, T20, T21, T22, T23, T24, internal::None,
1169 internal::None, internal::None, internal::None, 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,
1176 typedef internal::Types24<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> type;
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 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1185 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, internal::None,
1186 internal::None, internal::None, internal::None, 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 typedef internal::Types25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1193 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> type;
1195 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1196 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1197 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1198 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1199 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1201 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1202 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, internal::None,
1203 internal::None, internal::None, internal::None, internal::None,
1204 internal::None, internal::None, internal::None, 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> {
1209 typedef internal::Types26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1210 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1213 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1214 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1215 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1216 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1217 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1218 typename T26,
typename T27>
1219 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1220 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, internal::None,
1221 internal::None, internal::None, internal::None, internal::None,
1222 internal::None, internal::None, internal::None, internal::None,
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> {
1227 typedef internal::Types27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1228 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1231 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1232 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1233 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1234 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1235 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1236 typename T26,
typename T27,
typename T28>
1237 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1238 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1239 internal::None, internal::None, internal::None, internal::None,
1240 internal::None, internal::None, internal::None, internal::None,
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> {
1245 typedef internal::Types28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1246 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1249 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1250 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1251 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1252 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1253 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1254 typename T26,
typename T27,
typename T28,
typename T29>
1255 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1256 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
1257 internal::None, internal::None, internal::None, internal::None,
1258 internal::None, internal::None, internal::None, internal::None,
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,
1263 typedef internal::Types29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1264 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1265 T27, T28, T29> type;
1267 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1268 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1269 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1270 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1271 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1272 typename T26,
typename T27,
typename T28,
typename T29,
typename T30>
1273 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1274 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1275 internal::None, internal::None, internal::None, internal::None,
1276 internal::None, internal::None, internal::None, internal::None,
1277 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 typedef internal::Types30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1281 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1282 T27, T28, T29, T30> type;
1284 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1285 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1286 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1287 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1288 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1289 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1291 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1292 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1293 T31, internal::None, internal::None, internal::None, internal::None,
1294 internal::None, internal::None, internal::None, internal::None,
1295 internal::None, internal::None, internal::None, internal::None,
1296 internal::None, internal::None, internal::None, internal::None,
1297 internal::None, internal::None, internal::None> {
1298 typedef internal::Types31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1299 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1300 T27, T28, T29, T30, T31> type;
1302 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1303 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1304 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1305 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1306 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1307 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1308 typename T31,
typename T32>
1309 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1310 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1311 T31, T32, internal::None, internal::None, internal::None, internal::None,
1312 internal::None, internal::None, internal::None, internal::None,
1313 internal::None, internal::None, internal::None, internal::None,
1314 internal::None, internal::None, internal::None, internal::None,
1315 internal::None, internal::None> {
1316 typedef internal::Types32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1317 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1318 T27, T28, T29, T30, T31, T32> type;
1320 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1321 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1322 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1323 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1324 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1325 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1326 typename T31,
typename T32,
typename T33>
1327 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1328 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1329 T31, T32, T33, internal::None, internal::None, internal::None,
1330 internal::None, internal::None, internal::None, internal::None,
1331 internal::None, internal::None, internal::None, internal::None,
1332 internal::None, internal::None, internal::None, internal::None,
1333 internal::None, internal::None> {
1334 typedef internal::Types33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1335 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1336 T27, T28, T29, T30, T31, T32, T33> type;
1338 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1339 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1340 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1341 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1342 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1343 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1344 typename T31,
typename T32,
typename T33,
typename T34>
1345 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1346 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1347 T31, T32, T33, T34, internal::None, internal::None, internal::None,
1348 internal::None, internal::None, internal::None, internal::None,
1349 internal::None, internal::None, internal::None, internal::None,
1350 internal::None, internal::None, internal::None, internal::None,
1352 typedef internal::Types34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1353 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1354 T27, T28, T29, T30, T31, T32, T33, T34> type;
1356 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1357 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1358 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1359 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1360 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1361 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1362 typename T31,
typename T32,
typename T33,
typename T34,
typename T35>
1363 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1364 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1365 T31, T32, T33, T34, T35, internal::None, internal::None, internal::None,
1366 internal::None, internal::None, internal::None, internal::None,
1367 internal::None, internal::None, internal::None, internal::None,
1368 internal::None, internal::None, internal::None, internal::None> {
1369 typedef internal::Types35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1370 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1371 T27, T28, T29, T30, T31, T32, T33, T34, T35> type;
1373 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1374 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1375 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1376 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1377 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1378 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1379 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1381 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1382 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1383 T31, T32, T33, T34, T35, T36, internal::None, internal::None,
1384 internal::None, internal::None, internal::None, internal::None,
1385 internal::None, internal::None, internal::None, internal::None,
1386 internal::None, internal::None, internal::None, internal::None> {
1387 typedef internal::Types36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1388 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1389 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36> type;
1391 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1392 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1393 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1394 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1395 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1396 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1397 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1398 typename T36,
typename T37>
1399 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1400 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1401 T31, T32, T33, T34, T35, T36, T37, internal::None, internal::None,
1402 internal::None, internal::None, internal::None, internal::None,
1403 internal::None, internal::None, internal::None, internal::None,
1404 internal::None, internal::None, internal::None> {
1405 typedef internal::Types37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1406 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1407 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37> type;
1409 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1410 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1411 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1412 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1413 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1414 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1415 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1416 typename T36,
typename T37,
typename T38>
1417 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1418 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1419 T31, T32, T33, T34, T35, T36, T37, T38, internal::None, internal::None,
1420 internal::None, internal::None, internal::None, internal::None,
1421 internal::None, internal::None, internal::None, internal::None,
1422 internal::None, internal::None> {
1423 typedef internal::Types38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1424 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1425 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> type;
1427 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1428 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1429 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1430 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1431 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1432 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1433 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1434 typename T36,
typename T37,
typename T38,
typename T39>
1435 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1436 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1437 T31, T32, T33, T34, T35, T36, T37, T38, T39, internal::None,
1438 internal::None, internal::None, internal::None, internal::None,
1439 internal::None, internal::None, internal::None, internal::None,
1440 internal::None, internal::None> {
1441 typedef internal::Types39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1442 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1443 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> type;
1445 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1446 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1447 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1448 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1449 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1450 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1451 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1452 typename T36,
typename T37,
typename T38,
typename T39,
typename T40>
1453 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1454 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1455 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, internal::None,
1456 internal::None, internal::None, internal::None, internal::None,
1457 internal::None, internal::None, internal::None, internal::None,
1459 typedef internal::Types40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1460 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1461 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1464 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1465 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1466 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1467 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1468 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1469 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1470 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1471 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1473 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1474 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1475 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, internal::None,
1476 internal::None, internal::None, internal::None, internal::None,
1477 internal::None, internal::None, internal::None, internal::None> {
1478 typedef internal::Types41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1479 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1480 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1483 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1484 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1485 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1486 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1487 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1488 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1489 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1490 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1491 typename T41,
typename T42>
1492 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1493 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1494 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, internal::None,
1495 internal::None, internal::None, internal::None, internal::None,
1496 internal::None, internal::None, internal::None> {
1497 typedef internal::Types42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1498 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1499 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1502 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1503 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1504 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1505 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1506 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1507 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1508 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1509 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1510 typename T41,
typename T42,
typename T43>
1511 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1512 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1513 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1514 internal::None, internal::None, internal::None, internal::None,
1515 internal::None, internal::None, internal::None> {
1516 typedef internal::Types43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1517 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1518 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1519 T41, T42, T43> type;
1521 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1522 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1523 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1524 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1525 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1526 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1527 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1528 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1529 typename T41,
typename T42,
typename T43,
typename T44>
1530 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1531 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1532 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
1533 internal::None, internal::None, internal::None, internal::None,
1534 internal::None, internal::None> {
1535 typedef internal::Types44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1536 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1537 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1538 T41, T42, T43, T44> type;
1540 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1541 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1542 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1543 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1544 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1545 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1546 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1547 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1548 typename T41,
typename T42,
typename T43,
typename T44,
typename T45>
1549 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1550 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1551 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
1552 internal::None, internal::None, internal::None, internal::None,
1554 typedef internal::Types45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1555 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1556 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1557 T41, T42, T43, T44, T45> type;
1559 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1560 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1561 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1562 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1563 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1564 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1565 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1566 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1567 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1569 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1570 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1571 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
1572 T46, internal::None, internal::None, internal::None, internal::None> {
1573 typedef internal::Types46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1574 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1575 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1576 T41, T42, T43, T44, T45, T46> type;
1578 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1579 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1580 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1581 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1582 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1583 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1584 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1585 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1586 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1587 typename T46,
typename T47>
1588 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1589 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1590 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
1591 T46, T47, internal::None, internal::None, internal::None> {
1592 typedef internal::Types47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1593 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1594 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1595 T41, T42, T43, T44, T45, T46, T47> type;
1597 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1598 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1599 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1600 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1601 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1602 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1603 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1604 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1605 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1606 typename T46,
typename T47,
typename T48>
1607 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1608 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1609 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
1610 T46, T47, T48, internal::None, internal::None> {
1611 typedef internal::Types48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1612 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1613 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1614 T41, T42, T43, T44, T45, T46, T47, T48> type;
1616 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1617 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1618 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1619 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1620 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1621 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1622 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1623 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1624 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1625 typename T46,
typename T47,
typename T48,
typename T49>
1626 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1627 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1628 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
1629 T46, T47, T48, T49, internal::None> {
1630 typedef internal::Types49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1631 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1632 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1633 T41, T42, T43, T44, T45, T46, T47, T48, T49> type;
1636 namespace internal {
1638 # define GTEST_TEMPLATE_ template <typename T> class
1648 template <GTEST_TEMPLATE_ Tmpl>
1649 struct TemplateSel {
1650 template <
typename T>
1652 typedef Tmpl<T> type;
1656 # define GTEST_BIND_(TmplSel, T) \
1657 TmplSel::template Bind<T>::type
1663 template <
typename T>
1674 struct Templates0 {};
1678 template <GTEST_TEMPLATE_ T1>
1680 typedef TemplateSel<T1> Head;
1681 typedef Templates0 Tail;
1683 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2>
1685 typedef TemplateSel<T1> Head;
1686 typedef Templates1<T2> Tail;
1689 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3>
1691 typedef TemplateSel<T1> Head;
1692 typedef Templates2<T2, T3> Tail;
1695 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1698 typedef TemplateSel<T1> Head;
1699 typedef Templates3<T2, T3, T4> Tail;
1702 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1703 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5>
1705 typedef TemplateSel<T1> Head;
1706 typedef Templates4<T2, T3, T4, T5> Tail;
1709 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1710 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6>
1712 typedef TemplateSel<T1> Head;
1713 typedef Templates5<T2, T3, T4, T5, T6> Tail;
1716 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1717 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1720 typedef TemplateSel<T1> Head;
1721 typedef Templates6<T2, T3, T4, T5, T6, T7> Tail;
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>
1728 typedef TemplateSel<T1> Head;
1729 typedef Templates7<T2, T3, T4, T5, T6, T7, T8> Tail;
1732 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1733 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1734 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9>
1736 typedef TemplateSel<T1> Head;
1737 typedef Templates8<T2, T3, T4, T5, T6, T7, T8, T9> Tail;
1740 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1741 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1742 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1743 GTEST_TEMPLATE_ T10>
1744 struct Templates10 {
1745 typedef TemplateSel<T1> Head;
1746 typedef Templates9<T2, T3, T4, T5, T6, T7, T8, T9, T10> Tail;
1749 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1750 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1751 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1752 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11>
1753 struct Templates11 {
1754 typedef TemplateSel<T1> Head;
1755 typedef Templates10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Tail;
1758 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1759 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1760 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1761 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12>
1762 struct Templates12 {
1763 typedef TemplateSel<T1> Head;
1764 typedef Templates11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tail;
1767 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1768 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1769 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1770 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1771 GTEST_TEMPLATE_ T13>
1772 struct Templates13 {
1773 typedef TemplateSel<T1> Head;
1774 typedef Templates12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail;
1777 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1778 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1779 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1780 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1781 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14>
1782 struct Templates14 {
1783 typedef TemplateSel<T1> Head;
1784 typedef Templates13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1788 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1789 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1790 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1791 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1792 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15>
1793 struct Templates15 {
1794 typedef TemplateSel<T1> Head;
1795 typedef Templates14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1799 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1800 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1801 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1802 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1803 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1804 GTEST_TEMPLATE_ T16>
1805 struct Templates16 {
1806 typedef TemplateSel<T1> Head;
1807 typedef Templates15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1811 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1812 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1813 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1814 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1815 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1816 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17>
1817 struct Templates17 {
1818 typedef TemplateSel<T1> Head;
1819 typedef Templates16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1820 T15, T16, T17> Tail;
1823 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1824 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1825 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1826 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1827 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1828 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18>
1829 struct Templates18 {
1830 typedef TemplateSel<T1> Head;
1831 typedef Templates17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1832 T15, T16, T17, T18> Tail;
1835 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1836 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1837 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1838 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1839 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1840 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1841 GTEST_TEMPLATE_ T19>
1842 struct Templates19 {
1843 typedef TemplateSel<T1> Head;
1844 typedef Templates18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1845 T15, T16, T17, T18, T19> Tail;
1848 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1849 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1850 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1851 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1852 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1853 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1854 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20>
1855 struct Templates20 {
1856 typedef TemplateSel<T1> Head;
1857 typedef Templates19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1858 T15, T16, T17, T18, T19, T20> Tail;
1861 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1862 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1863 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1864 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1865 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1866 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1867 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21>
1868 struct Templates21 {
1869 typedef TemplateSel<T1> Head;
1870 typedef Templates20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1871 T15, T16, T17, T18, T19, T20, T21> Tail;
1874 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1875 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1876 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1877 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1878 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1879 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1880 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
1881 GTEST_TEMPLATE_ T22>
1882 struct Templates22 {
1883 typedef TemplateSel<T1> Head;
1884 typedef Templates21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1885 T15, T16, T17, T18, T19, T20, T21, T22> Tail;
1888 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1889 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1890 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1891 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1892 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1893 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1894 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
1895 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23>
1896 struct Templates23 {
1897 typedef TemplateSel<T1> Head;
1898 typedef Templates22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1899 T15, T16, T17, T18, T19, T20, T21, T22, T23> Tail;
1902 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1903 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1904 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1905 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1906 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1907 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1908 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
1909 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24>
1910 struct Templates24 {
1911 typedef TemplateSel<T1> Head;
1912 typedef Templates23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1913 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> Tail;
1916 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1917 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1918 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1919 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1920 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1921 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1922 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
1923 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
1924 GTEST_TEMPLATE_ T25>
1925 struct Templates25 {
1926 typedef TemplateSel<T1> Head;
1927 typedef Templates24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1928 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Tail;
1931 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1932 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1933 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1934 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1935 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1936 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1937 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
1938 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
1939 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26>
1940 struct Templates26 {
1941 typedef TemplateSel<T1> Head;
1942 typedef Templates25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1943 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> Tail;
1946 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1947 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1948 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1949 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1950 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1951 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1952 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
1953 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
1954 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27>
1955 struct Templates27 {
1956 typedef TemplateSel<T1> Head;
1957 typedef Templates26<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> Tail;
1961 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1962 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1963 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1964 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1965 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1966 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1967 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
1968 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
1969 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
1970 GTEST_TEMPLATE_ T28>
1971 struct Templates28 {
1972 typedef TemplateSel<T1> Head;
1973 typedef Templates27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1974 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
1978 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1979 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1980 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1981 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1982 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1983 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1984 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
1985 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
1986 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
1987 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29>
1988 struct Templates29 {
1989 typedef TemplateSel<T1> Head;
1990 typedef Templates28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1991 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1995 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1996 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1997 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1998 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1999 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2000 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2001 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2002 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2003 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2004 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30>
2005 struct Templates30 {
2006 typedef TemplateSel<T1> Head;
2007 typedef Templates29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2008 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2012 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2013 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2014 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2015 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2016 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2017 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2018 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2019 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2020 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2021 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2022 GTEST_TEMPLATE_ T31>
2023 struct Templates31 {
2024 typedef TemplateSel<T1> Head;
2025 typedef Templates30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2026 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2027 T29, T30, T31> Tail;
2030 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2031 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2032 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2033 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2034 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2035 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2036 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2037 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2038 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2039 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2040 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32>
2041 struct Templates32 {
2042 typedef TemplateSel<T1> Head;
2043 typedef Templates31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2044 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2045 T29, T30, T31, T32> Tail;
2048 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2049 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2050 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2051 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2052 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2053 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2054 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2055 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2056 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2057 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2058 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33>
2059 struct Templates33 {
2060 typedef TemplateSel<T1> Head;
2061 typedef Templates32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2062 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2063 T29, T30, T31, T32, T33> Tail;
2066 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2067 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2068 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2069 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2070 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2071 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2072 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2073 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2074 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2075 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2076 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2077 GTEST_TEMPLATE_ T34>
2078 struct Templates34 {
2079 typedef TemplateSel<T1> Head;
2080 typedef Templates33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2081 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2082 T29, T30, T31, T32, T33, T34> Tail;
2085 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2086 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2087 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2088 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2089 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2090 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2091 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2092 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2093 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2094 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2095 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2096 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35>
2097 struct Templates35 {
2098 typedef TemplateSel<T1> Head;
2099 typedef Templates34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2100 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2101 T29, T30, T31, T32, T33, T34, T35> Tail;
2104 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2105 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2106 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2107 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2108 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2109 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2110 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2111 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2112 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2113 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2114 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2115 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36>
2116 struct Templates36 {
2117 typedef TemplateSel<T1> Head;
2118 typedef Templates35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2119 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2120 T29, T30, T31, T32, T33, T34, T35, T36> Tail;
2123 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2124 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2125 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2126 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2127 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2128 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2129 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2130 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2131 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2132 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2133 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2134 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2135 GTEST_TEMPLATE_ T37>
2136 struct Templates37 {
2137 typedef TemplateSel<T1> Head;
2138 typedef Templates36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2139 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2140 T29, T30, T31, T32, T33, T34, T35, T36, T37> Tail;
2143 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2144 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2145 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2146 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2147 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2148 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2149 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2150 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2151 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2152 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2153 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2154 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2155 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38>
2156 struct Templates38 {
2157 typedef TemplateSel<T1> Head;
2158 typedef Templates37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2159 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2160 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> Tail;
2163 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2164 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2165 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2166 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2167 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2168 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2169 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2170 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2171 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2172 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2173 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2174 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2175 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39>
2176 struct Templates39 {
2177 typedef TemplateSel<T1> Head;
2178 typedef Templates38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2179 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2180 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Tail;
2183 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2184 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2185 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2186 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2187 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2188 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2189 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2190 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2191 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2192 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2193 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2194 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2195 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2196 GTEST_TEMPLATE_ T40>
2197 struct Templates40 {
2198 typedef TemplateSel<T1> Head;
2199 typedef Templates39<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2200 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2201 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Tail;
2204 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2205 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2206 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2207 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2208 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2209 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2210 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2211 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2212 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2213 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2214 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2215 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2216 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2217 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41>
2218 struct Templates41 {
2219 typedef TemplateSel<T1> Head;
2220 typedef Templates40<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2221 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2222 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41> Tail;
2225 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2226 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2227 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2228 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2229 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2230 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2231 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2232 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2233 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2234 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2235 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2236 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2237 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2238 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42>
2239 struct Templates42 {
2240 typedef TemplateSel<T1> Head;
2241 typedef Templates41<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2242 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2243 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
2247 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2248 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2249 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2250 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2251 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2252 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2253 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2254 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2255 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2256 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2257 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2258 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2259 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2260 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2261 GTEST_TEMPLATE_ T43>
2262 struct Templates43 {
2263 typedef TemplateSel<T1> Head;
2264 typedef Templates42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2265 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2266 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2270 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2271 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2272 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2273 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2274 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2275 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2276 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2277 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2278 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2279 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2280 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2281 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2282 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2283 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2284 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44>
2285 struct Templates44 {
2286 typedef TemplateSel<T1> Head;
2287 typedef Templates43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2288 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2289 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2293 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2294 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2295 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2296 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2297 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2298 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2299 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2300 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2301 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2302 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2303 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2304 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2305 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2306 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2307 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45>
2308 struct Templates45 {
2309 typedef TemplateSel<T1> Head;
2310 typedef Templates44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2311 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2312 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2313 T43, T44, T45> Tail;
2316 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2317 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2318 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2319 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2320 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2321 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2322 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2323 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2324 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2325 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2326 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2327 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2328 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2329 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2330 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
2331 GTEST_TEMPLATE_ T46>
2332 struct Templates46 {
2333 typedef TemplateSel<T1> Head;
2334 typedef Templates45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2335 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2336 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2337 T43, T44, T45, T46> Tail;
2340 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2341 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2342 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2343 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2344 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2345 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2346 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2347 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2348 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2349 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2350 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2351 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2352 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2353 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2354 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
2355 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47>
2356 struct Templates47 {
2357 typedef TemplateSel<T1> Head;
2358 typedef Templates46<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2359 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2360 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2361 T43, T44, T45, T46, T47> Tail;
2364 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2365 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2366 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2367 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2368 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2369 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2370 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2371 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2372 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2373 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2374 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2375 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2376 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2377 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2378 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
2379 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48>
2380 struct Templates48 {
2381 typedef TemplateSel<T1> Head;
2382 typedef Templates47<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2383 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2384 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2385 T43, T44, T45, T46, T47, T48> Tail;
2388 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2389 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2390 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2391 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2392 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2393 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2394 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2395 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2396 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2397 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2398 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2399 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2400 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2401 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2402 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
2403 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
2404 GTEST_TEMPLATE_ T49>
2405 struct Templates49 {
2406 typedef TemplateSel<T1> Head;
2407 typedef Templates48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2408 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2409 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2410 T43, T44, T45, T46, T47, T48, T49> Tail;
2413 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2414 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2415 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2416 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2417 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2418 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2419 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2420 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2421 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2422 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2423 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2424 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2425 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2426 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2427 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
2428 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
2429 GTEST_TEMPLATE_ T49, GTEST_TEMPLATE_ T50>
2430 struct Templates50 {
2431 typedef TemplateSel<T1> Head;
2432 typedef Templates49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2433 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2434 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2435 T43, T44, T45, T46, T47, T48, T49, T50> Tail;
2452 template <GTEST_TEMPLATE_ T1 = NoneT, GTEST_TEMPLATE_ T2 = NoneT,
2453 GTEST_TEMPLATE_ T3 = NoneT, GTEST_TEMPLATE_ T4 = NoneT,
2454 GTEST_TEMPLATE_ T5 = NoneT, GTEST_TEMPLATE_ T6 = NoneT,
2455 GTEST_TEMPLATE_ T7 = NoneT, GTEST_TEMPLATE_ T8 = NoneT,
2456 GTEST_TEMPLATE_ T9 = NoneT, GTEST_TEMPLATE_ T10 = NoneT,
2457 GTEST_TEMPLATE_ T11 = NoneT, GTEST_TEMPLATE_ T12 = NoneT,
2458 GTEST_TEMPLATE_ T13 = NoneT, GTEST_TEMPLATE_ T14 = NoneT,
2459 GTEST_TEMPLATE_ T15 = NoneT, GTEST_TEMPLATE_ T16 = NoneT,
2460 GTEST_TEMPLATE_ T17 = NoneT, GTEST_TEMPLATE_ T18 = NoneT,
2461 GTEST_TEMPLATE_ T19 = NoneT, GTEST_TEMPLATE_ T20 = NoneT,
2462 GTEST_TEMPLATE_ T21 = NoneT, GTEST_TEMPLATE_ T22 = NoneT,
2463 GTEST_TEMPLATE_ T23 = NoneT, GTEST_TEMPLATE_ T24 = NoneT,
2464 GTEST_TEMPLATE_ T25 = NoneT, GTEST_TEMPLATE_ T26 = NoneT,
2465 GTEST_TEMPLATE_ T27 = NoneT, GTEST_TEMPLATE_ T28 = NoneT,
2466 GTEST_TEMPLATE_ T29 = NoneT, GTEST_TEMPLATE_ T30 = NoneT,
2467 GTEST_TEMPLATE_ T31 = NoneT, GTEST_TEMPLATE_ T32 = NoneT,
2468 GTEST_TEMPLATE_ T33 = NoneT, GTEST_TEMPLATE_ T34 = NoneT,
2469 GTEST_TEMPLATE_ T35 = NoneT, GTEST_TEMPLATE_ T36 = NoneT,
2470 GTEST_TEMPLATE_ T37 = NoneT, GTEST_TEMPLATE_ T38 = NoneT,
2471 GTEST_TEMPLATE_ T39 = NoneT, GTEST_TEMPLATE_ T40 = NoneT,
2472 GTEST_TEMPLATE_ T41 = NoneT, GTEST_TEMPLATE_ T42 = NoneT,
2473 GTEST_TEMPLATE_ T43 = NoneT, GTEST_TEMPLATE_ T44 = NoneT,
2474 GTEST_TEMPLATE_ T45 = NoneT, GTEST_TEMPLATE_ T46 = NoneT,
2475 GTEST_TEMPLATE_ T47 = NoneT, GTEST_TEMPLATE_ T48 = NoneT,
2476 GTEST_TEMPLATE_ T49 = NoneT, GTEST_TEMPLATE_ T50 = NoneT>
2478 typedef Templates50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2479 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2480 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
2481 T42, T43, T44, T45, T46, T47, T48, T49, T50> type;
2485 struct Templates<NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2486 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2487 NoneT, NoneT, NoneT, 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,
2491 typedef Templates0 type;
2493 template <GTEST_TEMPLATE_ T1>
2494 struct Templates<T1, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2495 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2496 NoneT, NoneT, NoneT, 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,
2500 typedef Templates1<T1> type;
2502 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2>
2503 struct Templates<T1, T2, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2504 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2505 NoneT, NoneT, NoneT, NoneT, 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,
2509 typedef Templates2<T1, T2> type;
2511 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3>
2512 struct Templates<T1, T2, T3, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2513 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2514 NoneT, NoneT, NoneT, NoneT, 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 typedef Templates3<T1, T2, T3> type;
2519 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2521 struct Templates<T1, T2, T3, T4, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2522 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2523 NoneT, NoneT, NoneT, NoneT, NoneT, 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 typedef Templates4<T1, T2, T3, T4> type;
2528 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2529 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5>
2530 struct Templates<T1, T2, T3, T4, T5, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2531 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2532 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2533 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2534 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2535 typedef Templates5<T1, T2, T3, T4, T5> type;
2537 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2538 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6>
2539 struct Templates<T1, T2, T3, T4, T5, T6, NoneT, NoneT, NoneT, NoneT, NoneT,
2540 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2541 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2542 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2543 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2544 typedef Templates6<T1, T2, T3, T4, T5, T6> type;
2546 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2547 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2549 struct Templates<T1, T2, T3, T4, T5, T6, T7, NoneT, NoneT, NoneT, NoneT, NoneT,
2550 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2551 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2552 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2553 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2554 typedef Templates7<T1, T2, T3, T4, T5, T6, T7> type;
2556 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2557 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2558 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8>
2559 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, NoneT, NoneT, NoneT, NoneT,
2560 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2561 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2562 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2563 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2564 typedef Templates8<T1, T2, T3, T4, T5, T6, T7, T8> type;
2566 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2567 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2568 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9>
2569 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, NoneT, NoneT, NoneT,
2570 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2571 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2572 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2573 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2574 typedef Templates9<T1, T2, T3, T4, T5, T6, T7, T8, T9> type;
2576 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2577 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2578 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2579 GTEST_TEMPLATE_ T10>
2580 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, NoneT, NoneT, NoneT,
2581 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2582 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2583 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2584 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2585 typedef Templates10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> type;
2587 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2588 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2589 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2590 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11>
2591 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, NoneT, NoneT,
2592 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2593 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2594 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2595 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2596 typedef Templates11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> type;
2598 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2599 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2600 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2601 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12>
2602 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, NoneT,
2603 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2604 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2605 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2606 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2607 typedef Templates12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> type;
2609 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2610 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2611 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2612 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2613 GTEST_TEMPLATE_ T13>
2614 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, NoneT,
2615 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2616 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2617 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2618 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2619 typedef Templates13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
2622 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2623 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2624 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2625 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2626 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14>
2627 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2628 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2629 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2630 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2631 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2632 typedef Templates14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2635 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2636 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2637 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2638 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2639 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15>
2640 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2641 T15, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2642 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2643 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2644 NoneT, NoneT, NoneT, NoneT, NoneT> {
2645 typedef Templates15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2648 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2649 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2650 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2651 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2652 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2653 GTEST_TEMPLATE_ T16>
2654 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2655 T15, T16, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2656 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2657 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2658 NoneT, NoneT, NoneT, NoneT, NoneT> {
2659 typedef Templates16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2660 T14, T15, T16> type;
2662 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2663 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2664 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2665 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2666 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2667 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17>
2668 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2669 T15, T16, T17, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2670 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2671 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2672 NoneT, NoneT, NoneT, NoneT, NoneT> {
2673 typedef Templates17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2674 T14, T15, T16, T17> type;
2676 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2677 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2678 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2679 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2680 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2681 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18>
2682 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2683 T15, T16, T17, T18, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2684 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2685 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2686 NoneT, NoneT, NoneT, NoneT> {
2687 typedef Templates18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2688 T14, T15, T16, T17, T18> type;
2690 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2691 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2692 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2693 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2694 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2695 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2696 GTEST_TEMPLATE_ T19>
2697 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2698 T15, T16, T17, T18, T19, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2699 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2700 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2701 NoneT, NoneT, NoneT, NoneT> {
2702 typedef Templates19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2703 T14, T15, T16, T17, T18, T19> type;
2705 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2706 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2707 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2708 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2709 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2710 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2711 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20>
2712 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2713 T15, T16, T17, T18, T19, T20, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2714 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2715 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2716 NoneT, NoneT, NoneT, NoneT> {
2717 typedef Templates20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2718 T14, T15, T16, T17, T18, T19, T20> type;
2720 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2721 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2722 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2723 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2724 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2725 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2726 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21>
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, 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, NoneT> {
2732 typedef Templates21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2733 T14, T15, T16, T17, T18, T19, T20, T21> type;
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>
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, NoneT, 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 Templates22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2749 T14, T15, T16, T17, T18, T19, T20, T21, T22> type;
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>
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, NoneT, 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 Templates23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2765 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> type;
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 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2776 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, NoneT, NoneT, NoneT,
2777 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2778 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2779 NoneT, NoneT, NoneT> {
2780 typedef Templates24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2781 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> type;
2783 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2784 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2785 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2786 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2787 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2788 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2789 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2790 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2791 GTEST_TEMPLATE_ T25>
2792 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2793 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, NoneT, NoneT, NoneT,
2794 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2795 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2797 typedef Templates25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2798 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> type;
2800 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2801 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2802 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2803 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2804 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2805 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2806 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2807 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2808 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26>
2809 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2810 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, NoneT, NoneT,
2811 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2812 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2814 typedef Templates26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2815 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> type;
2817 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2818 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2819 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2820 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2821 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2822 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2823 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2824 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2825 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27>
2826 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2827 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, NoneT,
2828 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2829 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2831 typedef Templates27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2832 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
2835 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2836 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2837 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2838 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2839 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2840 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2841 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2842 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2843 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2844 GTEST_TEMPLATE_ T28>
2845 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2846 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2847 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2848 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2850 typedef Templates28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2851 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2854 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2855 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2856 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2857 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2858 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2859 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2860 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2861 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2862 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2863 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29>
2864 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2865 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
2866 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2867 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2869 typedef Templates29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2870 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2873 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2874 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2875 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2876 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2877 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2878 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2879 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2880 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2881 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2882 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30>
2883 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2884 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
2885 T30, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2886 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2887 typedef Templates30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2888 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2889 T28, T29, T30> type;
2891 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2892 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2893 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2894 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2895 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2896 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2897 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2898 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2899 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2900 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2901 GTEST_TEMPLATE_ T31>
2902 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2903 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
2904 T30, T31, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2905 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2906 typedef Templates31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2907 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2908 T28, T29, T30, T31> type;
2910 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2911 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2912 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2913 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2914 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2915 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2916 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2917 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2918 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2919 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2920 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32>
2921 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2922 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
2923 T30, T31, T32, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2924 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2925 typedef Templates32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2926 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2927 T28, T29, T30, T31, T32> type;
2929 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2930 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2931 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2932 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2933 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2934 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2935 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2936 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2937 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2938 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2939 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33>
2940 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2941 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
2942 T30, T31, T32, T33, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2943 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2944 typedef Templates33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2945 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2946 T28, T29, T30, T31, T32, T33> type;
2948 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2949 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2950 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2951 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2952 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2953 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2954 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2955 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2956 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2957 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2958 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2959 GTEST_TEMPLATE_ T34>
2960 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2961 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
2962 T30, T31, T32, T33, T34, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2963 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2964 typedef Templates34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2965 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2966 T28, T29, T30, T31, T32, T33, T34> type;
2968 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2969 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2970 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2971 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2972 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2973 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2974 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2975 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2976 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2977 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2978 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2979 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35>
2980 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2981 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
2982 T30, T31, T32, T33, T34, T35, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2983 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2984 typedef Templates35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2985 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2986 T28, T29, T30, T31, T32, T33, T34, T35> type;
2988 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2989 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2990 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2991 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2992 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2993 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2994 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2995 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2996 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2997 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2998 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2999 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36>
3000 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3001 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3002 T30, T31, T32, T33, T34, T35, T36, NoneT, NoneT, NoneT, NoneT, NoneT,
3003 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3004 typedef Templates36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3005 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3006 T28, T29, T30, T31, T32, T33, T34, T35, T36> type;
3008 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3009 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3010 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3011 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3012 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3013 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3014 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3015 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3016 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3017 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3018 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3019 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3020 GTEST_TEMPLATE_ T37>
3021 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3022 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3023 T30, T31, T32, T33, T34, T35, T36, T37, NoneT, NoneT, NoneT, NoneT, NoneT,
3024 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3025 typedef Templates37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3026 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3027 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37> type;
3029 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3030 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3031 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3032 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3033 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3034 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3035 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3036 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3037 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3038 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3039 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3040 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3041 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38>
3042 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3043 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3044 T30, T31, T32, T33, T34, T35, T36, T37, T38, NoneT, NoneT, NoneT, NoneT,
3045 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3046 typedef Templates38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3047 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3048 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> type;
3050 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3051 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3052 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3053 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3054 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3055 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3056 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3057 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3058 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3059 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3060 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3061 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3062 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39>
3063 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3064 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3065 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, NoneT, NoneT, NoneT,
3066 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3067 typedef Templates39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3068 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3069 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> type;
3071 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3072 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3073 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3074 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3075 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3076 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3077 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3078 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3079 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3080 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3081 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3082 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3083 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3084 GTEST_TEMPLATE_ T40>
3085 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3086 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3087 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, NoneT, NoneT, NoneT,
3088 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3089 typedef Templates40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3090 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3091 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> type;
3093 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3094 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3095 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3096 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3097 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3098 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3099 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3100 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3101 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3102 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3103 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3104 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3105 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3106 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41>
3107 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3108 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3109 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, NoneT, NoneT,
3110 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3111 typedef Templates41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3112 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3113 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
3116 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3117 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3118 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3119 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3120 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3121 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3122 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3123 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3124 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3125 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3126 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3127 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3128 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3129 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42>
3130 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3131 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3132 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, NoneT,
3133 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3134 typedef Templates42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3135 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3136 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3139 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3140 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3141 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3142 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3143 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3144 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3145 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3146 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3147 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3148 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3149 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3150 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3151 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3152 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3153 GTEST_TEMPLATE_ T43>
3154 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3155 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3156 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
3157 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3158 typedef Templates43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3159 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3160 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3163 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3164 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3165 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3166 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3167 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3168 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3169 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3170 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3171 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3172 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3173 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3174 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3175 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3176 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3177 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44>
3178 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3179 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3180 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3181 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3182 typedef Templates44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3183 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3184 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3185 T42, T43, T44> type;
3187 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3188 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3189 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3190 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3191 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3192 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3193 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3194 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3195 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3196 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3197 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3198 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3199 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3200 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3201 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45>
3202 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3203 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3204 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3205 T45, NoneT, NoneT, NoneT, NoneT, NoneT> {
3206 typedef Templates45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3207 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3208 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3209 T42, T43, T44, T45> type;
3211 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3212 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3213 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3214 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3215 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3216 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3217 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3218 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3219 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3220 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3221 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3222 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3223 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3224 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3225 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
3226 GTEST_TEMPLATE_ T46>
3227 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3228 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3229 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3230 T45, T46, NoneT, NoneT, NoneT, NoneT> {
3231 typedef Templates46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3232 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3233 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3234 T42, T43, T44, T45, T46> type;
3236 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3237 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3238 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3239 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3240 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3241 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3242 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3243 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3244 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3245 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3246 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3247 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3248 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3249 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3250 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
3251 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47>
3252 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3253 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3254 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3255 T45, T46, T47, NoneT, NoneT, NoneT> {
3256 typedef Templates47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3257 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3258 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3259 T42, T43, T44, T45, T46, T47> type;
3261 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3262 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3263 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3264 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3265 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3266 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3267 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3268 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3269 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3270 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3271 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3272 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3273 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3274 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3275 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
3276 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48>
3277 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3278 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3279 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3280 T45, T46, T47, T48, NoneT, NoneT> {
3281 typedef Templates48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3282 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3283 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3284 T42, T43, T44, T45, T46, T47, T48> type;
3286 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3287 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3288 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3289 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3290 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3291 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3292 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3293 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3294 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3295 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3296 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3297 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3298 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3299 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3300 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
3301 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
3302 GTEST_TEMPLATE_ T49>
3303 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3304 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3305 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3306 T45, T46, T47, T48, T49, NoneT> {
3307 typedef Templates49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3308 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3309 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3310 T42, T43, T44, T45, T46, T47, T48, T49> type;
3317 template <
typename T>
3319 typedef Types1<T> type;
3322 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
3323 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
3324 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
3325 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
3326 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
3327 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
3328 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
3329 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
3330 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
3331 typename T46,
typename T47,
typename T48,
typename T49,
typename T50>
3332 struct TypeList<Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3333 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
3334 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
3335 T44, T45, T46, T47, T48, T49, T50> > {
3336 typedef typename Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
3337 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
3338 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
3339 T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>::type type;
std::string CanonicalizeForStdLibVersioning(std::string s)
std::string GetTypeName()