41 #ifndef GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ 42 #define GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ 60 class FooTest :
public ::testing::TestWithParam<const char*> {
68 TEST_P(FooTest, DoesBlah) {
75 TEST_P(FooTest, HasBlahBlah) {
105 Values(
"meeny",
"miny",
"moe"));
126 const char* pets[] = {
"cat",
"dog"};
167 class DerivedTest :
public BaseTest,
public ::testing::WithParamInterface<int> {
171 TEST_F(BaseTest, HasFoo) {
175 TEST_P(DerivedTest, DoesBlah) {
182 #include "gtest/internal/gtest-port.h" 184 #if !GTEST_OS_SYMBIAN 191 #include "gtest/internal/gtest-internal.h" 192 #include "gtest/internal/gtest-param-util.h" 193 #include "gtest/internal/gtest-param-util-generated.h" 195 #if GTEST_HAS_PARAM_TEST 241 template <
typename T,
typename IncrementT>
242 internal::ParamGenerator<T> Range(
T start,
T end, IncrementT step) {
243 return internal::ParamGenerator<T>(
244 new internal::RangeGenerator<T, IncrementT>(
start,
end, step));
247 template <
typename T>
248 internal::ParamGenerator<T> Range(
T start,
T end) {
249 return Range(start, end, 1);
307 template <
typename ForwardIterator>
308 internal::ParamGenerator<
309 typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type>
310 ValuesIn(ForwardIterator
begin, ForwardIterator
end) {
311 typedef typename ::testing::internal::IteratorTraits<ForwardIterator>
312 ::value_type ParamType;
313 return internal::ParamGenerator<ParamType>(
314 new internal::ValuesInIteratorRangeGenerator<ParamType>(
begin,
end));
317 template <
typename T,
size_t N>
318 internal::ParamGenerator<T> ValuesIn(
const T (&array)[N]) {
319 return ValuesIn(array, array + N);
322 template <
class Container>
323 internal::ParamGenerator<typename Container::value_type> ValuesIn(
324 const Container& container) {
325 return ValuesIn(container.begin(), container.end());
347 template <
typename T1>
348 internal::ValueArray1<T1> Values(
T1 v1) {
349 return internal::ValueArray1<T1>(v1);
352 template <
typename T1,
typename T2>
353 internal::ValueArray2<T1, T2> Values(
T1 v1,
T2 v2) {
354 return internal::ValueArray2<T1, T2>(v1, v2);
357 template <
typename T1,
typename T2,
typename T3>
358 internal::ValueArray3<T1, T2, T3> Values(
T1 v1,
T2 v2,
T3 v3) {
359 return internal::ValueArray3<T1, T2, T3>(v1, v2, v3);
362 template <
typename T1,
typename T2,
typename T3,
typename T4>
363 internal::ValueArray4<T1, T2, T3, T4> Values(
T1 v1,
T2 v2,
T3 v3, T4 v4) {
364 return internal::ValueArray4<T1, T2, T3, T4>(v1, v2, v3, v4);
367 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
368 internal::ValueArray5<T1, T2, T3, T4, T5> Values(
T1 v1,
T2 v2,
T3 v3, T4 v4,
370 return internal::ValueArray5<T1, T2, T3, T4, T5>(v1, v2, v3, v4, v5);
373 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
375 internal::ValueArray6<T1, T2, T3, T4, T5, T6> Values(T1 v1, T2 v2, T3 v3,
376 T4 v4, T5 v5, T6 v6) {
377 return internal::ValueArray6<T1, T2, T3, T4, T5, T6>(v1, v2, v3, v4, v5, v6);
380 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
381 typename T6,
typename T7>
382 internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7> Values(T1 v1, T2 v2, T3 v3,
383 T4 v4, T5 v5, T6 v6, T7 v7) {
384 return internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7>(v1, v2, v3, v4, v5,
388 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
389 typename T6,
typename T7,
typename T8>
390 internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8> Values(T1 v1, T2 v2,
391 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8) {
392 return internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8>(v1, v2, v3, v4,
396 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
397 typename T6,
typename T7,
typename T8,
typename T9>
398 internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9> Values(T1 v1, T2 v2,
399 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9) {
400 return internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9>(v1, v2, v3,
401 v4, v5, v6, v7, v8, v9);
404 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
405 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
406 internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Values(T1 v1,
407 T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10) {
408 return internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(v1,
409 v2, v3, v4, v5, v6, v7, v8, v9, v10);
412 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
413 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
415 internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
416 T11> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
418 return internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
419 T11>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11);
422 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
423 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
424 typename T11,
typename T12>
425 internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
426 T12> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
427 T10 v10, T11 v11, T12 v12) {
428 return internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
429 T12>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12);
432 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
433 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
434 typename T11,
typename T12,
typename T13>
435 internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
436 T13> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
437 T10 v10, T11 v11, T12 v12, T13 v13) {
438 return internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
439 T12, T13>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13);
442 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
443 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
444 typename T11,
typename T12,
typename T13,
typename T14>
445 internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
446 T14> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
447 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14) {
448 return internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
449 T12, T13, T14>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
453 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
454 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
455 typename T11,
typename T12,
typename T13,
typename T14,
typename T15>
456 internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
457 T14, T15> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
458 T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15) {
459 return internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
460 T12, T13, T14, T15>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
464 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
465 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
466 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
468 internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
469 T14, T15, T16> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
470 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
472 return internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
473 T12, T13, T14, T15, T16>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
474 v12, v13, v14, v15, v16);
477 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
478 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
479 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
480 typename T16,
typename T17>
481 internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
482 T14, T15, T16, T17> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
483 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
485 return internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
486 T12, T13, T14, T15, T16, T17>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
487 v11, v12, v13, v14, v15, v16, v17);
490 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
491 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
492 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
493 typename T16,
typename T17,
typename T18>
494 internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
495 T14, T15, T16, T17, T18> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
496 T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
497 T16 v16, T17 v17, T18 v18) {
498 return internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
499 T12, T13, T14, T15, T16, T17, T18>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
500 v10, v11, v12, v13, v14, v15, v16, v17, v18);
503 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
504 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
505 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
506 typename T16,
typename T17,
typename T18,
typename T19>
507 internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
508 T14, T15, T16, T17, T18, T19> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
509 T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
510 T15 v15, T16 v16, T17 v17, T18 v18, T19 v19) {
511 return internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
512 T12, T13, T14, T15, T16, T17, T18, T19>(v1, v2, v3, v4, v5, v6, v7, v8,
513 v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19);
516 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
517 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
518 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
519 typename T16,
typename T17,
typename T18,
typename T19,
typename T20>
520 internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
521 T14, T15, T16, T17, T18, T19, T20> Values(T1 v1, T2 v2, T3 v3, T4 v4,
522 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
523 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20) {
524 return internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
525 T12, T13, T14, T15, T16, T17, T18, T19, T20>(v1, v2, v3, v4, v5, v6, v7,
526 v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20);
529 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
530 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
531 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
532 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
534 internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
535 T14, T15, T16, T17, T18, T19, T20, T21> Values(T1 v1, T2 v2, T3 v3, T4 v4,
536 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
537 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21) {
538 return internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
539 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>(v1, v2, v3, v4, v5, v6,
540 v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21);
543 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
544 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
545 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
546 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
547 typename T21,
typename T22>
548 internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
549 T14, T15, T16, T17, T18, T19, T20, T21, T22> Values(T1 v1, T2 v2, T3 v3,
550 T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
551 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
553 return internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
554 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>(v1, v2, v3, v4,
555 v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
559 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
560 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
561 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
562 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
563 typename T21,
typename T22,
typename T23>
564 internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
565 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> Values(T1 v1, T2 v2,
566 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
567 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
568 T21 v21, T22 v22, T23 v23) {
569 return internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
570 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>(v1, v2, v3,
571 v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
575 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
576 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
577 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
578 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
579 typename T21,
typename T22,
typename T23,
typename T24>
580 internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
581 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> Values(T1 v1, T2 v2,
582 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
583 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
584 T21 v21, T22 v22, T23 v23, T24 v24) {
585 return internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
586 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>(v1, v2,
587 v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18,
588 v19, v20, v21, v22, v23, v24);
591 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
592 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
593 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
594 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
595 typename T21,
typename T22,
typename T23,
typename T24,
typename T25>
596 internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
597 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Values(T1 v1,
598 T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11,
599 T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19,
600 T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25) {
601 return internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
602 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>(v1,
603 v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17,
604 v18, v19, v20, v21, v22, v23, v24, v25);
607 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
608 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
609 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
610 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
611 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
613 internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
614 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
615 T26> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
616 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
617 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
619 return internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
620 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
621 T26>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,
622 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26);
625 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
626 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
627 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
628 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
629 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
630 typename T26,
typename T27>
631 internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
632 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
633 T27> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
634 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
635 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
637 return internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
638 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
639 T26, T27>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14,
640 v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27);
643 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
644 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
645 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
646 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
647 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
648 typename T26,
typename T27,
typename T28>
649 internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
650 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
651 T28> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
652 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
653 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
654 T26 v26, T27 v27, T28 v28) {
655 return internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
656 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
657 T26, T27, T28>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
658 v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27,
662 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
663 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
664 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
665 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
666 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
667 typename T26,
typename T27,
typename T28,
typename T29>
668 internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
669 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
670 T29> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
671 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
672 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
673 T26 v26, T27 v27, T28 v28, T29 v29) {
674 return internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
675 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
676 T26, T27, T28, T29>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
677 v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
681 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
682 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
683 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
684 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
685 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
686 typename T26,
typename T27,
typename T28,
typename T29,
typename T30>
687 internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
688 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
689 T29, T30> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
690 T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
691 T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
692 T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30) {
693 return internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
694 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
695 T26, T27, T28, T29, T30>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
696 v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25,
697 v26, v27, v28, v29, v30);
700 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
701 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
702 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
703 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
704 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
705 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
707 internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
708 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
709 T29, T30, T31> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
710 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
711 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
712 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31) {
713 return internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
714 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
715 T26, T27, T28, T29, T30, T31>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
716 v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24,
717 v25, v26, v27, v28, v29, v30, v31);
720 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
721 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
722 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
723 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
724 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
725 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
726 typename T31,
typename T32>
727 internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
728 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
729 T29, T30, T31, T32> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
730 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
731 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
732 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
734 return internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
735 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
736 T26, T27, T28, T29, T30, T31, T32>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
737 v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
738 v24, v25, v26, v27, v28, v29, v30, v31, v32);
741 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
742 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
743 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
744 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
745 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
746 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
747 typename T31,
typename T32,
typename T33>
748 internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
749 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
750 T29, T30, T31, T32, T33> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
751 T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
752 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
753 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
755 return internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
756 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
757 T26, T27, T28, T29, T30, T31, T32, T33>(v1, v2, v3, v4, v5, v6, v7, v8,
758 v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
759 v24, v25, v26, v27, v28, v29, v30, v31, v32, v33);
762 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
763 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
764 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
765 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
766 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
767 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
768 typename T31,
typename T32,
typename T33,
typename T34>
769 internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
770 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
771 T29, T30, T31, T32, T33, T34> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
772 T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
773 T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22,
774 T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30,
775 T31 v31, T32 v32, T33 v33, T34 v34) {
776 return internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
777 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
778 T26, T27, T28, T29, T30, T31, T32, T33, T34>(v1, v2, v3, v4, v5, v6, v7,
779 v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22,
780 v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34);
783 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
784 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
785 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
786 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
787 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
788 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
789 typename T31,
typename T32,
typename T33,
typename T34,
typename T35>
790 internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
791 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
792 T29, T30, T31, T32, T33, T34, T35> Values(T1 v1, T2 v2, T3 v3, T4 v4,
793 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
794 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
795 T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
796 T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35) {
797 return internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
798 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
799 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35>(v1, v2, v3, v4, v5, v6,
800 v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21,
801 v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35);
804 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
805 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
806 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
807 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
808 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
809 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
810 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
812 internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
813 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
814 T29, T30, T31, T32, T33, T34, T35, T36> Values(T1 v1, T2 v2, T3 v3, T4 v4,
815 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
816 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
817 T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
818 T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36) {
819 return internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
820 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
821 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36>(v1, v2, v3, v4,
822 v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
823 v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
827 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
828 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
829 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
830 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
831 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
832 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
833 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
834 typename T36,
typename T37>
835 internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
836 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
837 T29, T30, T31, T32, T33, T34, T35, T36, T37> Values(T1 v1, T2 v2, T3 v3,
838 T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
839 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
840 T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
841 T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
843 return internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
844 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
845 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37>(v1, v2, v3,
846 v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
847 v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
851 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
852 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
853 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
854 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
855 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
856 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
857 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
858 typename T36,
typename T37,
typename T38>
859 internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
860 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
861 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> Values(T1 v1, T2 v2,
862 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
863 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
864 T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
865 T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
867 return internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
868 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
869 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>(v1, v2,
870 v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18,
871 v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32,
872 v33, v34, v35, v36, v37, v38);
875 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
876 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
877 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
878 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
879 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
880 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
881 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
882 typename T36,
typename T37,
typename T38,
typename T39>
883 internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
884 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
885 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Values(T1 v1, T2 v2,
886 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
887 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
888 T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
889 T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
890 T37 v37, T38 v38, T39 v39) {
891 return internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
892 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
893 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>(v1,
894 v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17,
895 v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31,
896 v32, v33, v34, v35, v36, v37, v38, v39);
899 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
900 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
901 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
902 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
903 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
904 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
905 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
906 typename T36,
typename T37,
typename T38,
typename T39,
typename T40>
907 internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
908 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
909 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Values(T1 v1,
910 T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11,
911 T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19,
912 T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27,
913 T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35,
914 T36 v36, T37 v37, T38 v38, T39 v39, T40 v40) {
915 return internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
916 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
917 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
918 T40>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,
919 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29,
920 v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40);
923 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
924 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
925 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
926 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
927 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
928 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
929 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
930 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
932 internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
933 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
934 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
935 T41> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
936 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
937 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
938 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
939 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41) {
940 return internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
941 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
942 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
943 T40, T41>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14,
944 v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28,
945 v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41);
948 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
949 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
950 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
951 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
952 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
953 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
954 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
955 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
956 typename T41,
typename T42>
957 internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
958 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
959 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
960 T42> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
961 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
962 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
963 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
964 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
966 return internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
967 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
968 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
969 T40, T41, T42>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
970 v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27,
971 v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41,
975 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
976 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
977 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
978 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
979 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
980 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
981 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
982 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
983 typename T41,
typename T42,
typename T43>
984 internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
985 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
986 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
987 T43> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
988 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
989 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
990 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
991 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
993 return internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
994 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
995 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
996 T40, T41, T42, T43>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
997 v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
998 v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40,
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,
typename T43,
typename T44>
1011 internal::ValueArray44<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, T42, T43,
1014 T44> 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,
1019 T42 v42, T43 v43, T44 v44) {
1020 return internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1021 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1022 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1023 T40, T41, T42, T43, T44>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
1024 v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25,
1025 v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39,
1026 v40, v41, v42, v43, v44);
1029 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1030 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1031 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1032 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1033 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1034 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1035 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1036 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1037 typename T41,
typename T42,
typename T43,
typename T44,
typename T45>
1038 internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1039 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1040 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1041 T44, T45> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
1042 T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
1043 T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
1044 T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32,
1045 T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40,
1046 T41 v41, T42 v42, T43 v43, T44 v44, T45 v45) {
1047 return internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1048 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1049 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1050 T40, T41, T42, T43, T44, T45>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
1051 v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24,
1052 v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38,
1053 v39, v40, v41, v42, v43, v44, v45);
1056 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1057 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1058 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1059 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1060 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1061 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1062 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1063 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1064 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1066 internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1067 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1068 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1069 T44, T45, T46> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
1070 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
1071 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
1072 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
1073 T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
1074 T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46) {
1075 return internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1076 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1077 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1078 T40, T41, T42, T43, T44, T45, T46>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
1079 v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
1080 v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37,
1081 v38, v39, v40, v41, v42, v43, v44, v45, v46);
1084 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1085 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1086 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1087 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1088 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1089 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1090 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1091 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1092 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1093 typename T46,
typename T47>
1094 internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1095 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1096 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1097 T44, T45, T46, T47> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
1098 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
1099 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
1100 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
1101 T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
1102 T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47) {
1103 return internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1104 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1105 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1106 T40, T41, T42, T43, T44, T45, T46, T47>(v1, v2, v3, v4, v5, v6, v7, v8,
1107 v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
1108 v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37,
1109 v38, v39, v40, v41, v42, v43, v44, v45, v46, v47);
1112 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1113 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1114 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1115 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1116 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1117 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1118 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1119 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1120 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1121 typename T46,
typename T47,
typename T48>
1122 internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1123 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1124 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1125 T44, T45, T46, T47, T48> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
1126 T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
1127 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
1128 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
1129 T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
1130 T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47,
1132 return internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1133 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1134 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1135 T40, T41, T42, T43, T44, T45, T46, T47, T48>(v1, v2, v3, v4, v5, v6, v7,
1136 v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22,
1137 v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36,
1138 v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48);
1141 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1142 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1143 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1144 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1145 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1146 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1147 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1148 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1149 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1150 typename T46,
typename T47,
typename T48,
typename T49>
1151 internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1152 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1153 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1154 T44, T45, T46, T47, T48, T49> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
1155 T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
1156 T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22,
1157 T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30,
1158 T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38,
1159 T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46,
1160 T47 v47, T48 v48, T49 v49) {
1161 return internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1162 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1163 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1164 T40, T41, T42, T43, T44, T45, T46, T47, T48, T49>(v1, v2, v3, v4, v5, v6,
1165 v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21,
1166 v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35,
1167 v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49);
1170 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
1171 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
1172 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
1173 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
1174 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
1175 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
1176 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
1177 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
1178 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
1179 typename T46,
typename T47,
typename T48,
typename T49,
typename T50>
1180 internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1181 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1182 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1183 T44, T45, T46, T47, T48, T49, T50> Values(T1 v1, T2 v2, T3 v3, T4 v4,
1184 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
1185 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
1186 T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
1187 T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37,
1188 T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45,
1189 T46 v46, T47 v47, T48 v48, T49 v49, T50 v50) {
1190 return internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1191 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1192 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1193 T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>(v1, v2, v3, v4,
1194 v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
1195 v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
1196 v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47,
1220 inline internal::ParamGenerator<bool>
Bool() {
1221 return Values(
false,
true);
1224 # if GTEST_HAS_COMBINE 1273 template <
typename Generator1,
typename Generator2>
1274 internal::CartesianProductHolder2<Generator1, Generator2> Combine(
1275 const Generator1& g1,
const Generator2& g2) {
1276 return internal::CartesianProductHolder2<Generator1, Generator2>(
1280 template <
typename Generator1,
typename Generator2,
typename Generator3>
1281 internal::CartesianProductHolder3<Generator1, Generator2, Generator3> Combine(
1282 const Generator1& g1,
const Generator2& g2,
const Generator3& g3) {
1283 return internal::CartesianProductHolder3<Generator1, Generator2, Generator3>(
1287 template <
typename Generator1,
typename Generator2,
typename Generator3,
1288 typename Generator4>
1289 internal::CartesianProductHolder4<Generator1, Generator2, Generator3,
1290 Generator4> Combine(
1291 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
1292 const Generator4& g4) {
1293 return internal::CartesianProductHolder4<Generator1, Generator2, Generator3,
1298 template <
typename Generator1,
typename Generator2,
typename Generator3,
1299 typename Generator4,
typename Generator5>
1300 internal::CartesianProductHolder5<Generator1, Generator2, Generator3,
1301 Generator4, Generator5> Combine(
1302 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
1303 const Generator4& g4,
const Generator5& g5) {
1304 return internal::CartesianProductHolder5<Generator1, Generator2, Generator3,
1305 Generator4, Generator5>(
1306 g1, g2, g3, g4, g5);
1309 template <
typename Generator1,
typename Generator2,
typename Generator3,
1310 typename Generator4,
typename Generator5,
typename Generator6>
1311 internal::CartesianProductHolder6<Generator1, Generator2, Generator3,
1312 Generator4, Generator5, Generator6> Combine(
1313 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
1314 const Generator4& g4,
const Generator5& g5,
const Generator6& g6) {
1315 return internal::CartesianProductHolder6<Generator1, Generator2, Generator3,
1316 Generator4, Generator5, Generator6>(
1317 g1, g2, g3, g4, g5, g6);
1320 template <
typename Generator1,
typename Generator2,
typename Generator3,
1321 typename Generator4,
typename Generator5,
typename Generator6,
1322 typename Generator7>
1323 internal::CartesianProductHolder7<Generator1, Generator2, Generator3,
1324 Generator4, Generator5, Generator6, Generator7> Combine(
1325 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
1326 const Generator4& g4,
const Generator5& g5,
const Generator6& g6,
1327 const Generator7& g7) {
1328 return internal::CartesianProductHolder7<Generator1, Generator2, Generator3,
1329 Generator4, Generator5, Generator6, Generator7>(
1330 g1, g2, g3, g4, g5, g6, g7);
1333 template <
typename Generator1,
typename Generator2,
typename Generator3,
1334 typename Generator4,
typename Generator5,
typename Generator6,
1335 typename Generator7,
typename Generator8>
1336 internal::CartesianProductHolder8<Generator1, Generator2, Generator3,
1337 Generator4, Generator5, Generator6, Generator7, Generator8> Combine(
1338 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
1339 const Generator4& g4,
const Generator5& g5,
const Generator6& g6,
1340 const Generator7& g7,
const Generator8& g8) {
1341 return internal::CartesianProductHolder8<Generator1, Generator2, Generator3,
1342 Generator4, Generator5, Generator6, Generator7, Generator8>(
1343 g1, g2, g3, g4, g5, g6, g7, g8);
1346 template <
typename Generator1,
typename Generator2,
typename Generator3,
1347 typename Generator4,
typename Generator5,
typename Generator6,
1348 typename Generator7,
typename Generator8,
typename Generator9>
1349 internal::CartesianProductHolder9<Generator1, Generator2, Generator3,
1350 Generator4, Generator5, Generator6, Generator7, Generator8,
1351 Generator9> Combine(
1352 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
1353 const Generator4& g4,
const Generator5& g5,
const Generator6& g6,
1354 const Generator7& g7,
const Generator8& g8,
const Generator9& g9) {
1355 return internal::CartesianProductHolder9<Generator1, Generator2, Generator3,
1356 Generator4, Generator5, Generator6, Generator7, Generator8, Generator9>(
1357 g1, g2, g3, g4, g5, g6, g7, g8, g9);
1360 template <
typename Generator1,
typename Generator2,
typename Generator3,
1361 typename Generator4,
typename Generator5,
typename Generator6,
1362 typename Generator7,
typename Generator8,
typename Generator9,
1363 typename Generator10>
1364 internal::CartesianProductHolder10<Generator1, Generator2, Generator3,
1365 Generator4, Generator5, Generator6, Generator7, Generator8, Generator9,
1366 Generator10> Combine(
1367 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
1368 const Generator4& g4,
const Generator5& g5,
const Generator6& g6,
1369 const Generator7& g7,
const Generator8& g8,
const Generator9& g9,
1370 const Generator10& g10) {
1371 return internal::CartesianProductHolder10<Generator1, Generator2, Generator3,
1372 Generator4, Generator5, Generator6, Generator7, Generator8, Generator9,
1374 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10);
1376 # endif // GTEST_HAS_COMBINE 1380 # define TEST_P(test_case_name, test_name) \ 1381 class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \ 1382 : public test_case_name { \ 1384 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {} \ 1385 virtual void TestBody(); \ 1387 static int AddToRegistry() { \ 1388 ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ 1389 GetTestCasePatternHolder<test_case_name>(\ 1391 ::testing::internal::CodeLocation(\ 1392 __FILE__, __LINE__))->AddTestPattern(\ 1395 new ::testing::internal::TestMetaFactory< \ 1396 GTEST_TEST_CLASS_NAME_(\ 1397 test_case_name, test_name)>()); \ 1400 static int gtest_registering_dummy_ GTEST_ATTRIBUTE_UNUSED_; \ 1401 GTEST_DISALLOW_COPY_AND_ASSIGN_(\ 1402 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \ 1404 int GTEST_TEST_CLASS_NAME_(test_case_name, \ 1405 test_name)::gtest_registering_dummy_ = \ 1406 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \ 1407 void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() 1421 # define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator, ...) \ 1422 ::testing::internal::ParamGenerator<test_case_name::ParamType> \ 1423 gtest_##prefix##test_case_name##_EvalGenerator_() { return generator; } \ 1424 ::std::string gtest_##prefix##test_case_name##_EvalGenerateName_( \ 1425 const ::testing::TestParamInfo<test_case_name::ParamType>& info) { \ 1426 return ::testing::internal::GetParamNameGen<test_case_name::ParamType> \ 1427 (__VA_ARGS__)(info); \ 1429 int gtest_##prefix##test_case_name##_dummy_ GTEST_ATTRIBUTE_UNUSED_ = \ 1430 ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ 1431 GetTestCasePatternHolder<test_case_name>(\ 1433 ::testing::internal::CodeLocation(\ 1434 __FILE__, __LINE__))->AddTestCaseInstantiation(\ 1436 >est_##prefix##test_case_name##_EvalGenerator_, \ 1437 >est_##prefix##test_case_name##_EvalGenerateName_, \ 1442 #endif // GTEST_HAS_PARAM_TEST 1444 #endif // GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
auto begin(TestAdlIterable &instance)
auto end(TestAdlIterable &instance)
#define EXPECT_TRUE(condition)
INSTANTIATE_TEST_CASE_P(AllGraphs, BipartiteTest,::testing::Range(0, 5))
TEST_P(BipartiteTest, Exhaustive)
#define TEST_F(test_fixture, test_name)