41 #ifndef GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ 42 #define GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ 77 TEST_P(FooTest, HasBlahBlah)
108 Values(
"meeny",
"miny",
"moe"));
129 const char * pets[] = {
"cat",
"dog"};
181 TEST_P(DerivedTest, DoesBlah)
189 #include "gtest/internal/gtest-port.h" 191 #if !GTEST_OS_SYMBIAN 198 #include "gtest/internal/gtest-internal.h" 199 #include "gtest/internal/gtest-param-util.h" 200 #include "gtest/internal/gtest-param-util-generated.h" 202 #if GTEST_HAS_PARAM_TEST 249 template <
typename T,
typename IncrementT>
250 internal::ParamGenerator<T>
Range(T start, T
end, IncrementT step)
252 return internal::ParamGenerator<T>(
253 new internal::RangeGenerator<T, IncrementT>(start,
end, step));
256 template <
typename T>
257 internal::ParamGenerator<T>
Range(T start, T
end)
259 return Range(start, end, 1);
317 template <
typename ForwardIterator>
318 internal::ParamGenerator <
319 typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type >
320 ValuesIn(ForwardIterator begin, ForwardIterator
end)
322 typedef typename ::testing::internal::IteratorTraits<ForwardIterator>
323 ::value_type ParamType;
324 return internal::ParamGenerator<ParamType>(
325 new internal::ValuesInIteratorRangeGenerator<ParamType>(begin,
end));
328 template <
typename T,
size_t N>
329 internal::ParamGenerator<T>
ValuesIn(
const T(&array)[N])
334 template <
class Container>
335 internal::ParamGenerator<typename Container::value_type>
ValuesIn(
336 const Container & container)
338 return ValuesIn(container.begin(), container.end());
360 template <
typename T1>
361 internal::ValueArray1<T1>
Values(T1 v1)
363 return internal::ValueArray1<T1>(v1);
366 template <
typename T1,
typename T2>
367 internal::ValueArray2<T1, T2>
Values(T1 v1, T2 v2)
369 return internal::ValueArray2<T1, T2>(v1, v2);
372 template <
typename T1,
typename T2,
typename T3>
373 internal::ValueArray3<T1, T2, T3>
Values(T1 v1, T2 v2, T3 v3)
375 return internal::ValueArray3<T1, T2, T3>(v1, v2, v3);
378 template <
typename T1,
typename T2,
typename T3,
typename T4>
379 internal::ValueArray4<T1, T2, T3, T4>
Values(T1 v1, T2 v2, T3 v3, T4 v4)
381 return internal::ValueArray4<T1, T2, T3, T4>(v1, v2, v3, v4);
384 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
385 internal::ValueArray5<T1, T2, T3, T4, T5>
Values(T1 v1, T2 v2, T3 v3, T4 v4,
388 return internal::ValueArray5<T1, T2, T3, T4, T5>(v1, v2, v3, v4, v5);
391 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
393 internal::ValueArray6<T1, T2, T3, T4, T5, T6>
Values(T1 v1, T2 v2, T3 v3,
396 return internal::ValueArray6<T1, T2, T3, T4, T5, T6>(v1, v2, v3, v4, v5, v6);
399 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
400 typename T6,
typename T7>
401 internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7>
Values(T1 v1, T2 v2, T3 v3,
402 T4 v4, T5 v5, T6 v6, T7 v7)
404 return internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7>(v1, v2, v3, v4, v5,
408 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
409 typename T6,
typename T7,
typename T8>
410 internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8>
Values(T1 v1, T2 v2,
411 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8)
413 return internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8>(v1, v2, v3, v4,
417 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
418 typename T6,
typename T7,
typename T8,
typename T9>
419 internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9>
Values(T1 v1, T2 v2,
420 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9)
422 return internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9>(v1, v2, v3,
423 v4, v5, v6, v7, v8, v9);
426 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
427 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
428 internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
Values(T1 v1,
429 T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10)
431 return internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(v1,
432 v2, v3, v4, v5, v6, v7, v8, v9, v10);
435 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
436 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
438 internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
439 T11>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
442 return internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
443 T11>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11);
446 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
447 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
448 typename T11,
typename T12>
449 internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
450 T12>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
451 T10 v10, T11 v11, T12 v12)
453 return internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
454 T12>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12);
457 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
458 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
459 typename T11,
typename T12,
typename T13>
460 internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
461 T13>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
462 T10 v10, T11 v11, T12 v12, T13 v13)
464 return internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
465 T12, T13>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13);
468 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
469 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
470 typename T11,
typename T12,
typename T13,
typename T14>
471 internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
472 T14>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
473 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14)
475 return internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
476 T12, T13, T14>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
480 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
481 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
482 typename T11,
typename T12,
typename T13,
typename T14,
typename T15>
483 internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
484 T14, T15>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
485 T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15)
487 return internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
488 T12, T13, T14, T15>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
492 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
493 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
494 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
496 internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
497 T14, T15, T16>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
498 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
501 return internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
502 T12, T13, T14, T15, T16>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
503 v12, v13, v14, v15, v16);
506 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
507 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
508 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
509 typename T16,
typename T17>
510 internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
511 T14, T15, T16, T17>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
512 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
515 return internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
516 T12, T13, T14, T15, T16, T17>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
517 v11, v12, v13, v14, v15, v16, v17);
520 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
521 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
522 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
523 typename T16,
typename T17,
typename T18>
524 internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
525 T14, T15, T16, T17, T18>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
526 T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
527 T16 v16, T17 v17, T18 v18)
529 return internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
530 T12, T13, T14, T15, T16, T17, T18>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
531 v10, v11, v12, v13, v14, v15, v16, v17, v18);
534 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
535 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
536 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
537 typename T16,
typename T17,
typename T18,
typename T19>
538 internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
539 T14, T15, T16, T17, T18, T19>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
540 T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
541 T15 v15, T16 v16, T17 v17, T18 v18, T19 v19)
543 return internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
544 T12, T13, T14, T15, T16, T17, T18, T19>(v1, v2, v3, v4, v5, v6, v7, v8,
545 v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19);
548 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
549 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
550 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
551 typename T16,
typename T17,
typename T18,
typename T19,
typename T20>
552 internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
553 T14, T15, T16, T17, T18, T19, T20>
Values(T1 v1, T2 v2, T3 v3, T4 v4,
554 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
555 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20)
557 return internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
558 T12, T13, T14, T15, T16, T17, T18, T19, T20>(v1, v2, v3, v4, v5, v6, v7,
559 v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20);
562 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
563 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
564 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
565 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
567 internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
568 T14, T15, T16, T17, T18, T19, T20, T21>
Values(T1 v1, T2 v2, T3 v3, T4 v4,
569 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
570 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21)
572 return internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
573 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>(v1, v2, v3, v4, v5, v6,
574 v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21);
577 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
578 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
579 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
580 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
581 typename T21,
typename T22>
582 internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
583 T14, T15, T16, T17, T18, T19, T20, T21, T22>
Values(T1 v1, T2 v2, T3 v3,
584 T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
585 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
588 return internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
589 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>(v1, v2, v3, v4,
590 v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
594 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
595 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
596 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
597 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
598 typename T21,
typename T22,
typename T23>
599 internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
600 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>
Values(T1 v1, T2 v2,
601 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
602 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
603 T21 v21, T22 v22, T23 v23)
605 return internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
606 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>(v1, v2, v3,
607 v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
611 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
612 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
613 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
614 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
615 typename T21,
typename T22,
typename T23,
typename T24>
616 internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
617 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>
Values(T1 v1, T2 v2,
618 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
619 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
620 T21 v21, T22 v22, T23 v23, T24 v24)
622 return internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
623 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>(v1, v2,
624 v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18,
625 v19, v20, v21, v22, v23, v24);
628 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
629 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
630 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
631 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
632 typename T21,
typename T22,
typename T23,
typename T24,
typename T25>
633 internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
634 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>
Values(T1 v1,
635 T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11,
636 T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19,
637 T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25)
639 return internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
640 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>(v1,
641 v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17,
642 v18, v19, v20, v21, v22, v23, v24, v25);
645 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
646 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
647 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
648 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
649 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
651 internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
652 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
653 T26>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
654 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
655 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
658 return internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
659 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
660 T26>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,
661 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26);
664 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
665 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
666 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
667 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
668 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
669 typename T26,
typename T27>
670 internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
671 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
672 T27>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
673 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
674 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
677 return internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
678 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
679 T26, T27>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14,
680 v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27);
683 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
684 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
685 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
686 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
687 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
688 typename T26,
typename T27,
typename T28>
689 internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
690 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
691 T28>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
692 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
693 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
694 T26 v26, T27 v27, T28 v28)
696 return internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
697 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
698 T26, T27, T28>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
699 v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27,
703 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
704 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
705 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
706 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
707 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
708 typename T26,
typename T27,
typename T28,
typename T29>
709 internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
710 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
711 T29>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
712 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
713 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
714 T26 v26, T27 v27, T28 v28, T29 v29)
716 return internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
717 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
718 T26, T27, T28, T29>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
719 v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
723 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
724 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
725 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
726 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
727 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
728 typename T26,
typename T27,
typename T28,
typename T29,
typename T30>
729 internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
730 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
731 T29, T30>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
732 T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
733 T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
734 T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30)
736 return internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
737 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
738 T26, T27, T28, T29, T30>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
739 v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25,
740 v26, v27, v28, v29, v30);
743 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
744 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
745 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
746 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
747 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
748 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
750 internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
751 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
752 T29, T30, T31>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
753 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
754 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
755 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31)
757 return internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
758 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
759 T26, T27, T28, T29, T30, T31>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
760 v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24,
761 v25, v26, v27, v28, v29, v30, v31);
764 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
765 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
766 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
767 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
768 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
769 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
770 typename T31,
typename T32>
771 internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
772 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
773 T29, T30, T31, T32>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
774 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
775 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
776 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
779 return internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
780 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
781 T26, T27, T28, T29, T30, T31, T32>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
782 v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
783 v24, v25, v26, v27, v28, v29, v30, v31, v32);
786 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
787 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
788 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
789 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
790 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
791 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
792 typename T31,
typename T32,
typename T33>
793 internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
794 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
795 T29, T30, T31, T32, T33>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
796 T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
797 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
798 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
801 return internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
802 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
803 T26, T27, T28, T29, T30, T31, T32, T33>(v1, v2, v3, v4, v5, v6, v7, v8,
804 v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
805 v24, v25, v26, v27, v28, v29, v30, v31, v32, v33);
808 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
809 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
810 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
811 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
812 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
813 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
814 typename T31,
typename T32,
typename T33,
typename T34>
815 internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
816 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
817 T29, T30, T31, T32, T33, T34>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
818 T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
819 T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22,
820 T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30,
821 T31 v31, T32 v32, T33 v33, T34 v34)
823 return internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
824 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
825 T26, T27, T28, T29, T30, T31, T32, T33, T34>(v1, v2, v3, v4, v5, v6, v7,
826 v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22,
827 v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34);
830 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
831 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
832 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
833 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
834 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
835 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
836 typename T31,
typename T32,
typename T33,
typename T34,
typename T35>
837 internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
838 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
839 T29, T30, T31, T32, T33, T34, T35>
Values(T1 v1, T2 v2, T3 v3, T4 v4,
840 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
841 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
842 T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
843 T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35)
845 return internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
846 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
847 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35>(v1, v2, v3, v4, v5, v6,
848 v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21,
849 v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35);
852 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
853 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
854 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
855 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
856 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
857 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
858 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
860 internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
861 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
862 T29, T30, T31, T32, T33, T34, T35, T36>
Values(T1 v1, T2 v2, T3 v3, T4 v4,
863 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
864 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
865 T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
866 T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36)
868 return internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
869 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
870 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36>(v1, v2, v3, v4,
871 v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
872 v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
876 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
877 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
878 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
879 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
880 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
881 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
882 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
883 typename T36,
typename T37>
884 internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
885 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
886 T29, T30, T31, T32, T33, T34, T35, T36, T37>
Values(T1 v1, T2 v2, T3 v3,
887 T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
888 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
889 T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
890 T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
893 return internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
894 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
895 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37>(v1, v2, v3,
896 v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
897 v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
901 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
902 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
903 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
904 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
905 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
906 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
907 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
908 typename T36,
typename T37,
typename T38>
909 internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
910 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
911 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>
Values(T1 v1, T2 v2,
912 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
913 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
914 T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
915 T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
918 return internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
919 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
920 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>(v1, v2,
921 v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18,
922 v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32,
923 v33, v34, v35, v36, v37, v38);
926 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
927 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
928 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
929 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
930 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
931 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
932 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
933 typename T36,
typename T37,
typename T38,
typename T39>
934 internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
935 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
936 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>
Values(T1 v1, T2 v2,
937 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
938 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
939 T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
940 T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
941 T37 v37, T38 v38, T39 v39)
943 return internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
944 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
945 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>(v1,
946 v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17,
947 v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31,
948 v32, v33, v34, v35, v36, v37, v38, v39);
951 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
952 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
953 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
954 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
955 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
956 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
957 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
958 typename T36,
typename T37,
typename T38,
typename T39,
typename T40>
959 internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
960 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
961 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40>
Values(T1 v1,
962 T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11,
963 T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19,
964 T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27,
965 T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35,
966 T36 v36, T37 v37, T38 v38, T39 v39, T40 v40)
968 return internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
969 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
970 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
971 T40>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,
972 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29,
973 v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40);
976 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
977 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
978 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
979 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
980 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
981 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
982 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
983 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
985 internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
986 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
987 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
988 T41>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
989 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
990 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
991 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
992 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41)
994 return internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
995 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
996 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
997 T40, T41>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14,
998 v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28,
999 v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41);
1002 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1003 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1004 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1005 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1006 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1007 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1008 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1009 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1010 typename T41,
typename T42>
1011 internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1012 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1013 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
1014 T42>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
1015 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
1016 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
1017 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
1018 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
1021 return internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1022 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1023 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1024 T40, T41, T42>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
1025 v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27,
1026 v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41,
1030 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1031 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1032 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1033 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1034 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1035 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1036 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1037 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1038 typename T41,
typename T42,
typename T43>
1039 internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1040 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1041 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
1042 T43>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
1043 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
1044 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
1045 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
1046 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
1049 return internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1050 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1051 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1052 T40, T41, T42, T43>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
1053 v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
1054 v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40,
1058 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1059 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1060 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1061 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1062 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1063 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1064 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1065 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1066 typename T41,
typename T42,
typename T43,
typename T44>
1067 internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1068 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1069 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1070 T44>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
1071 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
1072 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
1073 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
1074 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
1075 T42 v42, T43 v43, T44 v44)
1077 return internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1078 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1079 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1080 T40, T41, T42, T43, T44>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
1081 v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25,
1082 v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39,
1083 v40, v41, v42, v43, v44);
1086 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1087 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1088 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1089 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1090 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1091 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1092 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1093 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1094 typename T41,
typename T42,
typename T43,
typename T44,
typename T45>
1095 internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1096 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1097 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1098 T44, T45>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
1099 T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
1100 T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
1101 T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32,
1102 T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40,
1103 T41 v41, T42 v42, T43 v43, T44 v44, T45 v45)
1105 return internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1106 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1107 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1108 T40, T41, T42, T43, T44, T45>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
1109 v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24,
1110 v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38,
1111 v39, v40, v41, v42, v43, v44, v45);
1114 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1115 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1116 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1117 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1118 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1119 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1120 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1121 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1122 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1124 internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1125 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1126 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1127 T44, T45, T46>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
1128 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
1129 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
1130 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
1131 T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
1132 T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46)
1134 return internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1135 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1136 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1137 T40, T41, T42, T43, T44, T45, T46>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
1138 v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
1139 v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37,
1140 v38, v39, v40, v41, v42, v43, v44, v45, v46);
1143 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1144 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1145 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1146 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1147 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1148 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1149 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1150 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1151 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1152 typename T46,
typename T47>
1153 internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1154 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1155 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1156 T44, T45, T46, T47>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
1157 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
1158 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
1159 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
1160 T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
1161 T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47)
1163 return internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1164 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1165 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1166 T40, T41, T42, T43, T44, T45, T46, T47>(v1, v2, v3, v4, v5, v6, v7, v8,
1167 v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
1168 v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37,
1169 v38, v39, v40, v41, v42, v43, v44, v45, v46, v47);
1172 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1173 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1174 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1175 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1176 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1177 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1178 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1179 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1180 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1181 typename T46,
typename T47,
typename T48>
1182 internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1183 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1184 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1185 T44, T45, T46, T47, T48>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
1186 T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
1187 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
1188 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
1189 T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
1190 T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47,
1193 return internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1194 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1195 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1196 T40, T41, T42, T43, T44, T45, T46, T47, T48>(v1, v2, v3, v4, v5, v6, v7,
1197 v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22,
1198 v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36,
1199 v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48);
1202 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1203 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1204 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1205 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1206 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1207 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1208 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1209 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1210 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1211 typename T46,
typename T47,
typename T48,
typename T49>
1212 internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1213 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1214 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1215 T44, T45, T46, T47, T48, T49>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
1216 T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
1217 T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22,
1218 T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30,
1219 T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38,
1220 T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46,
1221 T47 v47, T48 v48, T49 v49)
1223 return internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1224 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1225 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1226 T40, T41, T42, T43, T44, T45, T46, T47, T48, T49>(v1, v2, v3, v4, v5, v6,
1227 v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21,
1228 v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35,
1229 v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49);
1232 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1233 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1234 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1235 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1236 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1237 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1238 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1239 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1240 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1241 typename T46,
typename T47,
typename T48,
typename T49,
typename T50>
1242 internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1243 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1244 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1245 T44, T45, T46, T47, T48, T49, T50>
Values(T1 v1, T2 v2, T3 v3, T4 v4,
1246 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
1247 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
1248 T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
1249 T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37,
1250 T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45,
1251 T46 v46, T47 v47, T48 v48, T49 v49, T50 v50)
1253 return internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1254 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1255 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1256 T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>(v1, v2, v3, v4,
1257 v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
1258 v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
1259 v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47,
1283 inline internal::ParamGenerator<bool>
Bool()
1285 return Values(
false,
true);
1288 # if GTEST_HAS_COMBINE 1337 template <
typename Generator1,
typename Generator2>
1338 internal::CartesianProductHolder2<Generator1, Generator2>
Combine(
1339 const Generator1 & g1,
const Generator2 & g2)
1341 return internal::CartesianProductHolder2<Generator1, Generator2>(
1345 template <
typename Generator1,
typename Generator2,
typename Generator3>
1346 internal::CartesianProductHolder3<Generator1, Generator2, Generator3>
Combine(
1347 const Generator1 & g1,
const Generator2 & g2,
const Generator3 & g3)
1349 return internal::CartesianProductHolder3<Generator1, Generator2, Generator3>(
1353 template <
typename Generator1,
typename Generator2,
typename Generator3,
1354 typename Generator4>
1355 internal::CartesianProductHolder4<Generator1, Generator2, Generator3,
1357 const Generator1 & g1,
const Generator2 & g2,
const Generator3 & g3,
1358 const Generator4 & g4)
1360 return internal::CartesianProductHolder4<Generator1, Generator2, Generator3,
1365 template <
typename Generator1,
typename Generator2,
typename Generator3,
1366 typename Generator4,
typename Generator5>
1367 internal::CartesianProductHolder5<Generator1, Generator2, Generator3,
1368 Generator4, Generator5>
Combine(
1369 const Generator1 & g1,
const Generator2 & g2,
const Generator3 & g3,
1370 const Generator4 & g4,
const Generator5 & g5)
1372 return internal::CartesianProductHolder5<Generator1, Generator2, Generator3,
1373 Generator4, Generator5>(
1374 g1, g2, g3, g4, g5);
1377 template <
typename Generator1,
typename Generator2,
typename Generator3,
1378 typename Generator4,
typename Generator5,
typename Generator6>
1379 internal::CartesianProductHolder6<Generator1, Generator2, Generator3,
1380 Generator4, Generator5, Generator6>
Combine(
1381 const Generator1 & g1,
const Generator2 & g2,
const Generator3 & g3,
1382 const Generator4 & g4,
const Generator5 & g5,
const Generator6 & g6)
1384 return internal::CartesianProductHolder6<Generator1, Generator2, Generator3,
1385 Generator4, Generator5, Generator6>(
1386 g1, g2, g3, g4, g5, g6);
1389 template <
typename Generator1,
typename Generator2,
typename Generator3,
1390 typename Generator4,
typename Generator5,
typename Generator6,
1391 typename Generator7>
1392 internal::CartesianProductHolder7<Generator1, Generator2, Generator3,
1393 Generator4, Generator5, Generator6, Generator7>
Combine(
1394 const Generator1 & g1,
const Generator2 & g2,
const Generator3 & g3,
1395 const Generator4 & g4,
const Generator5 & g5,
const Generator6 & g6,
1396 const Generator7 & g7)
1398 return internal::CartesianProductHolder7<Generator1, Generator2, Generator3,
1399 Generator4, Generator5, Generator6, Generator7>(
1400 g1, g2, g3, g4, g5, g6, g7);
1403 template <
typename Generator1,
typename Generator2,
typename Generator3,
1404 typename Generator4,
typename Generator5,
typename Generator6,
1405 typename Generator7,
typename Generator8>
1406 internal::CartesianProductHolder8<Generator1, Generator2, Generator3,
1407 Generator4, Generator5, Generator6, Generator7, Generator8>
Combine(
1408 const Generator1 & g1,
const Generator2 & g2,
const Generator3 & g3,
1409 const Generator4 & g4,
const Generator5 & g5,
const Generator6 & g6,
1410 const Generator7 & g7,
const Generator8 & g8)
1412 return internal::CartesianProductHolder8<Generator1, Generator2, Generator3,
1413 Generator4, Generator5, Generator6, Generator7, Generator8>(
1414 g1, g2, g3, g4, g5, g6, g7, g8);
1417 template <
typename Generator1,
typename Generator2,
typename Generator3,
1418 typename Generator4,
typename Generator5,
typename Generator6,
1419 typename Generator7,
typename Generator8,
typename Generator9>
1420 internal::CartesianProductHolder9<Generator1, Generator2, Generator3,
1421 Generator4, Generator5, Generator6, Generator7, Generator8,
1423 const Generator1 & g1,
const Generator2 & g2,
const Generator3 & g3,
1424 const Generator4 & g4,
const Generator5 & g5,
const Generator6 & g6,
1425 const Generator7 & g7,
const Generator8 & g8,
const Generator9 & g9)
1427 return internal::CartesianProductHolder9<Generator1, Generator2, Generator3,
1428 Generator4, Generator5, Generator6, Generator7, Generator8, Generator9>(
1429 g1, g2, g3, g4, g5, g6, g7, g8, g9);
1432 template <
typename Generator1,
typename Generator2,
typename Generator3,
1433 typename Generator4,
typename Generator5,
typename Generator6,
1434 typename Generator7,
typename Generator8,
typename Generator9,
1435 typename Generator10>
1436 internal::CartesianProductHolder10<Generator1, Generator2, Generator3,
1437 Generator4, Generator5, Generator6, Generator7, Generator8, Generator9,
1439 const Generator1 & g1,
const Generator2 & g2,
const Generator3 & g3,
1440 const Generator4 & g4,
const Generator5 & g5,
const Generator6 & g6,
1441 const Generator7 & g7,
const Generator8 & g8,
const Generator9 & g9,
1442 const Generator10 & g10)
1444 return internal::CartesianProductHolder10<Generator1, Generator2, Generator3,
1445 Generator4, Generator5, Generator6, Generator7, Generator8, Generator9,
1447 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10);
1449 # endif // GTEST_HAS_COMBINE 1453 # define TEST_P(test_case_name, test_name) \ 1454 class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \ 1455 : public test_case_name { \ 1457 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {} \ 1458 virtual void TestBody(); \ 1460 static int AddToRegistry() { \ 1461 ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ 1462 GetTestCasePatternHolder<test_case_name>(\ 1463 #test_case_name, __FILE__, __LINE__)->AddTestPattern(\ 1466 new ::testing::internal::TestMetaFactory< \ 1467 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>()); \ 1470 static int gtest_registering_dummy_; \ 1471 GTEST_DISALLOW_COPY_AND_ASSIGN_(\ 1472 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \ 1474 int GTEST_TEST_CLASS_NAME_(test_case_name, \ 1475 test_name)::gtest_registering_dummy_ = \ 1476 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \ 1477 void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() 1479 # define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator) \ 1480 ::testing::internal::ParamGenerator<test_case_name::ParamType> \ 1481 gtest_##prefix##test_case_name##_EvalGenerator_() { return generator; } \ 1482 int gtest_##prefix##test_case_name##_dummy_ = \ 1483 ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ 1484 GetTestCasePatternHolder<test_case_name>(\ 1485 #test_case_name, __FILE__, __LINE__)->AddTestCaseInstantiation(\ 1487 >est_##prefix##test_case_name##_EvalGenerator_, \ 1492 #endif // GTEST_HAS_PARAM_TEST 1494 #endif // GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
#define EXPECT_TRUE(condition)
#define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator)
internal::ParamGenerator< typename::testing::internal::IteratorTraits< ForwardIterator >::value_type > ValuesIn(ForwardIterator begin, ForwardIterator end)
#define TEST_F(test_fixture, test_name)
#define TEST_P(test_case_name, test_name)
internal::CartesianProductHolder2< Generator1, Generator2 > Combine(const Generator1 &g1, const Generator2 &g2)
internal::ParamGenerator< bool > Bool()
internal::ValueArray1< T1 > Values(T1 v1)