42#ifndef GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
43#define GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
76TEST_P(FooTest, HasBlahBlah) {
106 Values(
"meeny",
"miny",
"moe"));
127const char* pets[] = {
"cat",
"dog"};
176TEST_P(DerivedTest, DoesBlah) {
237template <
typename T,
typename IncrementT>
245 return Range(start, end, 1);
303template <
typename ForwardIterator>
304internal::ParamGenerator<
305 typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type>
306ValuesIn(ForwardIterator begin, ForwardIterator end) {
307 typedef typename ::testing::internal::IteratorTraits<ForwardIterator>
308 ::value_type ParamType;
313template <
typename T,
size_t N>
318template <
class Container>
320 const Container& container) {
321 return ValuesIn(container.begin(), container.end());
343template <
typename T1>
348template <
typename T1,
typename T2>
353template <
typename T1,
typename T2,
typename T3>
358template <
typename T1,
typename T2,
typename T3,
typename T4>
363template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
369template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
372 T4 v4, T5 v5, T6 v6) {
373 return internal::ValueArray6<T1, T2, T3, T4, T5, T6>(v1, v2, v3, v4, v5, v6);
376template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
377 typename T6,
typename T7>
379 T4 v4, T5 v5, T6 v6, T7 v7) {
380 return internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7>(v1, v2, v3, v4, v5,
384template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
385 typename T6,
typename T7,
typename T8>
387 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8) {
388 return internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8>(v1, v2, v3, v4,
392template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
393 typename T6,
typename T7,
typename T8,
typename T9>
394internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9> Values(T1 v1, T2 v2,
395 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9) {
396 return internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9>(v1, v2, v3,
397 v4, v5, v6, v7, v8, v9);
400template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
401 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
402internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Values(T1 v1,
403 T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10) {
404 return internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(v1,
405 v2, v3, v4, v5, v6, v7, v8, v9, v10);
408template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
409 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
411internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
412 T11>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
414 return internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
415 T11>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11);
418template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
419 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
420 typename T11,
typename T12>
421internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
422 T12>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
423 T10 v10, T11 v11, T12 v12) {
424 return internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
425 T12>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12);
428template <
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>
431internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
432 T13>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
433 T10 v10, T11 v11, T12 v12, T13 v13) {
434 return internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
435 T12, T13>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13);
438template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
439 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
440 typename T11,
typename T12,
typename T13,
typename T14>
441internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
442 T14>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
443 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14) {
444 return internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
445 T12, T13, T14>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
449template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
450 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
451 typename T11,
typename T12,
typename T13,
typename T14,
typename T15>
452internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
453 T14, T15>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
454 T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15) {
455 return internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
456 T12, T13, T14, T15>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
460template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
461 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
462 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
464internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
465 T14, T15, T16>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
466 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
468 return internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
469 T12, T13, T14, T15, T16>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
470 v12, v13, v14, v15, v16);
473template <
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>
477internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
478 T14, T15, T16, T17>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
479 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
481 return internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
482 T12, T13, T14, T15, T16, T17>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
483 v11, v12, v13, v14, v15, v16, v17);
486template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
487 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
488 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
489 typename T16,
typename T17,
typename T18>
490internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
491 T14, T15, T16, T17, T18>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
492 T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
493 T16 v16, T17 v17, T18 v18) {
494 return internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
495 T12, T13, T14, T15, T16, T17, T18>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
496 v10, v11, v12, v13, v14, v15, v16, v17, v18);
499template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
500 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
501 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
502 typename T16,
typename T17,
typename T18,
typename T19>
503internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
504 T14, T15, T16, T17, T18, T19>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
505 T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
506 T15 v15, T16 v16, T17 v17, T18 v18, T19 v19) {
507 return internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
508 T12, T13, T14, T15, T16, T17, T18, T19>(v1, v2, v3, v4, v5, v6, v7, v8,
509 v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19);
512template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
513 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
514 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
515 typename T16,
typename T17,
typename T18,
typename T19,
typename T20>
516internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
517 T14, T15, T16, T17, T18, T19, T20>
Values(T1 v1, T2 v2, T3 v3, T4 v4,
518 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
519 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20) {
520 return internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
521 T12, T13, T14, T15, T16, T17, T18, T19, T20>(v1, v2, v3, v4, v5, v6, v7,
522 v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20);
525template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
526 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
527 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
528 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
530internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
531 T14, T15, T16, T17, T18, T19, T20, T21>
Values(T1 v1, T2 v2, T3 v3, T4 v4,
532 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
533 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21) {
534 return internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
535 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>(v1, v2, v3, v4, v5, v6,
536 v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21);
539template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
540 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
541 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
542 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
543 typename T21,
typename T22>
544internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
545 T14, T15, T16, T17, T18, T19, T20, T21, T22>
Values(T1 v1, T2 v2, T3 v3,
546 T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
547 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
549 return internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
550 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>(v1, v2, v3, v4,
551 v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
555template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
556 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
557 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
558 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
559 typename T21,
typename T22,
typename T23>
560internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
561 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>
Values(T1 v1, T2 v2,
562 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
563 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
564 T21 v21, T22 v22, T23 v23) {
565 return internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
566 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>(v1, v2, v3,
567 v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
571template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
572 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
573 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
574 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
575 typename T21,
typename T22,
typename T23,
typename T24>
576internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
577 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>
Values(T1 v1, T2 v2,
578 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
579 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
580 T21 v21, T22 v22, T23 v23, T24 v24) {
581 return internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
582 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>(v1, v2,
583 v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18,
584 v19, v20, v21, v22, v23, v24);
587template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
588 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
589 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
590 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
591 typename T21,
typename T22,
typename T23,
typename T24,
typename T25>
592internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
593 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>
Values(T1 v1,
594 T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11,
595 T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19,
596 T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25) {
597 return internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
598 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>(v1,
599 v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17,
600 v18, v19, v20, v21, v22, v23, v24, v25);
603template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
604 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
605 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
606 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
607 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
609internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
610 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
611 T26>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
612 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
613 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
615 return internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
616 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
617 T26>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,
618 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26);
621template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
622 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
623 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
624 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
625 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
626 typename T26,
typename T27>
627internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
628 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
629 T27>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
630 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
631 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
633 return internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
634 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
635 T26, T27>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14,
636 v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27);
639template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
640 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
641 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
642 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
643 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
644 typename T26,
typename T27,
typename T28>
645internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
646 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
647 T28>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
648 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
649 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
650 T26 v26, T27 v27, T28 v28) {
651 return internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
652 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
653 T26, T27, T28>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
654 v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27,
658template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
659 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
660 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
661 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
662 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
663 typename T26,
typename T27,
typename T28,
typename T29>
664internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
665 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
666 T29>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
667 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
668 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
669 T26 v26, T27 v27, T28 v28, T29 v29) {
670 return internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
671 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
672 T26, T27, T28, T29>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
673 v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
677template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
678 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
679 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
680 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
681 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
682 typename T26,
typename T27,
typename T28,
typename T29,
typename T30>
683internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
684 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
685 T29, T30>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
686 T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
687 T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
688 T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30) {
689 return internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
690 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
691 T26, T27, T28, T29, T30>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
692 v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25,
693 v26, v27, v28, v29, v30);
696template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
697 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
698 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
699 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
700 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
701 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
703internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
704 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
705 T29, T30, T31>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
706 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
707 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
708 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31) {
709 return internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
710 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
711 T26, T27, T28, T29, T30, T31>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
712 v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24,
713 v25, v26, v27, v28, v29, v30, v31);
716template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
717 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
718 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
719 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
720 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
721 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
722 typename T31,
typename T32>
723internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
724 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
725 T29, T30, T31, T32>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
726 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
727 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
728 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
730 return internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
731 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
732 T26, T27, T28, T29, T30, T31, T32>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
733 v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
734 v24, v25, v26, v27, v28, v29, v30, v31, v32);
737template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
738 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
739 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
740 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
741 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
742 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
743 typename T31,
typename T32,
typename T33>
744internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
745 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
746 T29, T30, T31, T32, T33>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
747 T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
748 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
749 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
751 return internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
752 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
753 T26, T27, T28, T29, T30, T31, T32, T33>(v1, v2, v3, v4, v5, v6, v7, v8,
754 v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
755 v24, v25, v26, v27, v28, v29, v30, v31, v32, v33);
758template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
759 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
760 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
761 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
762 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
763 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
764 typename T31,
typename T32,
typename T33,
typename T34>
765internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
766 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
767 T29, T30, T31, T32, T33, T34>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
768 T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
769 T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22,
770 T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30,
771 T31 v31, T32 v32, T33 v33, T34 v34) {
772 return internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
773 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
774 T26, T27, T28, T29, T30, T31, T32, T33, T34>(v1, v2, v3, v4, v5, v6, v7,
775 v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22,
776 v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34);
779template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
780 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
781 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
782 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
783 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
784 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
785 typename T31,
typename T32,
typename T33,
typename T34,
typename T35>
786internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
787 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
788 T29, T30, T31, T32, T33, T34, T35>
Values(T1 v1, T2 v2, T3 v3, T4 v4,
789 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
790 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
791 T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
792 T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35) {
793 return internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
794 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
795 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35>(v1, v2, v3, v4, v5, v6,
796 v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21,
797 v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35);
800template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
801 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
802 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
803 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
804 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
805 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
806 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
808internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
809 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
810 T29, T30, T31, T32, T33, T34, T35, T36>
Values(T1 v1, T2 v2, T3 v3, T4 v4,
811 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
812 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
813 T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
814 T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36) {
815 return internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
816 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
817 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36>(v1, v2, v3, v4,
818 v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
819 v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
823template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
824 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
825 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
826 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
827 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
828 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
829 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
830 typename T36,
typename T37>
831internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
832 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
833 T29, T30, T31, T32, T33, T34, T35, T36, T37>
Values(T1 v1, T2 v2, T3 v3,
834 T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
835 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
836 T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
837 T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
839 return internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
840 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
841 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37>(v1, v2, v3,
842 v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
843 v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
847template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
848 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
849 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
850 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
851 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
852 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
853 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
854 typename T36,
typename T37,
typename T38>
855internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
856 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
857 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>
Values(T1 v1, T2 v2,
858 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
859 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
860 T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
861 T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
863 return internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
864 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
865 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>(v1, v2,
866 v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18,
867 v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32,
868 v33, v34, v35, v36, v37, v38);
871template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
872 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
873 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
874 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
875 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
876 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
877 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
878 typename T36,
typename T37,
typename T38,
typename T39>
879internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
880 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
881 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>
Values(T1 v1, T2 v2,
882 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
883 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
884 T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
885 T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
886 T37 v37, T38 v38, T39 v39) {
887 return internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
888 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
889 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>(v1,
890 v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17,
891 v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31,
892 v32, v33, v34, v35, v36, v37, v38, v39);
895template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
896 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
897 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
898 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
899 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
900 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
901 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
902 typename T36,
typename T37,
typename T38,
typename T39,
typename T40>
903internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
904 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
905 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40>
Values(T1 v1,
906 T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11,
907 T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19,
908 T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27,
909 T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35,
910 T36 v36, T37 v37, T38 v38, T39 v39, T40 v40) {
911 return internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
912 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
913 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
914 T40>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,
915 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29,
916 v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40);
919template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
920 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
921 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
922 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
923 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
924 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
925 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
926 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
928internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
929 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
930 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
931 T41>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
932 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
933 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
934 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
935 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41) {
936 return internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
937 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
938 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
939 T40, T41>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14,
940 v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28,
941 v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41);
944template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
945 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
946 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
947 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
948 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
949 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
950 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
951 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
952 typename T41,
typename T42>
953internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
954 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
955 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
956 T42>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
957 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
958 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
959 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
960 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
962 return internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
963 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
964 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
965 T40, T41, T42>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
966 v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27,
967 v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41,
971template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
972 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
973 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
974 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
975 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
976 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
977 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
978 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
979 typename T41,
typename T42,
typename T43>
980internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
981 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
982 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
983 T43>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
984 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
985 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
986 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
987 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
989 return internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
990 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
991 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
992 T40, T41, T42, T43>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
993 v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
994 v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40,
998template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
999 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1000 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1001 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1002 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1003 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1004 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1005 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1006 typename T41,
typename T42,
typename T43,
typename T44>
1007internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1008 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1009 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1010 T44>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
1011 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
1012 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
1013 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
1014 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
1015 T42 v42, T43 v43, T44 v44) {
1016 return internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1017 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1018 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1019 T40, T41, T42, T43, T44>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
1020 v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25,
1021 v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39,
1022 v40, v41, v42, v43, v44);
1025template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1026 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1027 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1028 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1029 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1030 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1031 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1032 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1033 typename T41,
typename T42,
typename T43,
typename T44,
typename T45>
1034internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1035 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1036 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1037 T44, T45>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
1038 T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
1039 T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
1040 T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32,
1041 T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40,
1042 T41 v41, T42 v42, T43 v43, T44 v44, T45 v45) {
1043 return internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1044 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1045 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1046 T40, T41, T42, T43, T44, T45>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
1047 v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24,
1048 v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38,
1049 v39, v40, v41, v42, v43, v44, v45);
1052template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1053 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1054 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1055 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1056 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1057 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1058 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1059 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1060 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1062internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1063 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1064 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1065 T44, T45, T46>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
1066 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
1067 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
1068 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
1069 T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
1070 T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46) {
1071 return internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1072 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1073 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1074 T40, T41, T42, T43, T44, T45, T46>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
1075 v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
1076 v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37,
1077 v38, v39, v40, v41, v42, v43, v44, v45, v46);
1080template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1081 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1082 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1083 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1084 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1085 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1086 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1087 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1088 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1089 typename T46,
typename T47>
1090internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1091 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1092 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1093 T44, T45, T46, T47>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
1094 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
1095 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
1096 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
1097 T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
1098 T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47) {
1099 return internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1100 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1101 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1102 T40, T41, T42, T43, T44, T45, T46, T47>(v1, v2, v3, v4, v5, v6, v7, v8,
1103 v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
1104 v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37,
1105 v38, v39, v40, v41, v42, v43, v44, v45, v46, v47);
1108template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1109 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1110 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1111 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1112 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1113 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1114 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1115 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1116 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1117 typename T46,
typename T47,
typename T48>
1118internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1119 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1120 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1121 T44, T45, T46, T47, T48>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
1122 T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
1123 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
1124 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
1125 T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
1126 T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47,
1128 return internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1129 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1130 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1131 T40, T41, T42, T43, T44, T45, T46, T47, T48>(v1, v2, v3, v4, v5, v6, v7,
1132 v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22,
1133 v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36,
1134 v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48);
1137template <
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,
typename T20,
1141 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1142 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1143 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1144 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1145 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1146 typename T46,
typename T47,
typename T48,
typename T49>
1147internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1148 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1149 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1150 T44, T45, T46, T47, T48, T49>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
1151 T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
1152 T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22,
1153 T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30,
1154 T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38,
1155 T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46,
1156 T47 v47, T48 v48, T49 v49) {
1157 return internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1158 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1159 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1160 T40, T41, T42, T43, T44, T45, T46, T47, T48, T49>(v1, v2, v3, v4, v5, v6,
1161 v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21,
1162 v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35,
1163 v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49);
1166template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1167 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1168 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1169 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1170 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1171 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1172 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1173 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1174 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1175 typename T46,
typename T47,
typename T48,
typename T49,
typename T50>
1176internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1177 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1178 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1179 T44, T45, T46, T47, T48, T49, T50>
Values(T1 v1, T2 v2, T3 v3, T4 v4,
1180 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
1181 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
1182 T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
1183 T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37,
1184 T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45,
1185 T46 v46, T47 v47, T48 v48, T49 v49, T50 v50) {
1186 return internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1187 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1188 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1189 T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>(v1, v2, v3, v4,
1190 v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
1191 v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
1192 v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47,
1217 return Values(
false,
true);
1220# if GTEST_HAS_COMBINE
1269template <
typename Generator1,
typename Generator2>
1270internal::CartesianProductHolder2<Generator1, Generator2> Combine(
1271 const Generator1& g1,
const Generator2& g2) {
1272 return internal::CartesianProductHolder2<Generator1, Generator2>(
1276template <
typename Generator1,
typename Generator2,
typename Generator3>
1277internal::CartesianProductHolder3<Generator1, Generator2, Generator3> Combine(
1278 const Generator1& g1,
const Generator2& g2,
const Generator3& g3) {
1279 return internal::CartesianProductHolder3<Generator1, Generator2, Generator3>(
1283template <
typename Generator1,
typename Generator2,
typename Generator3,
1284 typename Generator4>
1285internal::CartesianProductHolder4<Generator1, Generator2, Generator3,
1286 Generator4> Combine(
1287 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
1288 const Generator4& g4) {
1289 return internal::CartesianProductHolder4<Generator1, Generator2, Generator3,
1294template <
typename Generator1,
typename Generator2,
typename Generator3,
1295 typename Generator4,
typename Generator5>
1296internal::CartesianProductHolder5<Generator1, Generator2, Generator3,
1297 Generator4, Generator5> Combine(
1298 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
1299 const Generator4& g4,
const Generator5& g5) {
1300 return internal::CartesianProductHolder5<Generator1, Generator2, Generator3,
1301 Generator4, Generator5>(
1302 g1, g2, g3, g4, g5);
1305template <
typename Generator1,
typename Generator2,
typename Generator3,
1306 typename Generator4,
typename Generator5,
typename Generator6>
1307internal::CartesianProductHolder6<Generator1, Generator2, Generator3,
1308 Generator4, Generator5, Generator6> Combine(
1309 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
1310 const Generator4& g4,
const Generator5& g5,
const Generator6& g6) {
1311 return internal::CartesianProductHolder6<Generator1, Generator2, Generator3,
1312 Generator4, Generator5, Generator6>(
1313 g1, g2, g3, g4, g5, g6);
1316template <
typename Generator1,
typename Generator2,
typename Generator3,
1317 typename Generator4,
typename Generator5,
typename Generator6,
1318 typename Generator7>
1319internal::CartesianProductHolder7<Generator1, Generator2, Generator3,
1320 Generator4, Generator5, Generator6, Generator7> Combine(
1321 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
1322 const Generator4& g4,
const Generator5& g5,
const Generator6& g6,
1323 const Generator7& g7) {
1324 return internal::CartesianProductHolder7<Generator1, Generator2, Generator3,
1325 Generator4, Generator5, Generator6, Generator7>(
1326 g1, g2, g3, g4, g5, g6, g7);
1329template <
typename Generator1,
typename Generator2,
typename Generator3,
1330 typename Generator4,
typename Generator5,
typename Generator6,
1331 typename Generator7,
typename Generator8>
1332internal::CartesianProductHolder8<Generator1, Generator2, Generator3,
1333 Generator4, Generator5, Generator6, Generator7, Generator8> Combine(
1334 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
1335 const Generator4& g4,
const Generator5& g5,
const Generator6& g6,
1336 const Generator7& g7,
const Generator8& g8) {
1337 return internal::CartesianProductHolder8<Generator1, Generator2, Generator3,
1338 Generator4, Generator5, Generator6, Generator7, Generator8>(
1339 g1, g2, g3, g4, g5, g6, g7, g8);
1342template <
typename Generator1,
typename Generator2,
typename Generator3,
1343 typename Generator4,
typename Generator5,
typename Generator6,
1344 typename Generator7,
typename Generator8,
typename Generator9>
1345internal::CartesianProductHolder9<Generator1, Generator2, Generator3,
1346 Generator4, Generator5, Generator6, Generator7, Generator8,
1347 Generator9> Combine(
1348 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
1349 const Generator4& g4,
const Generator5& g5,
const Generator6& g6,
1350 const Generator7& g7,
const Generator8& g8,
const Generator9& g9) {
1351 return internal::CartesianProductHolder9<Generator1, Generator2, Generator3,
1352 Generator4, Generator5, Generator6, Generator7, Generator8, Generator9>(
1353 g1, g2, g3, g4, g5, g6, g7, g8, g9);
1356template <
typename Generator1,
typename Generator2,
typename Generator3,
1357 typename Generator4,
typename Generator5,
typename Generator6,
1358 typename Generator7,
typename Generator8,
typename Generator9,
1359 typename Generator10>
1360internal::CartesianProductHolder10<Generator1, Generator2, Generator3,
1361 Generator4, Generator5, Generator6, Generator7, Generator8, Generator9,
1362 Generator10> Combine(
1363 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
1364 const Generator4& g4,
const Generator5& g5,
const Generator6& g6,
1365 const Generator7& g7,
const Generator8& g8,
const Generator9& g9,
1366 const Generator10& g10) {
1367 return internal::CartesianProductHolder10<Generator1, Generator2, Generator3,
1368 Generator4, Generator5, Generator6, Generator7, Generator8, Generator9,
1370 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10);
1374# define TEST_P(test_case_name, test_name) \
1375 class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \
1376 : public test_case_name { \
1378 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {} \
1379 virtual void TestBody(); \
1381 static int AddToRegistry() { \
1382 ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \
1383 GetTestCasePatternHolder<test_case_name>(\
1385 ::testing::internal::CodeLocation(\
1386 __FILE__, __LINE__))->AddTestPattern(\
1387 GTEST_STRINGIFY_(test_case_name), \
1388 GTEST_STRINGIFY_(test_name), \
1389 new ::testing::internal::TestMetaFactory< \
1390 GTEST_TEST_CLASS_NAME_(\
1391 test_case_name, test_name)>()); \
1394 static int gtest_registering_dummy_ GTEST_ATTRIBUTE_UNUSED_; \
1395 GTEST_DISALLOW_COPY_AND_ASSIGN_(\
1396 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \
1398 int GTEST_TEST_CLASS_NAME_(test_case_name, \
1399 test_name)::gtest_registering_dummy_ = \
1400 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \
1401 void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody()
1415#define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator, ...) \
1416 static ::testing::internal::ParamGenerator<test_case_name::ParamType> \
1417 gtest_##prefix##test_case_name##_EvalGenerator_() { \
1420 static ::std::string gtest_##prefix##test_case_name##_EvalGenerateName_( \
1421 const ::testing::TestParamInfo<test_case_name::ParamType>& info) { \
1422 return ::testing::internal::GetParamNameGen<test_case_name::ParamType>( \
1423 __VA_ARGS__)(info); \
1425 static int gtest_##prefix##test_case_name##_dummy_ GTEST_ATTRIBUTE_UNUSED_ = \
1426 ::testing::UnitTest::GetInstance() \
1427 ->parameterized_test_registry() \
1428 .GetTestCasePatternHolder<test_case_name>( \
1430 ::testing::internal::CodeLocation(__FILE__, __LINE__)) \
1431 ->AddTestCaseInstantiation( \
1432 #prefix, >est_##prefix##test_case_name##_EvalGenerator_, \
1433 >est_##prefix##test_case_name##_EvalGenerateName_, __FILE__, \
#define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator,...)
#define TEST_P(test_case_name, test_name)
#define TEST_F(test_fixture, test_name)
#define EXPECT_TRUE(condition)
internal::ValueArray1< T1 > Values(T1 v1)
internal::ParamGenerator< bool > Bool()
internal::ParamGenerator< typename ::testing::internal::IteratorTraits< ForwardIterator >::value_type > ValuesIn(ForwardIterator begin, ForwardIterator end)
internal::ParamGenerator< T > Range(T start, T end, IncrementT step)
#define T(meth, val, expected)