44 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ 45 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ 47 #include "gtest/internal/gtest-port.h" 51 # if GTEST_HAS_CXXABI_H_ 53 # elif defined(__HP_aCC) 54 # include <acxx_demangle.h> 55 # endif // GTEST_HASH_CXXABI_H_ 70 const char *
const name =
typeid(T).
name();
71 # if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC) 75 # if GTEST_HAS_CXXABI_H_ 76 using abi::__cxa_demangle;
77 # endif // GTEST_HAS_CXXABI_H_ 78 char *
const readable_name = __cxa_demangle(name, 0, 0, &status);
79 const std::string name_str(status == 0 ? readable_name : name);
84 # endif // GTEST_HAS_CXXABI_H_ || __HP_aCC 90 # endif // GTEST_HAS_RTTI 93 #if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P 99 template <
typename T1,
typename T2>
102 template <
typename T>
103 struct AssertTypeEq<T, T>
126 template <
typename T1>
132 template <
typename T1,
typename T2>
136 typedef Types1<T2> Tail;
139 template <
typename T1,
typename T2,
typename T3>
143 typedef Types2<T2, T3> Tail;
146 template <
typename T1,
typename T2,
typename T3,
typename T4>
150 typedef Types3<T2, T3, T4> Tail;
153 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
157 typedef Types4<T2, T3, T4, T5> Tail;
160 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
165 typedef Types5<T2, T3, T4, T5, T6> Tail;
168 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
169 typename T6,
typename T7>
173 typedef Types6<T2, T3, T4, T5, T6, T7> Tail;
176 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
177 typename T6,
typename T7,
typename T8>
181 typedef Types7<T2, T3, T4, T5, T6, T7, T8> Tail;
184 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
185 typename T6,
typename T7,
typename T8,
typename T9>
189 typedef Types8<T2, T3, T4, T5, T6, T7, T8, T9> Tail;
192 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
193 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
197 typedef Types9<T2, T3, T4, T5, T6, T7, T8, T9, T10> Tail;
200 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
201 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
206 typedef Types10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Tail;
209 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
210 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
211 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>
224 typedef Types12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail;
227 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
228 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
229 typename T11,
typename T12,
typename T13,
typename T14>
233 typedef Types13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Tail;
236 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
237 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
238 typename T11,
typename T12,
typename T13,
typename T14,
typename T15>
242 typedef Types14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
246 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
247 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
248 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
253 typedef Types15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
257 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
258 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
259 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
260 typename T16,
typename T17>
264 typedef Types16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
268 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
269 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
270 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
271 typename T16,
typename T17,
typename T18>
275 typedef Types17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
279 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
280 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
281 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
282 typename T16,
typename T17,
typename T18,
typename T19>
286 typedef Types18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
287 T16, T17, T18, T19> Tail;
290 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
291 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
292 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
293 typename T16,
typename T17,
typename T18,
typename T19,
typename T20>
297 typedef Types19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
298 T16, T17, T18, T19, T20> Tail;
301 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
302 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
303 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
304 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
309 typedef Types20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
310 T16, T17, T18, T19, T20, T21> Tail;
313 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
314 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
315 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
316 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
317 typename T21,
typename T22>
321 typedef Types21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
322 T16, T17, T18, T19, T20, T21, T22> Tail;
325 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
326 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
327 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
328 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
329 typename T21,
typename T22,
typename T23>
333 typedef Types22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
334 T16, T17, T18, T19, T20, T21, T22, T23> 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>
345 typedef Types23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
346 T16, T17, T18, T19, T20, T21, T22, T23, T24> Tail;
349 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
350 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
351 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
352 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
353 typename T21,
typename T22,
typename T23,
typename T24,
typename T25>
357 typedef Types24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
358 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Tail;
361 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
362 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
363 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
364 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
365 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
370 typedef Types25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
371 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> Tail;
374 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
375 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
376 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
377 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
378 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
379 typename T26,
typename T27>
383 typedef Types26<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
384 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> Tail;
387 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
388 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
389 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
390 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
391 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
392 typename T26,
typename T27,
typename T28>
396 typedef Types27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
397 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28> Tail;
400 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
401 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
402 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
403 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
404 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
405 typename T26,
typename T27,
typename T28,
typename T29>
409 typedef Types28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
410 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
414 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
415 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
416 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
417 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
418 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
419 typename T26,
typename T27,
typename T28,
typename T29,
typename T30>
423 typedef Types29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
424 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
428 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
429 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
430 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
431 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
432 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
433 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
438 typedef Types30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
439 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
443 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
444 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
445 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
446 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
447 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
448 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
449 typename T31,
typename T32>
453 typedef Types31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
454 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
458 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
459 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
460 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
461 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
462 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
463 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
464 typename T31,
typename T32,
typename T33>
468 typedef Types32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
469 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
470 T30, T31, T32, T33> Tail;
473 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
474 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
475 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
476 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
477 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
478 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
479 typename T31,
typename T32,
typename T33,
typename T34>
483 typedef Types33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
484 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
485 T30, T31, T32, T33, T34> Tail;
488 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
489 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
490 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
491 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
492 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
493 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
494 typename T31,
typename T32,
typename T33,
typename T34,
typename T35>
498 typedef Types34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
499 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
500 T30, T31, T32, T33, T34, T35> Tail;
503 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
504 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
505 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
506 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
507 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
508 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
509 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
514 typedef Types35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
515 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
516 T30, T31, T32, T33, T34, T35, T36> Tail;
519 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
520 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
521 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
522 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
523 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
524 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
525 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
526 typename T36,
typename T37>
530 typedef Types36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
531 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
532 T30, T31, T32, T33, T34, T35, T36, T37> Tail;
535 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
536 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
537 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
538 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
539 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
540 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
541 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
542 typename T36,
typename T37,
typename T38>
546 typedef Types37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
547 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
548 T30, T31, T32, T33, T34, T35, T36, T37, T38> Tail;
551 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
552 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
553 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
554 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
555 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
556 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
557 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
558 typename T36,
typename T37,
typename T38,
typename T39>
562 typedef Types38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
563 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
564 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Tail;
567 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
568 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
569 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
570 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
571 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
572 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
573 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
574 typename T36,
typename T37,
typename T38,
typename T39,
typename T40>
578 typedef Types39<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
579 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
580 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Tail;
583 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
584 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
585 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
586 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
587 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
588 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
589 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
590 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
595 typedef Types40<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
596 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
597 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41> Tail;
600 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
601 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
602 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
603 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
604 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
605 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
606 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
607 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
608 typename T41,
typename T42>
612 typedef Types41<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
613 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
614 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42> Tail;
617 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
618 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
619 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
620 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
621 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
622 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
623 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
624 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
625 typename T41,
typename T42,
typename T43>
629 typedef Types42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
630 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
631 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
635 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
636 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
637 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
638 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
639 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
640 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
641 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
642 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
643 typename T41,
typename T42,
typename T43,
typename T44>
647 typedef Types43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
648 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
649 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
653 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
654 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
655 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
656 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
657 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
658 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
659 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
660 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
661 typename T41,
typename T42,
typename T43,
typename T44,
typename T45>
665 typedef Types44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
666 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
667 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
671 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
672 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
673 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
674 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
675 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
676 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
677 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
678 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
679 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
684 typedef Types45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
685 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
686 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
690 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
691 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
692 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
693 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
694 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
695 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
696 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
697 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
698 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
699 typename T46,
typename T47>
703 typedef Types46<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
704 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
705 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
706 T44, T45, T46, T47> Tail;
709 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
710 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
711 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
712 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
713 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
714 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
715 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
716 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
717 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
718 typename T46,
typename T47,
typename T48>
722 typedef Types47<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> Tail;
728 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
729 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
730 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
731 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
732 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
733 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
734 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
735 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
736 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
737 typename T46,
typename T47,
typename T48,
typename T49>
741 typedef Types48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
742 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
743 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
744 T44, T45, T46, T47, T48, T49> Tail;
747 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
748 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
749 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
750 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
751 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
752 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
753 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
754 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
755 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
756 typename T46,
typename T47,
typename T48,
typename T49,
typename T50>
760 typedef Types49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
761 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
762 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
763 T44, T45, T46, T47, T48, T49, T50> Tail;
782 template <
typename T1 = internal::None,
typename T2 = internal::None,
783 typename T3 = internal::None,
typename T4 = internal::None,
784 typename T5 = internal::None,
typename T6 = internal::None,
785 typename T7 = internal::None,
typename T8 = internal::None,
786 typename T9 = internal::None,
typename T10 = internal::None,
787 typename T11 = internal::None,
typename T12 = internal::None,
788 typename T13 = internal::None,
typename T14 = internal::None,
789 typename T15 = internal::None,
typename T16 = internal::None,
790 typename T17 = internal::None,
typename T18 = internal::None,
791 typename T19 = internal::None,
typename T20 = internal::None,
792 typename T21 = internal::None,
typename T22 = internal::None,
793 typename T23 = internal::None,
typename T24 = internal::None,
794 typename T25 = internal::None,
typename T26 = internal::None,
795 typename T27 = internal::None,
typename T28 = internal::None,
796 typename T29 = internal::None,
typename T30 = internal::None,
797 typename T31 = internal::None,
typename T32 = internal::None,
798 typename T33 = internal::None,
typename T34 = internal::None,
799 typename T35 = internal::None,
typename T36 = internal::None,
800 typename T37 = internal::None,
typename T38 = internal::None,
801 typename T39 = internal::None,
typename T40 = internal::None,
802 typename T41 = internal::None,
typename T42 = internal::None,
803 typename T43 = internal::None,
typename T44 = internal::None,
804 typename T45 = internal::None,
typename T46 = internal::None,
805 typename T47 = internal::None,
typename T48 = internal::None,
806 typename T49 = internal::None,
typename T50 = internal::None>
809 typedef internal::Types50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
810 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
811 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
812 T41, T42, T43, T44, T45, T46, T47, T48, T49, T50> type;
816 struct Types<internal::
None, internal::None, internal::None, internal::None,
817 internal::None, internal::None, internal::None, internal::None,
818 internal::None, internal::None, internal::None, internal::None,
819 internal::None, internal::None, internal::None, internal::None,
820 internal::None, internal::None, internal::None, internal::None,
821 internal::None, internal::None, internal::None, internal::None,
822 internal::None, internal::None, internal::None, internal::None,
823 internal::None, internal::None, internal::None, internal::None,
824 internal::None, internal::None, internal::None, internal::None,
825 internal::None, internal::None, internal::None, internal::None,
826 internal::None, internal::None, internal::None, internal::None,
827 internal::None, internal::None, internal::None, internal::None,
828 internal::None, internal::None>
830 typedef internal::Types0 type;
832 template <
typename T1>
833 struct Types<T1, 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 internal::None, internal::None, internal::None, internal::None,
838 internal::None, internal::None, internal::None, internal::None,
839 internal::None, internal::None, internal::None, internal::None,
840 internal::None, internal::None, internal::None, internal::None,
841 internal::None, internal::None, internal::None, internal::None,
842 internal::None, internal::None, internal::None, internal::None,
843 internal::None, internal::None, internal::None, internal::None,
844 internal::None, internal::None, internal::None, internal::None,
845 internal::None, internal::None>
847 typedef internal::Types1<T1> type;
849 template <
typename T1,
typename T2>
850 struct Types<T1, T2, internal::
None, internal::None, internal::None,
851 internal::None, internal::None, internal::None, internal::None,
852 internal::None, internal::None, internal::None, internal::None,
853 internal::None, internal::None, internal::None, internal::None,
854 internal::None, internal::None, internal::None, internal::None,
855 internal::None, internal::None, 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,
864 typedef internal::Types2<T1, T2> type;
866 template <
typename T1,
typename T2,
typename T3>
867 struct Types<T1, T2, T3, internal::
None, internal::None, internal::None,
868 internal::None, internal::None, internal::None, internal::None,
869 internal::None, internal::None, internal::None, internal::None,
870 internal::None, internal::None, internal::None, internal::None,
871 internal::None, internal::None, 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>
880 typedef internal::Types3<T1, T2, T3> type;
882 template <
typename T1,
typename T2,
typename T3,
typename T4>
883 struct Types<T1, T2, T3, T4, internal::
None, internal::None, internal::None,
884 internal::None, internal::None, internal::None, internal::None,
885 internal::None, internal::None, internal::None, internal::None,
886 internal::None, internal::None, internal::None, internal::None,
887 internal::None, internal::None, 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>
896 typedef internal::Types4<T1, T2, T3, T4> type;
898 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
899 struct Types<T1, T2, T3, T4, T5, internal::
None, internal::None,
900 internal::None, internal::None, internal::None, internal::None,
901 internal::None, internal::None, internal::None, internal::None,
902 internal::None, internal::None, internal::None, internal::None,
903 internal::None, internal::None, internal::None, internal::None,
904 internal::None, internal::None, internal::None, internal::None,
905 internal::None, internal::None, internal::None, internal::None,
906 internal::None, internal::None, internal::None, internal::None,
907 internal::None, internal::None, internal::None, internal::None,
908 internal::None, internal::None, internal::None, internal::None,
909 internal::None, internal::None, internal::None, internal::None,
910 internal::None, internal::None, internal::None>
912 typedef internal::Types5<T1, T2, T3, T4, T5> type;
914 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
916 struct Types<T1, T2, T3, T4, T5, T6, internal::
None, internal::None,
917 internal::None, internal::None, internal::None, internal::None,
918 internal::None, internal::None, internal::None, internal::None,
919 internal::None, internal::None, internal::None, internal::None,
920 internal::None, internal::None, internal::None, internal::None,
921 internal::None, internal::None, internal::None, internal::None,
922 internal::None, internal::None, internal::None, internal::None,
923 internal::None, internal::None, internal::None, internal::None,
924 internal::None, internal::None, internal::None, internal::None,
925 internal::None, internal::None, internal::None, internal::None,
926 internal::None, internal::None, internal::None, internal::None,
927 internal::None, internal::None>
929 typedef internal::Types6<T1, T2, T3, T4, T5, T6> type;
931 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
932 typename T6,
typename T7>
933 struct Types<T1, T2, T3, T4, T5, T6, T7, internal::
None, 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, internal::None,
946 typedef internal::Types7<T1, T2, T3, T4, T5, T6, T7> type;
948 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
949 typename T6,
typename T7,
typename T8>
950 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, 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, internal::None, internal::None,
960 internal::None, internal::None, internal::None, internal::None>
962 typedef internal::Types8<T1, T2, T3, T4, T5, T6, T7, T8> type;
964 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
965 typename T6,
typename T7,
typename T8,
typename T9>
966 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, 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,
975 internal::None, internal::None, internal::None, internal::None,
976 internal::None, internal::None, internal::None, internal::None>
978 typedef internal::Types9<T1, T2, T3, T4, T5, T6, T7, T8, T9> type;
980 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
981 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
982 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, internal::
None,
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,
992 internal::None, internal::None, internal::None>
994 typedef internal::Types10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> type;
996 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
997 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
999 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, internal::
None,
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 internal::None, internal::None>
1011 typedef internal::Types11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> type;
1013 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1014 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1015 typename T11,
typename T12>
1016 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 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, internal::None,
1025 internal::None, internal::None, internal::None, internal::None,
1028 typedef internal::Types12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1031 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1032 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1033 typename T11,
typename T12,
typename T13>
1034 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1035 internal::
None, internal::None, internal::None, internal::None,
1036 internal::None, internal::None, internal::None, internal::None,
1037 internal::None, internal::None, internal::None, internal::None,
1038 internal::None, internal::None, internal::None, internal::None,
1039 internal::None, internal::None, internal::None, internal::None,
1040 internal::None, internal::None, internal::None, internal::None,
1041 internal::None, internal::None, internal::None, internal::None,
1042 internal::None, internal::None, internal::None, internal::None,
1043 internal::None, internal::None, internal::None, internal::None,
1046 typedef internal::Types13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1049 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1050 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1051 typename T11,
typename T12,
typename T13,
typename T14>
1052 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1053 internal::
None, internal::None, internal::None, internal::None,
1054 internal::None, internal::None, internal::None, internal::None,
1055 internal::None, internal::None, internal::None, internal::None,
1056 internal::None, internal::None, internal::None, internal::None,
1057 internal::None, internal::None, internal::None, internal::None,
1058 internal::None, internal::None, internal::None, internal::None,
1059 internal::None, internal::None, internal::None, internal::None,
1060 internal::None, internal::None, internal::None, internal::None,
1061 internal::None, internal::None, internal::None, internal::None>
1063 typedef internal::Types14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1066 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1067 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1068 typename T11,
typename T12,
typename T13,
typename T14,
typename T15>
1069 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1070 internal::
None, internal::None, internal::None, internal::None,
1071 internal::None, internal::None, internal::None, internal::None,
1072 internal::None, internal::None, internal::None, internal::None,
1073 internal::None, internal::None, internal::None, internal::None,
1074 internal::None, internal::None, internal::None, internal::None,
1075 internal::None, internal::None, internal::None, internal::None,
1076 internal::None, internal::None, internal::None, internal::None,
1077 internal::None, internal::None, internal::None, internal::None,
1078 internal::None, internal::None, internal::None>
1080 typedef internal::Types15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1081 T13, T14, T15> type;
1083 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1084 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1085 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1087 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1088 T16, 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 internal::None, internal::None, internal::None, internal::None,
1093 internal::None, internal::None, internal::None, internal::None,
1094 internal::None, internal::None, internal::None, internal::None,
1095 internal::None, internal::None, internal::None, internal::None,
1096 internal::None, internal::None>
1098 typedef internal::Types16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1099 T13, T14, T15, T16> type;
1101 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1102 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1103 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1104 typename T16,
typename T17>
1105 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1106 T16, T17, internal::
None, internal::None, internal::None, internal::None,
1107 internal::None, internal::None, internal::None, internal::None,
1108 internal::None, internal::None, internal::None, internal::None,
1109 internal::None, internal::None, internal::None, internal::None,
1110 internal::None, internal::None, internal::None, internal::None,
1111 internal::None, internal::None, internal::None, internal::None,
1112 internal::None, internal::None, internal::None, internal::None,
1113 internal::None, internal::None, internal::None, internal::None,
1116 typedef internal::Types17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1117 T13, T14, T15, T16, T17> type;
1119 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1120 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1121 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1122 typename T16,
typename T17,
typename T18>
1123 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1124 T16, T17, T18, internal::
None, internal::None, internal::None,
1125 internal::None, internal::None, internal::None, internal::None,
1126 internal::None, internal::None, internal::None, internal::None,
1127 internal::None, internal::None, internal::None, internal::None,
1128 internal::None, internal::None, internal::None, internal::None,
1129 internal::None, internal::None, internal::None, internal::None,
1130 internal::None, internal::None, internal::None, internal::None,
1131 internal::None, internal::None, internal::None, internal::None,
1134 typedef internal::Types18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1135 T13, T14, T15, T16, T17, T18> type;
1137 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1138 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1139 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1140 typename T16,
typename T17,
typename T18,
typename T19>
1141 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1142 T16, T17, T18, T19, internal::
None, internal::None, internal::None,
1143 internal::None, internal::None, internal::None, internal::None,
1144 internal::None, internal::None, internal::None, internal::None,
1145 internal::None, internal::None, internal::None, internal::None,
1146 internal::None, internal::None, internal::None, internal::None,
1147 internal::None, internal::None, internal::None, internal::None,
1148 internal::None, internal::None, internal::None, internal::None,
1149 internal::None, internal::None, internal::None, internal::None>
1151 typedef internal::Types19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1152 T13, T14, T15, T16, T17, T18, T19> type;
1154 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1155 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1156 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1157 typename T16,
typename T17,
typename T18,
typename T19,
typename T20>
1158 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1159 T16, T17, T18, T19, T20, internal::
None, internal::None, internal::None,
1160 internal::None, internal::None, internal::None, internal::None,
1161 internal::None, internal::None, internal::None, internal::None,
1162 internal::None, internal::None, internal::None, internal::None,
1163 internal::None, internal::None, internal::None, internal::None,
1164 internal::None, internal::None, internal::None, internal::None,
1165 internal::None, internal::None, internal::None, internal::None,
1166 internal::None, internal::None, internal::None>
1168 typedef internal::Types20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1169 T13, T14, T15, T16, T17, T18, T19, T20> type;
1171 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1172 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1173 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1174 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1176 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1177 T16, T17, T18, T19, T20, T21, internal::
None, internal::None,
1178 internal::None, internal::None, internal::None, internal::None,
1179 internal::None, internal::None, internal::None, internal::None,
1180 internal::None, internal::None, internal::None, internal::None,
1181 internal::None, internal::None, internal::None, internal::None,
1182 internal::None, internal::None, internal::None, internal::None,
1183 internal::None, internal::None, internal::None, internal::None,
1184 internal::None, internal::None, internal::None>
1186 typedef internal::Types21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1187 T13, T14, T15, T16, T17, T18, T19, T20, T21> type;
1189 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1190 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1191 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1192 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1193 typename T21,
typename T22>
1194 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1195 T16, T17, T18, T19, T20, T21, T22, internal::
None, internal::None,
1196 internal::None, internal::None, internal::None, internal::None,
1197 internal::None, internal::None, internal::None, internal::None,
1198 internal::None, internal::None, internal::None, internal::None,
1199 internal::None, internal::None, internal::None, internal::None,
1200 internal::None, internal::None, internal::None, internal::None,
1201 internal::None, internal::None, internal::None, internal::None,
1202 internal::None, internal::None>
1204 typedef internal::Types22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1205 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> type;
1207 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1208 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1209 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1210 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1211 typename T21,
typename T22,
typename T23>
1212 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1213 T16, T17, T18, T19, T20, T21, T22, T23, internal::
None, internal::None,
1214 internal::None, internal::None, internal::None, internal::None,
1215 internal::None, internal::None, internal::None, internal::None,
1216 internal::None, internal::None, internal::None, internal::None,
1217 internal::None, internal::None, internal::None, internal::None,
1218 internal::None, internal::None, internal::None, internal::None,
1219 internal::None, internal::None, internal::None, internal::None,
1222 typedef internal::Types23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1223 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> type;
1225 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1226 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1227 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1228 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1229 typename T21,
typename T22,
typename T23,
typename T24>
1230 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1231 T16, T17, T18, T19, T20, T21, T22, T23, T24, internal::
None,
1232 internal::None, internal::None, internal::None, internal::None,
1233 internal::None, internal::None, internal::None, internal::None,
1234 internal::None, internal::None, internal::None, internal::None,
1235 internal::None, internal::None, internal::None, internal::None,
1236 internal::None, internal::None, internal::None, internal::None,
1237 internal::None, internal::None, internal::None, internal::None,
1240 typedef internal::Types24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1241 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> type;
1243 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1244 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1245 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1246 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1247 typename T21,
typename T22,
typename T23,
typename T24,
typename T25>
1248 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1249 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, internal::
None,
1250 internal::None, internal::None, internal::None, internal::None,
1251 internal::None, internal::None, internal::None, internal::None,
1252 internal::None, internal::None, internal::None, internal::None,
1253 internal::None, internal::None, internal::None, internal::None,
1254 internal::None, internal::None, internal::None, internal::None,
1255 internal::None, internal::None, internal::None, internal::None>
1257 typedef internal::Types25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1258 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> type;
1260 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1261 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1262 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1263 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1264 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1266 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1267 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, internal::
None,
1268 internal::None, internal::None, internal::None, internal::None,
1269 internal::None, internal::None, internal::None, internal::None,
1270 internal::None, internal::None, internal::None, internal::None,
1271 internal::None, internal::None, internal::None, internal::None,
1272 internal::None, internal::None, internal::None, internal::None,
1273 internal::None, internal::None, internal::None>
1275 typedef internal::Types26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1276 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1279 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1280 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1281 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1282 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1283 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1284 typename T26,
typename T27>
1285 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1286 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, internal::
None,
1287 internal::None, internal::None, internal::None, internal::None,
1288 internal::None, internal::None, internal::None, internal::None,
1289 internal::None, internal::None, internal::None, internal::None,
1290 internal::None, internal::None, internal::None, internal::None,
1291 internal::None, internal::None, internal::None, internal::None,
1292 internal::None, internal::None>
1294 typedef internal::Types27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1295 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1298 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1299 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1300 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1301 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1302 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1303 typename T26,
typename T27,
typename T28>
1304 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1305 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1306 internal::
None, internal::None, internal::None, internal::None,
1307 internal::None, internal::None, internal::None, internal::None,
1308 internal::None, internal::None, internal::None, internal::None,
1309 internal::None, internal::None, internal::None, internal::None,
1310 internal::None, internal::None, internal::None, internal::None,
1311 internal::None, internal::None>
1313 typedef internal::Types28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1314 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1317 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1318 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1319 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1320 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1321 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1322 typename T26,
typename T27,
typename T28,
typename T29>
1323 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1324 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
1325 internal::
None, internal::None, internal::None, internal::None,
1326 internal::None, internal::None, internal::None, internal::None,
1327 internal::None, internal::None, internal::None, internal::None,
1328 internal::None, internal::None, internal::None, internal::None,
1329 internal::None, internal::None, internal::None, internal::None,
1332 typedef internal::Types29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1333 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1334 T27, T28, T29> type;
1336 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1337 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1338 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1339 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1340 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1341 typename T26,
typename T27,
typename T28,
typename T29,
typename T30>
1342 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1343 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1344 internal::
None, internal::None, internal::None, internal::None,
1345 internal::None, internal::None, internal::None, internal::None,
1346 internal::None, internal::None, internal::None, internal::None,
1347 internal::None, internal::None, internal::None, internal::None,
1348 internal::None, internal::None, internal::None, internal::None>
1350 typedef internal::Types30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1351 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1352 T27, T28, T29, T30> type;
1354 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1355 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1356 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1357 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1358 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1359 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1361 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1362 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1363 T31, internal::
None, internal::None, internal::None, internal::None,
1364 internal::None, internal::None, internal::None, internal::None,
1365 internal::None, internal::None, internal::None, internal::None,
1366 internal::None, internal::None, internal::None, internal::None,
1367 internal::None, internal::None, internal::None>
1369 typedef internal::Types31<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> 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>
1380 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1381 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1382 T31, T32, internal::
None, internal::None, internal::None, internal::None,
1383 internal::None, internal::None, 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>
1388 typedef internal::Types32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1389 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1390 T27, T28, T29, T30, T31, T32> type;
1392 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1393 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1394 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1395 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1396 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1397 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1398 typename T31,
typename T32,
typename T33>
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, internal::
None, 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, internal::None,
1405 internal::None, internal::None>
1407 typedef internal::Types33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1408 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1409 T27, T28, T29, T30, T31, T32, T33> type;
1411 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1412 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1413 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1414 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1415 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1416 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1417 typename T31,
typename T32,
typename T33,
typename T34>
1418 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1419 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1420 T31, T32, T33, T34, internal::
None, internal::None, internal::None,
1421 internal::None, internal::None, internal::None, internal::None,
1422 internal::None, internal::None, internal::None, internal::None,
1423 internal::None, internal::None, internal::None, internal::None,
1426 typedef internal::Types34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1427 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1428 T27, T28, T29, T30, T31, T32, T33, T34> type;
1430 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1431 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1432 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1433 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1434 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1435 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1436 typename T31,
typename T32,
typename T33,
typename T34,
typename T35>
1437 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1438 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1439 T31, T32, T33, T34, T35, internal::
None, internal::None, internal::None,
1440 internal::None, internal::None, internal::None, internal::None,
1441 internal::None, internal::None, internal::None, internal::None,
1442 internal::None, internal::None, internal::None, internal::None>
1444 typedef internal::Types35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1445 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1446 T27, T28, T29, T30, T31, T32, T33, T34, T35> type;
1448 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1449 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1450 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1451 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1452 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1453 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1454 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1456 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1457 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1458 T31, T32, T33, T34, T35, T36, internal::
None, internal::None,
1459 internal::None, internal::None, internal::None, internal::None,
1460 internal::None, internal::None, internal::None, internal::None,
1461 internal::None, internal::None, internal::None, internal::None>
1463 typedef internal::Types36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1464 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1465 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36> type;
1467 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1468 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1469 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1470 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1471 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1472 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1473 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1474 typename T36,
typename T37>
1475 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1476 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1477 T31, T32, T33, T34, T35, T36, T37, internal::
None, internal::None,
1478 internal::None, internal::None, internal::None, internal::None,
1479 internal::None, internal::None, internal::None, internal::None,
1480 internal::None, internal::None, internal::None>
1482 typedef internal::Types37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1483 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1484 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37> type;
1486 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1487 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1488 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1489 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1490 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1491 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1492 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1493 typename T36,
typename T37,
typename T38>
1494 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1495 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1496 T31, T32, T33, T34, T35, T36, T37, T38, internal::
None, internal::None,
1497 internal::None, internal::None, internal::None, internal::None,
1498 internal::None, internal::None, internal::None, internal::None,
1499 internal::None, internal::None>
1501 typedef internal::Types38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1502 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1503 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> type;
1505 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1506 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1507 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1508 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1509 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1510 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1511 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1512 typename T36,
typename T37,
typename T38,
typename T39>
1513 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1514 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1515 T31, T32, T33, T34, T35, T36, T37, T38, T39, internal::
None,
1516 internal::None, internal::None, internal::None, internal::None,
1517 internal::None, internal::None, internal::None, internal::None,
1518 internal::None, internal::None>
1520 typedef internal::Types39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1521 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1522 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> type;
1524 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1525 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1526 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1527 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1528 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1529 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1530 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1531 typename T36,
typename T37,
typename T38,
typename T39,
typename T40>
1532 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1533 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1534 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, internal::
None,
1535 internal::None, internal::None, internal::None, internal::None,
1536 internal::None, internal::None, internal::None, internal::None,
1539 typedef internal::Types40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1540 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1541 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1544 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1545 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1546 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1547 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1548 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1549 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1550 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1551 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1553 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1554 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1555 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, internal::
None,
1556 internal::None, internal::None, internal::None, internal::None,
1557 internal::None, internal::None, internal::None, internal::None>
1559 typedef internal::Types41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1560 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1561 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1564 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1565 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1566 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1567 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1568 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1569 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1570 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1571 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1572 typename T41,
typename T42>
1573 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1574 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1575 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, internal::
None,
1576 internal::None, internal::None, internal::None, internal::None,
1577 internal::None, internal::None, internal::None>
1579 typedef internal::Types42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1580 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1581 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1584 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1585 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1586 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1587 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1588 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1589 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1590 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1591 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1592 typename T41,
typename T42,
typename T43>
1593 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1594 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1595 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1596 internal::
None, internal::None, internal::None, internal::None,
1597 internal::None, internal::None, internal::None>
1599 typedef internal::Types43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1600 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1601 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1602 T41, T42, T43> type;
1604 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1605 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1606 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1607 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1608 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1609 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1610 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1611 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1612 typename T41,
typename T42,
typename T43,
typename T44>
1613 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1614 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1615 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
1616 internal::
None, internal::None, internal::None, internal::None,
1617 internal::None, internal::None>
1619 typedef internal::Types44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1620 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1621 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1622 T41, T42, T43, T44> type;
1624 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1625 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1626 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1627 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1628 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1629 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1630 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1631 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1632 typename T41,
typename T42,
typename T43,
typename T44,
typename T45>
1633 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1634 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1635 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
1636 internal::
None, internal::None, internal::None, internal::None,
1639 typedef internal::Types45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1640 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1641 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1642 T41, T42, T43, T44, T45> type;
1644 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1645 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1646 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1647 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1648 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1649 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1650 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1651 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1652 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1654 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1655 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1656 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
1657 T46, internal::
None, internal::None, internal::None, internal::None>
1659 typedef internal::Types46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1660 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1661 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1662 T41, T42, T43, T44, T45, T46> type;
1664 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1665 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1666 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1667 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1668 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1669 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1670 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1671 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1672 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1673 typename T46,
typename T47>
1674 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1675 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1676 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
1677 T46, T47, internal::
None, internal::None, internal::None>
1679 typedef internal::Types47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1680 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1681 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1682 T41, T42, T43, T44, T45, T46, T47> type;
1684 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1685 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1686 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1687 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1688 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1689 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1690 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1691 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1692 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1693 typename T46,
typename T47,
typename T48>
1694 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1695 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1696 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
1697 T46, T47, T48, internal::
None, internal::None>
1699 typedef internal::Types48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1700 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1701 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1702 T41, T42, T43, T44, T45, T46, T47, T48> type;
1704 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1705 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1706 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1707 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1708 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1709 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1710 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1711 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1712 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1713 typename T46,
typename T47,
typename T48,
typename T49>
1714 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1715 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1716 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
1717 T46, T47, T48, T49, internal::
None>
1719 typedef internal::Types49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1720 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1721 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1722 T41, T42, T43, T44, T45, T46, T47, T48, T49> type;
1728 # define GTEST_TEMPLATE_ template <typename T> class 1738 template <GTEST_TEMPLATE_ Tmpl>
1741 template <
typename T>
1744 typedef Tmpl<T> type;
1748 # define GTEST_BIND_(TmplSel, T) \ 1749 TmplSel::template Bind<T>::type 1755 template <
typename T>
1766 struct Templates0 {};
1770 template <GTEST_TEMPLATE_ T1>
1773 typedef TemplateSel<T1> Head;
1774 typedef Templates0 Tail;
1776 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2>
1779 typedef TemplateSel<T1> Head;
1780 typedef Templates1<T2> Tail;
1783 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3>
1786 typedef TemplateSel<T1> Head;
1787 typedef Templates2<T2, T3> Tail;
1790 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1794 typedef TemplateSel<T1> Head;
1795 typedef Templates3<T2, T3, T4> Tail;
1798 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1799 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5>
1802 typedef TemplateSel<T1> Head;
1803 typedef Templates4<T2, T3, T4, T5> Tail;
1806 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1807 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6>
1810 typedef TemplateSel<T1> Head;
1811 typedef Templates5<T2, T3, T4, T5, T6> Tail;
1814 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1815 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1819 typedef TemplateSel<T1> Head;
1820 typedef Templates6<T2, T3, T4, T5, T6, T7> 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>
1828 typedef TemplateSel<T1> Head;
1829 typedef Templates7<T2, T3, T4, T5, T6, T7, T8> Tail;
1832 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1833 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1834 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9>
1837 typedef TemplateSel<T1> Head;
1838 typedef Templates8<T2, T3, T4, T5, T6, T7, T8, T9> Tail;
1841 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1842 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1843 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1844 GTEST_TEMPLATE_ T10>
1847 typedef TemplateSel<T1> Head;
1848 typedef Templates9<T2, T3, T4, T5, T6, T7, T8, T9, T10> Tail;
1851 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1852 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1853 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1854 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11>
1857 typedef TemplateSel<T1> Head;
1858 typedef Templates10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> 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>
1867 typedef TemplateSel<T1> Head;
1868 typedef Templates11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tail;
1871 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1872 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1873 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1874 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1875 GTEST_TEMPLATE_ T13>
1878 typedef TemplateSel<T1> Head;
1879 typedef Templates12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail;
1882 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1883 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1884 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1885 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1886 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14>
1889 typedef TemplateSel<T1> Head;
1890 typedef Templates13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1894 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1895 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1896 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1897 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1898 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15>
1901 typedef TemplateSel<T1> Head;
1902 typedef Templates14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1906 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1907 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1908 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1909 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1910 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1911 GTEST_TEMPLATE_ T16>
1914 typedef TemplateSel<T1> Head;
1915 typedef Templates15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1919 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1920 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1921 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1922 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1923 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1924 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17>
1927 typedef TemplateSel<T1> Head;
1928 typedef Templates16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1929 T15, T16, T17> Tail;
1932 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1933 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1934 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1935 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1936 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1937 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18>
1940 typedef TemplateSel<T1> Head;
1941 typedef Templates17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1942 T15, T16, T17, T18> Tail;
1945 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1946 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1947 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1948 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1949 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1950 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1951 GTEST_TEMPLATE_ T19>
1954 typedef TemplateSel<T1> Head;
1955 typedef Templates18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1956 T15, T16, T17, T18, T19> Tail;
1959 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1960 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1961 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1962 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1963 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1964 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1965 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20>
1968 typedef TemplateSel<T1> Head;
1969 typedef Templates19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1970 T15, T16, T17, T18, T19, T20> Tail;
1973 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1974 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1975 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1976 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1977 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1978 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1979 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21>
1982 typedef TemplateSel<T1> Head;
1983 typedef Templates20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1984 T15, T16, T17, T18, T19, T20, T21> Tail;
1987 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1988 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1989 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1990 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1991 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1992 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1993 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
1994 GTEST_TEMPLATE_ T22>
1997 typedef TemplateSel<T1> Head;
1998 typedef Templates21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1999 T15, T16, T17, T18, T19, T20, T21, T22> Tail;
2002 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2003 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2004 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2005 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2006 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2007 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2008 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2009 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23>
2012 typedef TemplateSel<T1> Head;
2013 typedef Templates22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2014 T15, T16, T17, T18, T19, T20, T21, T22, T23> Tail;
2017 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2018 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2019 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2020 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2021 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2022 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2023 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2024 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24>
2027 typedef TemplateSel<T1> Head;
2028 typedef Templates23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2029 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> Tail;
2032 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2033 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2034 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2035 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2036 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2037 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2038 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2039 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2040 GTEST_TEMPLATE_ T25>
2043 typedef TemplateSel<T1> Head;
2044 typedef Templates24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2045 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> 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>
2059 typedef TemplateSel<T1> Head;
2060 typedef Templates25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2061 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> Tail;
2064 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2065 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2066 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2067 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2068 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2069 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2070 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2071 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2072 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27>
2075 typedef TemplateSel<T1> Head;
2076 typedef Templates26<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2077 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> Tail;
2080 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2081 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2082 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2083 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2084 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2085 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2086 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2087 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2088 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2089 GTEST_TEMPLATE_ T28>
2092 typedef TemplateSel<T1> Head;
2093 typedef Templates27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2094 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2098 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2099 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2100 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2101 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2102 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2103 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2104 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2105 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2106 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2107 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29>
2110 typedef TemplateSel<T1> Head;
2111 typedef Templates28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2112 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2116 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2117 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2118 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2119 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2120 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2121 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2122 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2123 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2124 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2125 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30>
2128 typedef TemplateSel<T1> Head;
2129 typedef Templates29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2130 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2134 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2135 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2136 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2137 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2138 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2139 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2140 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2141 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2142 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2143 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2144 GTEST_TEMPLATE_ T31>
2147 typedef TemplateSel<T1> Head;
2148 typedef Templates30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2149 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2150 T29, T30, T31> Tail;
2153 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2154 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2155 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2156 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2157 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2158 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2159 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2160 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2161 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2162 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2163 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32>
2166 typedef TemplateSel<T1> Head;
2167 typedef Templates31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2168 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2169 T29, T30, T31, T32> Tail;
2172 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2173 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2174 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2175 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2176 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2177 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2178 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2179 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2180 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2181 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2182 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33>
2185 typedef TemplateSel<T1> Head;
2186 typedef Templates32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2187 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2188 T29, T30, T31, T32, T33> Tail;
2191 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2192 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2193 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2194 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2195 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2196 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2197 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2198 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2199 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2200 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2201 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2202 GTEST_TEMPLATE_ T34>
2205 typedef TemplateSel<T1> Head;
2206 typedef Templates33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2207 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2208 T29, T30, T31, T32, T33, T34> Tail;
2211 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2212 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2213 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2214 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2215 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2216 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2217 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2218 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2219 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2220 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2221 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2222 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35>
2225 typedef TemplateSel<T1> Head;
2226 typedef Templates34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2227 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2228 T29, T30, T31, T32, T33, T34, T35> Tail;
2231 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2232 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2233 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2234 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2235 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2236 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2237 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2238 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2239 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2240 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2241 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2242 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36>
2245 typedef TemplateSel<T1> Head;
2246 typedef Templates35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2247 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2248 T29, T30, T31, T32, T33, T34, T35, T36> Tail;
2251 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2252 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2253 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2254 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2255 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2256 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2257 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2258 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2259 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2260 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2261 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2262 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2263 GTEST_TEMPLATE_ T37>
2266 typedef TemplateSel<T1> Head;
2267 typedef Templates36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2268 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2269 T29, T30, T31, T32, T33, T34, T35, T36, T37> Tail;
2272 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2273 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2274 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2275 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2276 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2277 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2278 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2279 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2280 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2281 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2282 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2283 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2284 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38>
2287 typedef TemplateSel<T1> Head;
2288 typedef Templates37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2289 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2290 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> Tail;
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>
2308 typedef TemplateSel<T1> Head;
2309 typedef Templates38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2310 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2311 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Tail;
2314 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2315 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2316 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2317 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2318 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2319 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2320 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2321 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2322 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2323 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2324 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2325 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2326 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2327 GTEST_TEMPLATE_ T40>
2330 typedef TemplateSel<T1> Head;
2331 typedef Templates39<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2332 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2333 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Tail;
2336 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2337 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2338 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2339 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2340 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2341 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2342 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2343 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2344 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2345 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2346 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2347 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2348 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2349 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41>
2352 typedef TemplateSel<T1> Head;
2353 typedef Templates40<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2354 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2355 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41> Tail;
2358 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2359 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2360 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2361 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2362 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2363 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2364 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2365 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2366 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2367 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2368 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2369 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2370 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2371 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42>
2374 typedef TemplateSel<T1> Head;
2375 typedef Templates41<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2376 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2377 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
2381 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2382 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2383 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2384 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2385 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2386 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2387 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2388 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2389 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2390 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2391 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2392 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2393 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2394 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2395 GTEST_TEMPLATE_ T43>
2398 typedef TemplateSel<T1> Head;
2399 typedef Templates42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2400 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2401 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2405 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2406 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2407 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2408 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2409 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2410 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2411 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2412 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2413 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2414 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2415 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2416 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2417 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2418 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2419 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44>
2422 typedef TemplateSel<T1> Head;
2423 typedef Templates43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2424 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2425 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2429 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2430 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2431 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2432 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2433 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2434 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2435 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2436 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2437 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2438 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2439 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2440 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2441 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2442 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2443 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45>
2446 typedef TemplateSel<T1> Head;
2447 typedef Templates44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2448 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2449 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2450 T43, T44, T45> Tail;
2453 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2454 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2455 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2456 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2457 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2458 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2459 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2460 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2461 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2462 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2463 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2464 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2465 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2466 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2467 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
2468 GTEST_TEMPLATE_ T46>
2471 typedef TemplateSel<T1> Head;
2472 typedef Templates45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2473 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2474 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2475 T43, T44, T45, T46> Tail;
2478 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2479 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2480 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2481 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2482 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2483 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2484 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2485 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2486 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2487 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2488 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2489 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2490 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2491 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2492 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
2493 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47>
2496 typedef TemplateSel<T1> Head;
2497 typedef Templates46<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2498 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2499 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2500 T43, T44, T45, T46, T47> Tail;
2503 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2504 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2505 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2506 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2507 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2508 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2509 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2510 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2511 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2512 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2513 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2514 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2515 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2516 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2517 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
2518 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48>
2521 typedef TemplateSel<T1> Head;
2522 typedef Templates47<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2523 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2524 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2525 T43, T44, T45, T46, T47, T48> Tail;
2528 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2529 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2530 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2531 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2532 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2533 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2534 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2535 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2536 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2537 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2538 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2539 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2540 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2541 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2542 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
2543 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
2544 GTEST_TEMPLATE_ T49>
2547 typedef TemplateSel<T1> Head;
2548 typedef Templates48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2549 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2550 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2551 T43, T44, T45, T46, T47, T48, T49> Tail;
2554 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2555 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2556 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2557 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2558 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2559 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2560 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2561 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2562 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2563 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2564 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2565 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2566 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2567 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2568 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
2569 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
2570 GTEST_TEMPLATE_ T49, GTEST_TEMPLATE_ T50>
2573 typedef TemplateSel<T1> Head;
2574 typedef Templates49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2575 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2576 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2577 T43, T44, T45, T46, T47, T48, T49, T50> Tail;
2594 template <GTEST_TEMPLATE_ T1 = NoneT, GTEST_TEMPLATE_ T2 = NoneT,
2595 GTEST_TEMPLATE_ T3 = NoneT, GTEST_TEMPLATE_ T4 = NoneT,
2596 GTEST_TEMPLATE_ T5 = NoneT, GTEST_TEMPLATE_ T6 = NoneT,
2597 GTEST_TEMPLATE_ T7 = NoneT, GTEST_TEMPLATE_ T8 = NoneT,
2598 GTEST_TEMPLATE_ T9 = NoneT, GTEST_TEMPLATE_ T10 = NoneT,
2599 GTEST_TEMPLATE_ T11 = NoneT, GTEST_TEMPLATE_ T12 = NoneT,
2600 GTEST_TEMPLATE_ T13 = NoneT, GTEST_TEMPLATE_ T14 = NoneT,
2601 GTEST_TEMPLATE_ T15 = NoneT, GTEST_TEMPLATE_ T16 = NoneT,
2602 GTEST_TEMPLATE_ T17 = NoneT, GTEST_TEMPLATE_ T18 = NoneT,
2603 GTEST_TEMPLATE_ T19 = NoneT, GTEST_TEMPLATE_ T20 = NoneT,
2604 GTEST_TEMPLATE_ T21 = NoneT, GTEST_TEMPLATE_ T22 = NoneT,
2605 GTEST_TEMPLATE_ T23 = NoneT, GTEST_TEMPLATE_ T24 = NoneT,
2606 GTEST_TEMPLATE_ T25 = NoneT, GTEST_TEMPLATE_ T26 = NoneT,
2607 GTEST_TEMPLATE_ T27 = NoneT, GTEST_TEMPLATE_ T28 = NoneT,
2608 GTEST_TEMPLATE_ T29 = NoneT, GTEST_TEMPLATE_ T30 = NoneT,
2609 GTEST_TEMPLATE_ T31 = NoneT, GTEST_TEMPLATE_ T32 = NoneT,
2610 GTEST_TEMPLATE_ T33 = NoneT, GTEST_TEMPLATE_ T34 = NoneT,
2611 GTEST_TEMPLATE_ T35 = NoneT, GTEST_TEMPLATE_ T36 = NoneT,
2612 GTEST_TEMPLATE_ T37 = NoneT, GTEST_TEMPLATE_ T38 = NoneT,
2613 GTEST_TEMPLATE_ T39 = NoneT, GTEST_TEMPLATE_ T40 = NoneT,
2614 GTEST_TEMPLATE_ T41 = NoneT, GTEST_TEMPLATE_ T42 = NoneT,
2615 GTEST_TEMPLATE_ T43 = NoneT, GTEST_TEMPLATE_ T44 = NoneT,
2616 GTEST_TEMPLATE_ T45 = NoneT, GTEST_TEMPLATE_ T46 = NoneT,
2617 GTEST_TEMPLATE_ T47 = NoneT, GTEST_TEMPLATE_ T48 = NoneT,
2618 GTEST_TEMPLATE_ T49 = NoneT, GTEST_TEMPLATE_ T50 = NoneT>
2621 typedef Templates50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2622 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2623 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
2624 T42, T43, T44, T45, T46, T47, T48, T49, T50> type;
2628 struct Templates<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, NoneT, NoneT, NoneT, NoneT,
2632 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2635 typedef Templates0 type;
2637 template <GTEST_TEMPLATE_ T1>
2638 struct Templates<T1, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2639 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2640 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2641 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2642 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2645 typedef Templates1<T1> type;
2647 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2>
2648 struct Templates<T1, T2, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2649 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2650 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2651 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2652 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2655 typedef Templates2<T1, T2> type;
2657 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3>
2658 struct Templates<T1, T2, T3, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2659 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2660 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2661 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2662 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
2664 typedef Templates3<T1, T2, T3> type;
2666 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2668 struct Templates<T1, T2, T3, T4, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2669 NoneT, NoneT, 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, NoneT, NoneT, NoneT, NoneT, NoneT>
2674 typedef Templates4<T1, T2, T3, T4> type;
2676 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2677 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5>
2678 struct Templates<T1, T2, T3, T4, T5, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2679 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2680 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2681 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2682 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
2684 typedef Templates5<T1, T2, T3, T4, T5> type;
2686 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2687 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6>
2688 struct Templates<T1, T2, T3, T4, T5, T6, NoneT, NoneT, NoneT, NoneT, NoneT,
2689 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2690 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2691 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2692 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
2694 typedef Templates6<T1, T2, T3, T4, T5, T6> type;
2696 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2697 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2699 struct Templates<T1, T2, T3, T4, T5, T6, T7, NoneT, NoneT, NoneT, NoneT, NoneT,
2700 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2701 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2702 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2703 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
2705 typedef Templates7<T1, T2, T3, T4, T5, T6, T7> type;
2707 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2708 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2709 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8>
2710 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, NoneT, NoneT, NoneT, NoneT,
2711 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2712 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2713 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2714 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
2716 typedef Templates8<T1, T2, T3, T4, T5, T6, T7, T8> type;
2718 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2719 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2720 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9>
2721 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, NoneT, NoneT, NoneT,
2722 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2723 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2724 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2725 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
2727 typedef Templates9<T1, T2, T3, T4, T5, T6, T7, T8, T9> type;
2729 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2730 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2731 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2732 GTEST_TEMPLATE_ T10>
2733 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, NoneT, NoneT, NoneT,
2734 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2735 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2736 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2737 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
2739 typedef Templates10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> type;
2741 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2742 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2743 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2744 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11>
2745 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, NoneT, NoneT,
2746 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2747 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2748 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2749 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
2751 typedef Templates11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> type;
2753 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2754 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2755 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2756 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12>
2757 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, NoneT,
2758 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2759 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2760 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2761 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
2763 typedef Templates12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> type;
2765 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2766 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2767 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2768 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2769 GTEST_TEMPLATE_ T13>
2770 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, NoneT,
2771 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2772 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2773 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2774 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
2776 typedef Templates13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
2779 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2780 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2781 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2782 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2783 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14>
2784 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2785 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2786 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2787 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2788 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
2790 typedef Templates14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2793 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2794 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2795 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2796 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2797 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15>
2798 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2799 T15, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2800 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2801 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2802 NoneT, NoneT, NoneT, NoneT, NoneT>
2804 typedef Templates15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2807 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2808 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2809 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2810 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2811 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2812 GTEST_TEMPLATE_ T16>
2813 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2814 T15, T16, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2815 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2816 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2817 NoneT, NoneT, NoneT, NoneT, NoneT>
2819 typedef Templates16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2820 T14, T15, T16> type;
2822 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2823 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2824 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2825 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2826 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2827 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17>
2828 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2829 T15, T16, T17, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2830 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2831 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2832 NoneT, NoneT, NoneT, NoneT, NoneT>
2834 typedef Templates17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2835 T14, T15, T16, T17> type;
2837 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2838 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2839 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2840 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2841 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2842 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18>
2843 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2844 T15, T16, T17, T18, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2845 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2846 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2847 NoneT, NoneT, NoneT, NoneT>
2849 typedef Templates18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2850 T14, T15, T16, T17, T18> type;
2852 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2853 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2854 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2855 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2856 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2857 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2858 GTEST_TEMPLATE_ T19>
2859 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2860 T15, T16, T17, T18, T19, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2861 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2862 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2863 NoneT, NoneT, NoneT, NoneT>
2865 typedef Templates19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2866 T14, T15, T16, T17, T18, T19> type;
2868 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2869 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2870 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2871 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2872 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2873 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2874 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20>
2875 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2876 T15, T16, T17, T18, T19, T20, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2877 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2878 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2879 NoneT, NoneT, NoneT, NoneT>
2881 typedef Templates20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2882 T14, T15, T16, T17, T18, T19, T20> type;
2884 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2885 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2886 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2887 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2888 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2889 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2890 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21>
2891 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2892 T15, T16, T17, T18, T19, T20, T21, NoneT, NoneT, NoneT, NoneT, NoneT,
2893 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2894 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2895 NoneT, NoneT, NoneT, NoneT>
2897 typedef Templates21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2898 T14, T15, T16, T17, T18, T19, T20, T21> type;
2900 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2901 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2902 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2903 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2904 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2905 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2906 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2907 GTEST_TEMPLATE_ T22>
2908 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2909 T15, T16, T17, T18, T19, T20, T21, T22, NoneT, NoneT, NoneT, NoneT, NoneT,
2910 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2911 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2912 NoneT, NoneT, NoneT>
2914 typedef Templates22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2915 T14, T15, T16, T17, T18, T19, T20, T21, T22> type;
2917 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2918 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2919 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2920 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2921 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2922 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2923 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2924 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23>
2925 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2926 T15, T16, T17, T18, T19, T20, T21, T22, T23, NoneT, NoneT, NoneT, NoneT,
2927 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2928 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2929 NoneT, NoneT, NoneT>
2931 typedef Templates23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2932 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> type;
2934 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2935 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2936 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2937 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2938 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2939 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2940 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2941 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24>
2942 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2943 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, NoneT, NoneT, NoneT,
2944 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2945 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2946 NoneT, NoneT, NoneT>
2948 typedef Templates24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2949 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> type;
2951 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2952 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2953 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2954 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2955 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2956 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2957 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2958 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2959 GTEST_TEMPLATE_ T25>
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, NoneT, NoneT, NoneT,
2962 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2963 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2966 typedef Templates25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2967 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> type;
2969 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2970 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2971 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2972 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2973 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2974 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2975 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2976 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2977 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26>
2978 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2979 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, NoneT, NoneT,
2980 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2981 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2984 typedef Templates26<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> type;
2987 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2988 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2989 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2990 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2991 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2992 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2993 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2994 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2995 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27>
2996 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2997 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, NoneT,
2998 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2999 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
3002 typedef Templates27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3003 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
3006 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3007 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3008 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3009 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3010 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3011 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3012 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3013 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3014 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3015 GTEST_TEMPLATE_ T28>
3016 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3017 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
3018 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
3019 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
3022 typedef Templates28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3023 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3026 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3027 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3028 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3029 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3030 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3031 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3032 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3033 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3034 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3035 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29>
3036 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3037 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3038 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
3039 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
3042 typedef Templates29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3043 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3046 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3047 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3048 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3049 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3050 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3051 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3052 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3053 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3054 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3055 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30>
3056 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3057 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3058 T30, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
3059 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
3061 typedef Templates30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3062 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3063 T28, T29, T30> type;
3065 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3066 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3067 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3068 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3069 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3070 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3071 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3072 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3073 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3074 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3075 GTEST_TEMPLATE_ T31>
3076 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3077 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3078 T30, T31, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
3079 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
3081 typedef Templates31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3082 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3083 T28, T29, T30, T31> type;
3085 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3086 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3087 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3088 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3089 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3090 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3091 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3092 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3093 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3094 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3095 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32>
3096 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3097 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3098 T30, T31, T32, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
3099 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
3101 typedef Templates32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3102 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3103 T28, T29, T30, T31, T32> type;
3105 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3106 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3107 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3108 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3109 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3110 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3111 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3112 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3113 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3114 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3115 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33>
3116 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3117 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3118 T30, T31, T32, T33, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
3119 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
3121 typedef Templates33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3122 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3123 T28, T29, T30, T31, T32, T33> type;
3125 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3126 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3127 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3128 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3129 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3130 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3131 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3132 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3133 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3134 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3135 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3136 GTEST_TEMPLATE_ T34>
3137 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3138 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3139 T30, T31, T32, T33, T34, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
3140 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
3142 typedef Templates34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3143 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3144 T28, T29, T30, T31, T32, T33, T34> type;
3146 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3147 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3148 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3149 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3150 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3151 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3152 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3153 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3154 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3155 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3156 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3157 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35>
3158 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3159 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3160 T30, T31, T32, T33, T34, T35, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
3161 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
3163 typedef Templates35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3164 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3165 T28, T29, T30, T31, T32, T33, T34, T35> type;
3167 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3168 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3169 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3170 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3171 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3172 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3173 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3174 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3175 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3176 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3177 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3178 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36>
3179 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3180 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3181 T30, T31, T32, T33, T34, T35, T36, NoneT, NoneT, NoneT, NoneT, NoneT,
3182 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
3184 typedef Templates36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3185 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3186 T28, T29, T30, T31, T32, T33, T34, T35, T36> type;
3188 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3189 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3190 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3191 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3192 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3193 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3194 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3195 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3196 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3197 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3198 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3199 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3200 GTEST_TEMPLATE_ T37>
3201 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3202 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3203 T30, T31, T32, T33, T34, T35, T36, T37, NoneT, NoneT, NoneT, NoneT, NoneT,
3204 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
3206 typedef Templates37<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> type;
3210 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3211 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3212 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3213 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3214 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3215 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3216 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3217 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3218 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3219 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3220 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3221 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3222 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38>
3223 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3224 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3225 T30, T31, T32, T33, T34, T35, T36, T37, T38, NoneT, NoneT, NoneT, NoneT,
3226 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
3228 typedef Templates38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3229 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3230 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> type;
3232 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3233 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3234 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3235 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3236 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3237 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3238 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3239 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3240 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3241 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3242 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3243 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3244 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39>
3245 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3246 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3247 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, NoneT, NoneT, NoneT,
3248 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
3250 typedef Templates39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3251 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3252 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> type;
3254 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3255 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3256 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3257 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3258 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3259 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3260 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3261 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3262 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3263 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3264 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3265 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3266 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3267 GTEST_TEMPLATE_ T40>
3268 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3269 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3270 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, NoneT, NoneT, NoneT,
3271 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
3273 typedef Templates40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3274 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3275 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> type;
3277 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3278 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3279 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3280 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3281 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3282 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3283 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3284 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3285 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3286 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3287 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3288 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3289 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3290 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41>
3291 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3292 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3293 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, NoneT, NoneT,
3294 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
3296 typedef Templates41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3297 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3298 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
3301 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3302 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3303 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3304 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3305 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3306 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3307 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3308 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3309 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3310 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3311 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3312 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3313 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3314 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42>
3315 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3316 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3317 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, NoneT,
3318 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
3320 typedef Templates42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3321 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3322 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3325 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3326 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3327 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3328 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3329 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3330 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3331 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3332 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3333 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3334 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3335 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3336 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3337 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3338 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3339 GTEST_TEMPLATE_ T43>
3340 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3341 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3342 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
3343 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
3345 typedef Templates43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3346 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3347 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3350 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3351 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3352 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3353 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3354 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3355 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3356 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3357 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3358 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3359 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3360 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3361 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3362 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3363 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3364 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44>
3365 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3366 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3367 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3368 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
3370 typedef Templates44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3371 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3372 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3373 T42, T43, T44> type;
3375 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3376 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3377 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3378 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3379 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3380 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3381 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3382 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3383 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3384 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3385 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3386 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3387 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3388 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3389 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45>
3390 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3391 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3392 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3393 T45, NoneT, NoneT, NoneT, NoneT, NoneT>
3395 typedef Templates45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3396 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3397 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3398 T42, T43, T44, T45> type;
3400 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3401 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3402 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3403 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3404 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3405 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3406 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3407 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3408 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3409 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3410 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3411 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3412 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3413 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3414 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
3415 GTEST_TEMPLATE_ T46>
3416 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3417 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3418 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3419 T45, T46, NoneT, NoneT, NoneT, NoneT>
3421 typedef Templates46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3422 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3423 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3424 T42, T43, T44, T45, T46> type;
3426 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3427 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3428 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3429 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3430 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3431 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3432 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3433 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3434 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3435 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3436 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3437 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3438 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3439 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3440 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
3441 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47>
3442 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3443 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3444 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3445 T45, T46, T47, NoneT, NoneT, NoneT>
3447 typedef Templates47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3448 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3449 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3450 T42, T43, T44, T45, T46, T47> type;
3452 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3453 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3454 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3455 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3456 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3457 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3458 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3459 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3460 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3461 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3462 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3463 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3464 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3465 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3466 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
3467 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48>
3468 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3469 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3470 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3471 T45, T46, T47, T48, NoneT, NoneT>
3473 typedef Templates48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3474 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3475 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3476 T42, T43, T44, T45, T46, T47, T48> type;
3478 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3479 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3480 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3481 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3482 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3483 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3484 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3485 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3486 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3487 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3488 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3489 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3490 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3491 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3492 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
3493 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
3494 GTEST_TEMPLATE_ T49>
3495 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3496 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3497 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3498 T45, T46, T47, T48, T49, NoneT>
3500 typedef Templates49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3501 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3502 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3503 T42, T43, T44, T45, T46, T47, T48, T49> type;
3510 template <
typename T>
3513 typedef Types1<T> type;
3516 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
3517 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
3518 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
3519 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
3520 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
3521 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
3522 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
3523 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
3524 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
3525 typename T46,
typename T47,
typename T48,
typename T49,
typename T50>
3526 struct TypeList<
Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3527 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
3528 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
3529 T44, T45, T46, T47, T48, T49, T50> >
3531 typedef typename Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
3532 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
3533 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
3534 T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>::type type;
3537 #endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P 3542 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
std::string GetTypeName()