51 #ifndef GTEST_INCLUDE_GTEST_GTEST_H_ 52 #define GTEST_INCLUDE_GTEST_GTEST_H_ 94 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_ 95 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_ 136 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ 137 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ 298 # include <sys/types.h> 299 # include <sys/stat.h> 300 #endif // !_WIN32_WCE 302 #if defined __APPLE__ 303 # include <AvailabilityMacros.h> 304 # include <TargetConditionals.h> 311 #define GTEST_DEV_EMAIL_ "googletestframework@@googlegroups.com" 312 #define GTEST_FLAG_PREFIX_ "gtest_" 313 #define GTEST_FLAG_PREFIX_DASH_ "gtest-" 314 #define GTEST_FLAG_PREFIX_UPPER_ "GTEST_" 315 #define GTEST_NAME_ "Google Test" 316 #define GTEST_PROJECT_URL_ "http://code.google.com/p/googletest/" 321 # define GTEST_GCC_VER_ \ 322 (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__) 327 # define GTEST_OS_CYGWIN 1 328 #elif defined __SYMBIAN32__ 329 # define GTEST_OS_SYMBIAN 1 331 # define GTEST_OS_WINDOWS 1 333 # define GTEST_OS_WINDOWS_MOBILE 1 334 # elif defined(__MINGW__) || defined(__MINGW32__) 335 # define GTEST_OS_WINDOWS_MINGW 1 337 # define GTEST_OS_WINDOWS_DESKTOP 1 338 # endif // _WIN32_WCE 339 #elif defined __APPLE__ 340 # define GTEST_OS_MAC 1 341 # if TARGET_OS_IPHONE 342 # define GTEST_OS_IOS 1 343 # if TARGET_IPHONE_SIMULATOR 344 # define GTEST_OS_IOS_SIMULATOR 1 347 #elif defined __linux__ 348 # define GTEST_OS_LINUX 1 349 # if defined __ANDROID__ 350 # define GTEST_OS_LINUX_ANDROID 1 352 #elif defined __MVS__ 353 # define GTEST_OS_ZOS 1 354 #elif defined(__sun) && defined(__SVR4) 355 # define GTEST_OS_SOLARIS 1 357 # define GTEST_OS_AIX 1 358 #elif defined(__hpux) 359 # define GTEST_OS_HPUX 1 360 #elif defined __native_client__ 361 # define GTEST_OS_NACL 1 362 #elif defined __OpenBSD__ 363 # define GTEST_OS_OPENBSD 1 364 #elif defined __QNX__ 365 # define GTEST_OS_QNX 1 368 #ifndef GTEST_LANG_CXX11 373 # if __GXX_EXPERIMENTAL_CXX0X__ || __cplusplus >= 201103L 375 # define GTEST_LANG_CXX11 1 377 # define GTEST_LANG_CXX11 0 384 #if !GTEST_OS_WINDOWS 390 #elif !GTEST_OS_WINDOWS_MOBILE 395 #if GTEST_OS_LINUX_ANDROID 397 # include <android/api-level.h> 401 #ifndef GTEST_HAS_POSIX_RE 402 # if GTEST_OS_LINUX_ANDROID 404 # define GTEST_HAS_POSIX_RE (__ANDROID_API__ >= 9) 406 # define GTEST_HAS_POSIX_RE (!GTEST_OS_WINDOWS) 410 #if GTEST_HAS_POSIX_RE 418 # define GTEST_USES_POSIX_RE 1 420 #elif GTEST_OS_WINDOWS 424 # define GTEST_USES_SIMPLE_RE 1 430 # define GTEST_USES_SIMPLE_RE 1 432 #endif // GTEST_HAS_POSIX_RE 434 #ifndef GTEST_HAS_EXCEPTIONS 437 # if defined(_MSC_VER) || defined(__BORLANDC__) 441 # ifndef _HAS_EXCEPTIONS 442 # define _HAS_EXCEPTIONS 1 443 # endif // _HAS_EXCEPTIONS 444 # define GTEST_HAS_EXCEPTIONS _HAS_EXCEPTIONS 445 # elif defined(__GNUC__) && __EXCEPTIONS 447 # define GTEST_HAS_EXCEPTIONS 1 448 # elif defined(__SUNPRO_CC) 452 # define GTEST_HAS_EXCEPTIONS 1 453 # elif defined(__IBMCPP__) && __EXCEPTIONS 455 # define GTEST_HAS_EXCEPTIONS 1 456 # elif defined(__HP_aCC) 459 # define GTEST_HAS_EXCEPTIONS 1 463 # define GTEST_HAS_EXCEPTIONS 0 464 # endif // defined(_MSC_VER) || defined(__BORLANDC__) 465 #endif // GTEST_HAS_EXCEPTIONS 467 #if !defined(GTEST_HAS_STD_STRING) 470 # define GTEST_HAS_STD_STRING 1 471 #elif !GTEST_HAS_STD_STRING 473 # error "Google Test cannot be used where ::std::string isn't available." 474 #endif // !defined(GTEST_HAS_STD_STRING) 476 #ifndef GTEST_HAS_GLOBAL_STRING 480 # define GTEST_HAS_GLOBAL_STRING 0 482 #endif // GTEST_HAS_GLOBAL_STRING 484 #ifndef GTEST_HAS_STD_WSTRING 493 # define GTEST_HAS_STD_WSTRING \ 494 (!(GTEST_OS_LINUX_ANDROID || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS)) 496 #endif // GTEST_HAS_STD_WSTRING 498 #ifndef GTEST_HAS_GLOBAL_WSTRING 501 # define GTEST_HAS_GLOBAL_WSTRING \ 502 (GTEST_HAS_STD_WSTRING && GTEST_HAS_GLOBAL_STRING) 503 #endif // GTEST_HAS_GLOBAL_WSTRING 506 #ifndef GTEST_HAS_RTTI 512 # ifdef _CPPRTTI // MSVC defines this macro iff RTTI is enabled. 513 # define GTEST_HAS_RTTI 1 515 # define GTEST_HAS_RTTI 0 519 # elif defined(__GNUC__) && (GTEST_GCC_VER_ >= 40302) 526 # if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR) && \ 527 !defined(__EXCEPTIONS) 528 # define GTEST_HAS_RTTI 0 530 # define GTEST_HAS_RTTI 1 531 # endif // GTEST_OS_LINUX_ANDROID && __STLPORT_MAJOR && !__EXCEPTIONS 533 # define GTEST_HAS_RTTI 0 534 # endif // __GXX_RTTI 539 # elif defined(__clang__) 541 # define GTEST_HAS_RTTI __has_feature(cxx_rtti) 545 # elif defined(__IBMCPP__) && (__IBMCPP__ >= 900) 548 # define GTEST_HAS_RTTI 1 550 # define GTEST_HAS_RTTI 0 556 # define GTEST_HAS_RTTI 1 560 #endif // GTEST_HAS_RTTI 569 #ifndef GTEST_HAS_PTHREAD 575 # define GTEST_HAS_PTHREAD (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX \ 577 #endif // GTEST_HAS_PTHREAD 579 #if GTEST_HAS_PTHREAD 582 # include <pthread.h> 591 #ifndef GTEST_HAS_TR1_TUPLE 592 # if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR) 594 # define GTEST_HAS_TR1_TUPLE 0 597 # define GTEST_HAS_TR1_TUPLE 1 599 #endif // GTEST_HAS_TR1_TUPLE 603 #ifndef GTEST_USE_OWN_TR1_TUPLE 616 # if (defined(__GNUC__) && !defined(__CUDACC__) && (GTEST_GCC_VER_ >= 40000) \ 617 && !GTEST_OS_QNX && !defined(_LIBCPP_VERSION)) || _MSC_VER >= 1600 618 # define GTEST_ENV_HAS_TR1_TUPLE_ 1 624 # if GTEST_LANG_CXX11 && (!defined(__GLIBCXX__) || __GLIBCXX__ > 20110325) 625 # define GTEST_ENV_HAS_STD_TUPLE_ 1 628 # if GTEST_ENV_HAS_TR1_TUPLE_ || GTEST_ENV_HAS_STD_TUPLE_ 629 # define GTEST_USE_OWN_TR1_TUPLE 0 631 # define GTEST_USE_OWN_TR1_TUPLE 1 634 #endif // GTEST_USE_OWN_TR1_TUPLE 639 #if GTEST_HAS_TR1_TUPLE 641 # if GTEST_USE_OWN_TR1_TUPLE 679 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_ 680 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_ 689 #if defined(__SYMBIAN32__) || (defined(__SUNPRO_CC) && __SUNPRO_CC < 0x590) 690 # define GTEST_DECLARE_TUPLE_AS_FRIEND_ public: 692 # define GTEST_DECLARE_TUPLE_AS_FRIEND_ \ 693 template <GTEST_10_TYPENAMES_(U)> friend class tuple; \ 698 #define GTEST_0_TUPLE_(T) tuple<> 699 #define GTEST_1_TUPLE_(T) tuple<T##0, void, void, void, void, void, void, \ 701 #define GTEST_2_TUPLE_(T) tuple<T##0, T##1, void, void, void, void, void, \ 703 #define GTEST_3_TUPLE_(T) tuple<T##0, T##1, T##2, void, void, void, void, \ 705 #define GTEST_4_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, void, void, void, \ 707 #define GTEST_5_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, void, void, \ 709 #define GTEST_6_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, void, \ 711 #define GTEST_7_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \ 713 #define GTEST_8_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \ 715 #define GTEST_9_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \ 717 #define GTEST_10_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \ 721 #define GTEST_0_TYPENAMES_(T) 722 #define GTEST_1_TYPENAMES_(T) typename T##0 723 #define GTEST_2_TYPENAMES_(T) typename T##0, typename T##1 724 #define GTEST_3_TYPENAMES_(T) typename T##0, typename T##1, typename T##2 725 #define GTEST_4_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ 727 #define GTEST_5_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ 728 typename T##3, typename T##4 729 #define GTEST_6_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ 730 typename T##3, typename T##4, typename T##5 731 #define GTEST_7_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ 732 typename T##3, typename T##4, typename T##5, typename T##6 733 #define GTEST_8_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ 734 typename T##3, typename T##4, typename T##5, typename T##6, typename T##7 735 #define GTEST_9_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ 736 typename T##3, typename T##4, typename T##5, typename T##6, \ 737 typename T##7, typename T##8 738 #define GTEST_10_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ 739 typename T##3, typename T##4, typename T##5, typename T##6, \ 740 typename T##7, typename T##8, typename T##9 750 template <
typename T0 = void,
typename T1 = void,
typename T2 = void,
751 typename T3 = void,
typename T4 = void,
typename T5 = void,
752 typename T6 = void,
typename T7 = void,
typename T8 = void,
758 namespace gtest_internal
762 template <
typename T>
764 template <
typename T>
768 #define GTEST_BY_REF_(T) typename ::std::tr1::gtest_internal::ByRef<T>::type 772 template <
typename T>
774 template <
typename T>
778 #define GTEST_ADD_REF_(T) typename ::std::tr1::gtest_internal::AddRef<T>::type 781 template <
int k>
class Get;
785 template <
bool kIndexVal
id,
int kIndex,
class Tuple>
788 template <GTEST_10_TYPENAMES_(T)>
794 template <GTEST_10_TYPENAMES_(T)>
800 template <GTEST_10_TYPENAMES_(T)>
806 template <GTEST_10_TYPENAMES_(T)>
812 template <GTEST_10_TYPENAMES_(T)>
818 template <GTEST_10_TYPENAMES_(T)>
824 template <GTEST_10_TYPENAMES_(T)>
830 template <GTEST_10_TYPENAMES_(T)>
836 template <GTEST_10_TYPENAMES_(T)>
842 template <GTEST_10_TYPENAMES_(T)>
859 template <GTEST_1_TYPENAMES_(T)>
860 class GTEST_1_TUPLE_(T)
869 tuple(
const tuple & t) : f0_(t.
f0_) {}
871 template <GTEST_1_TYPENAMES_(U)>
874 tuple & operator=(
const tuple & t) {
return CopyFrom(t); }
876 template <GTEST_1_TYPENAMES_(U)>
884 template <GTEST_1_TYPENAMES_(U)>
894 template <GTEST_2_TYPENAMES_(T)>
895 class GTEST_2_TUPLE_(T)
900 tuple() : f0_(), f1_() {}
905 tuple(
const tuple & t) : f0_(t.
f0_), f1_(t.
f1_) {}
907 template <GTEST_2_TYPENAMES_(U)>
909 template <
typename U0,
typename U1>
910 tuple(const ::std::pair<U0, U1> & p) : f0_(p.first), f1_(p.second) {}
912 tuple & operator=(
const tuple & t) {
return CopyFrom(t); }
914 template <GTEST_2_TYPENAMES_(U)>
919 template <
typename U0,
typename U1>
920 tuple & operator=(const ::std::pair<U0, U1> & p)
929 template <GTEST_2_TYPENAMES_(U)>
941 template <GTEST_3_TYPENAMES_(T)>
942 class GTEST_3_TUPLE_(T)
947 tuple() : f0_(), f1_(), f2_() {}
952 tuple(
const tuple & t) : f0_(t.
f0_), f1_(t.
f1_), f2_(t.
f2_) {}
954 template <GTEST_3_TYPENAMES_(U)>
955 tuple(
const GTEST_3_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_) {}
957 tuple & operator=(
const tuple & t) {
return CopyFrom(t); }
959 template <GTEST_3_TYPENAMES_(U)>
967 template <GTEST_3_TYPENAMES_(U)>
981 template <GTEST_4_TYPENAMES_(T)>
982 class GTEST_4_TUPLE_(T)
987 tuple() : f0_(), f1_(), f2_(), f3_() {}
993 tuple(
const tuple & t) : f0_(t.
f0_), f1_(t.
f1_), f2_(t.
f2_), f3_(t.
f3_) {}
995 template <GTEST_4_TYPENAMES_(U)>
996 tuple(
const GTEST_4_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
999 tuple & operator=(
const tuple & t) {
return CopyFrom(t); }
1001 template <GTEST_4_TYPENAMES_(U)>
1009 template <GTEST_4_TYPENAMES_(U)>
1025 template <GTEST_5_TYPENAMES_(T)>
1026 class GTEST_5_TUPLE_(T)
1031 tuple() : f0_(), f1_(), f2_(), f3_(), f4_() {}
1035 GTEST_BY_REF_(T4)
f4) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4) {}
1037 tuple(
const tuple & t) : f0_(t.
f0_), f1_(t.
f1_), f2_(t.
f2_), f3_(t.
f3_),
1040 template <GTEST_5_TYPENAMES_(U)>
1041 tuple(
const GTEST_5_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
1042 f3_(t.f3_), f4_(t.f4_) {}
1044 tuple & operator=(
const tuple & t) {
return CopyFrom(t); }
1046 template <GTEST_5_TYPENAMES_(U)>
1054 template <GTEST_5_TYPENAMES_(U)>
1072 template <GTEST_6_TYPENAMES_(T)>
1073 class GTEST_6_TUPLE_(T)
1078 tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_() {}
1085 tuple(
const tuple & t) : f0_(t.
f0_), f1_(t.
f1_), f2_(t.
f2_), f3_(t.
f3_),
1086 f4_(t.
f4_), f5_(t.
f5_) {}
1088 template <GTEST_6_TYPENAMES_(U)>
1089 tuple(
const GTEST_6_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
1090 f3_(t.f3_), f4_(t.f4_), f5_(t.f5_) {}
1092 tuple & operator=(
const tuple & t) {
return CopyFrom(t); }
1094 template <GTEST_6_TYPENAMES_(U)>
1102 template <GTEST_6_TYPENAMES_(U)>
1122 template <GTEST_7_TYPENAMES_(T)>
1123 class GTEST_7_TUPLE_(T)
1128 tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_() {}
1133 f3_(f3), f4_(f4), f5_(f5), f6_(f6) {}
1135 tuple(
const tuple & t) : f0_(t.
f0_), f1_(t.
f1_), f2_(t.
f2_), f3_(t.
f3_),
1138 template <GTEST_7_TYPENAMES_(U)>
1139 tuple(
const GTEST_7_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
1140 f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_) {}
1142 tuple & operator=(
const tuple & t) {
return CopyFrom(t); }
1144 template <GTEST_7_TYPENAMES_(U)>
1152 template <GTEST_7_TYPENAMES_(U)>
1174 template <GTEST_8_TYPENAMES_(T)>
1175 class GTEST_8_TUPLE_(T)
1180 tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_() {}
1186 f5_(f5), f6_(f6), f7_(f7) {}
1188 tuple(
const tuple & t) : f0_(t.
f0_), f1_(t.
f1_), f2_(t.
f2_), f3_(t.
f3_),
1191 template <GTEST_8_TYPENAMES_(U)>
1192 tuple(
const GTEST_8_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
1193 f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_) {}
1195 tuple & operator=(
const tuple & t) {
return CopyFrom(t); }
1197 template <GTEST_8_TYPENAMES_(U)>
1205 template <GTEST_8_TYPENAMES_(U)>
1229 template <GTEST_9_TYPENAMES_(T)>
1230 class GTEST_9_TUPLE_(T)
1235 tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_(), f8_() {}
1241 f5_(f5), f6_(f6), f7_(f7), f8_(f8) {}
1243 tuple(
const tuple & t) : f0_(t.
f0_), f1_(t.
f1_), f2_(t.
f2_), f3_(t.
f3_),
1246 template <GTEST_9_TYPENAMES_(U)>
1247 tuple(
const GTEST_9_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
1248 f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_) {}
1250 tuple & operator=(
const tuple & t) {
return CopyFrom(t); }
1252 template <GTEST_9_TYPENAMES_(U)>
1260 template <GTEST_9_TYPENAMES_(U)>
1286 template <GTEST_10_TYPENAMES_(T)>
1292 tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_(), f8_(),
1299 f3_(f3), f4_(f4), f5_(f5), f6_(f6), f7_(f7), f8_(f8), f9_(f9) {}
1301 tuple(
const tuple & t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_),
1302 f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_), f9_(t.f9_) {}
1304 template <GTEST_10_TYPENAMES_(U)>
1306 f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_),
1311 template <GTEST_10_TYPENAMES_(U)>
1319 template <GTEST_10_TYPENAMES_(U)>
1355 template <GTEST_1_TYPENAMES_(T)>
1361 template <GTEST_2_TYPENAMES_(T)>
1367 template <GTEST_3_TYPENAMES_(T)>
1373 template <GTEST_4_TYPENAMES_(T)>
1380 template <GTEST_5_TYPENAMES_(T)>
1382 const T3 & f3,
const T4 & f4)
1387 template <GTEST_6_TYPENAMES_(T)>
1389 const T3 & f3,
const T4 & f4,
const T5 & f5)
1394 template <GTEST_7_TYPENAMES_(T)>
1396 const T3 & f3,
const T4 & f4,
const T5 & f5,
const T6 & f6)
1401 template <GTEST_8_TYPENAMES_(T)>
1403 const T3 & f3,
const T4 & f4,
const T5 & f5,
const T6 & f6,
const T7 & f7)
1408 template <GTEST_9_TYPENAMES_(T)>
1410 const T3 & f3,
const T4 & f4,
const T5 & f5,
const T6 & f6,
const T7 & f7,
1416 template <GTEST_10_TYPENAMES_(T)>
1418 const T3 & f3,
const T4 & f4,
const T5 & f5,
const T6 & f6,
const T7 & f7,
1419 const T8 & f8,
const T9 &
f9)
1428 template <GTEST_0_TYPENAMES_(T)>
1431 static const int value = 0;
1434 template <GTEST_1_TYPENAMES_(T)>
1437 static const int value = 1;
1440 template <GTEST_2_TYPENAMES_(T)>
1443 static const int value = 2;
1446 template <GTEST_3_TYPENAMES_(T)>
1449 static const int value = 3;
1452 template <GTEST_4_TYPENAMES_(T)>
1455 static const int value = 4;
1458 template <GTEST_5_TYPENAMES_(T)>
1461 static const int value = 5;
1464 template <GTEST_6_TYPENAMES_(T)>
1467 static const int value = 6;
1470 template <GTEST_7_TYPENAMES_(T)>
1473 static const int value = 7;
1476 template <GTEST_8_TYPENAMES_(T)>
1479 static const int value = 8;
1482 template <GTEST_9_TYPENAMES_(T)>
1485 static const int value = 9;
1488 template <GTEST_10_TYPENAMES_(T)>
1491 static const int value = 10;
1494 template <
int k,
class Tuple>
1498 k < (tuple_size<Tuple>::value), k, Tuple>::
type type;
1501 #define GTEST_TUPLE_ELEMENT_(k, Tuple) typename tuple_element<k, Tuple >::type 1505 namespace gtest_internal
1512 template <
class Tuple>
1514 Field(Tuple & t) {
return t.f0_; }
1516 template <
class Tuple>
1518 ConstField(const Tuple & t) {
return t.f0_; }
1525 template <
class Tuple>
1527 Field(Tuple & t) {
return t.f1_; }
1529 template <
class Tuple>
1531 ConstField(const Tuple & t) {
return t.f1_; }
1538 template <
class Tuple>
1540 Field(Tuple & t) {
return t.f2_; }
1542 template <
class Tuple>
1544 ConstField(const Tuple & t) {
return t.f2_; }
1551 template <
class Tuple>
1553 Field(Tuple & t) {
return t.f3_; }
1555 template <
class Tuple>
1557 ConstField(const Tuple & t) {
return t.f3_; }
1564 template <
class Tuple>
1566 Field(Tuple & t) {
return t.f4_; }
1568 template <
class Tuple>
1570 ConstField(const Tuple & t) {
return t.f4_; }
1577 template <
class Tuple>
1579 Field(Tuple & t) {
return t.f5_; }
1581 template <
class Tuple>
1583 ConstField(const Tuple & t) {
return t.f5_; }
1590 template <
class Tuple>
1592 Field(Tuple & t) {
return t.f6_; }
1594 template <
class Tuple>
1596 ConstField(const Tuple & t) {
return t.f6_; }
1603 template <
class Tuple>
1605 Field(Tuple & t) {
return t.f7_; }
1607 template <
class Tuple>
1609 ConstField(const Tuple & t) {
return t.f7_; }
1616 template <
class Tuple>
1618 Field(Tuple & t) {
return t.f8_; }
1620 template <
class Tuple>
1622 ConstField(const Tuple & t) {
return t.f8_; }
1629 template <
class Tuple>
1631 Field(Tuple & t) {
return t.f9_; }
1633 template <
class Tuple>
1635 ConstField(const Tuple & t) {
return t.f9_; }
1640 template <
int k, GTEST_10_TYPENAMES_(T)>
1647 template <
int k, GTEST_10_TYPENAMES_(T)>
1658 namespace gtest_internal
1665 template <
int kSize1,
int kSize2>
1671 template <
class Tuple1,
class Tuple2>
1681 template <
class Tuple1,
class Tuple2>
1691 template <GTEST_10_TYPENAMES_(T), GTEST_10_TYPENAMES_(U)>
1700 template <GTEST_10_TYPENAMES_(T), GTEST_10_TYPENAMES_(U)>
1710 #undef GTEST_0_TUPLE_ 1711 #undef GTEST_1_TUPLE_ 1712 #undef GTEST_2_TUPLE_ 1713 #undef GTEST_3_TUPLE_ 1714 #undef GTEST_4_TUPLE_ 1715 #undef GTEST_5_TUPLE_ 1716 #undef GTEST_6_TUPLE_ 1717 #undef GTEST_7_TUPLE_ 1718 #undef GTEST_8_TUPLE_ 1719 #undef GTEST_9_TUPLE_ 1720 #undef GTEST_10_TUPLE_ 1722 #undef GTEST_0_TYPENAMES_ 1723 #undef GTEST_1_TYPENAMES_ 1724 #undef GTEST_2_TYPENAMES_ 1725 #undef GTEST_3_TYPENAMES_ 1726 #undef GTEST_4_TYPENAMES_ 1727 #undef GTEST_5_TYPENAMES_ 1728 #undef GTEST_6_TYPENAMES_ 1729 #undef GTEST_7_TYPENAMES_ 1730 #undef GTEST_8_TYPENAMES_ 1731 #undef GTEST_9_TYPENAMES_ 1732 #undef GTEST_10_TYPENAMES_ 1734 #undef GTEST_DECLARE_TUPLE_AS_FRIEND_ 1735 #undef GTEST_BY_REF_ 1736 #undef GTEST_ADD_REF_ 1737 #undef GTEST_TUPLE_ELEMENT_ 1739 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_ 1740 # elif GTEST_ENV_HAS_STD_TUPLE_ 1753 using ::std::tuple_element;
1754 using ::std::tuple_size;
1758 # elif GTEST_OS_SYMBIAN 1765 # ifdef BOOST_HAS_TR1_TUPLE 1766 # undef BOOST_HAS_TR1_TUPLE 1767 # endif // BOOST_HAS_TR1_TUPLE 1771 # define BOOST_TR1_DETAIL_CONFIG_HPP_INCLUDED 1774 # elif defined(__GNUC__) && (GTEST_GCC_VER_ >= 40000) 1778 # if !GTEST_HAS_RTTI && GTEST_GCC_VER_ < 40302 1784 # define _TR1_FUNCTIONAL 1 1785 # include <tr1/tuple> 1786 # undef _TR1_FUNCTIONAL // Allows the user to #include 1789 # include <tr1/tuple> 1790 # endif // !GTEST_HAS_RTTI && GTEST_GCC_VER_ < 40302 1796 # endif // GTEST_USE_OWN_TR1_TUPLE 1798 #endif // GTEST_HAS_TR1_TUPLE 1804 #ifndef GTEST_HAS_CLONE 1807 # if GTEST_OS_LINUX && !defined(__ia64__) 1808 # if GTEST_OS_LINUX_ANDROID 1810 # if defined(__arm__) && __ANDROID_API__ >= 9 1811 # define GTEST_HAS_CLONE 1 1813 # define GTEST_HAS_CLONE 0 1816 # define GTEST_HAS_CLONE 1 1819 # define GTEST_HAS_CLONE 0 1820 # endif // GTEST_OS_LINUX && !defined(__ia64__) 1822 #endif // GTEST_HAS_CLONE 1826 #ifndef GTEST_HAS_STREAM_REDIRECTION 1829 # if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_SYMBIAN 1830 # define GTEST_HAS_STREAM_REDIRECTION 0 1832 # define GTEST_HAS_STREAM_REDIRECTION 1 1833 # endif // !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_SYMBIAN 1834 #endif // GTEST_HAS_STREAM_REDIRECTION 1840 #if (GTEST_OS_LINUX || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \ 1841 (GTEST_OS_MAC && !GTEST_OS_IOS) || GTEST_OS_IOS_SIMULATOR || \ 1842 (GTEST_OS_WINDOWS_DESKTOP && _MSC_VER >= 1400) || \ 1843 GTEST_OS_WINDOWS_MINGW || GTEST_OS_AIX || GTEST_OS_HPUX || \ 1844 GTEST_OS_OPENBSD || GTEST_OS_QNX) 1845 # define GTEST_HAS_DEATH_TEST 1 1852 #define GTEST_HAS_PARAM_TEST 1 1858 #if defined(__GNUC__) || (_MSC_VER >= 1400) || defined(__SUNPRO_CC) || \ 1859 defined(__IBMCPP__) || defined(__HP_aCC) 1860 # define GTEST_HAS_TYPED_TEST 1 1861 # define GTEST_HAS_TYPED_TEST_P 1 1868 #if GTEST_HAS_PARAM_TEST && GTEST_HAS_TR1_TUPLE && !defined(__SUNPRO_CC) 1869 # define GTEST_HAS_COMBINE 1 1873 #define GTEST_WIDE_STRING_USES_UTF16_ \ 1874 (GTEST_OS_WINDOWS || GTEST_OS_CYGWIN || GTEST_OS_SYMBIAN || GTEST_OS_AIX) 1878 # define GTEST_CAN_STREAM_RESULTS_ 1 1891 #ifdef __INTEL_COMPILER 1892 # define GTEST_AMBIGUOUS_ELSE_BLOCKER_ 1894 # define GTEST_AMBIGUOUS_ELSE_BLOCKER_ switch (0) case 0: default: // NOLINT 1908 #if defined(__GNUC__) && !defined(COMPILER_ICC) 1909 # define GTEST_ATTRIBUTE_UNUSED_ __attribute__ ((unused)) 1911 # define GTEST_ATTRIBUTE_UNUSED_ 1916 #define GTEST_DISALLOW_ASSIGN_(type)\ 1917 void operator=(type const &) 1921 #define GTEST_DISALLOW_COPY_AND_ASSIGN_(type)\ 1922 type(type const &);\ 1923 GTEST_DISALLOW_ASSIGN_(type) 1930 #if defined(__GNUC__) && (GTEST_GCC_VER_ >= 30400) && !defined(COMPILER_ICC) 1931 # define GTEST_MUST_USE_RESULT_ __attribute__ ((warn_unused_result)) 1933 # define GTEST_MUST_USE_RESULT_ 1934 #endif // __GNUC__ && (GTEST_GCC_VER_ >= 30400) && !COMPILER_ICC 1939 #ifndef GTEST_HAS_SEH 1942 # if defined(_MSC_VER) || defined(__BORLANDC__) 1944 # define GTEST_HAS_SEH 1 1947 # define GTEST_HAS_SEH 0 1950 #endif // GTEST_HAS_SEH 1954 # if GTEST_LINKED_AS_SHARED_LIBRARY 1955 # define GTEST_API_ __declspec(dllimport) 1956 # elif GTEST_CREATE_SHARED_LIBRARY 1957 # define GTEST_API_ __declspec(dllexport) 1968 # define GTEST_NO_INLINE_ __attribute__((noinline)) 1970 # define GTEST_NO_INLINE_ 1974 #if defined(__GLIBCXX__) || defined(_LIBCPP_VERSION) 1975 # define GTEST_HAS_CXXABI_H_ 1 1977 # define GTEST_HAS_CXXABI_H_ 0 2013 #define GTEST_COMPILE_ASSERT_(expr, msg) \ 2014 typedef ::testing::internal::CompileAssert<(static_cast<bool>(expr))> \ 2015 msg[static_cast<bool>(expr) ? 1 : -1] GTEST_ATTRIBUTE_UNUSED_ 2061 template <
typename T1,
typename T2>
2064 template <
typename T>
2067 #if GTEST_HAS_GLOBAL_STRING 2071 #endif // GTEST_HAS_GLOBAL_STRING 2073 #if GTEST_HAS_GLOBAL_WSTRING 2075 #elif GTEST_HAS_STD_WSTRING 2077 #endif // GTEST_HAS_GLOBAL_WSTRING 2087 template <
typename T>
2098 T *
get()
const {
return ptr_; }
2102 T *
const ptr = ptr_;
2111 if (
IsTrue(
sizeof(T) > 0))
2140 #if GTEST_HAS_GLOBAL_STRING 2144 #endif // GTEST_HAS_GLOBAL_STRING 2146 RE(
const char * regex) { Init(regex); }
2161 return FullMatch(str.c_str(), re);
2165 return PartialMatch(str.c_str(), re);
2168 #if GTEST_HAS_GLOBAL_STRING 2172 return FullMatch(str.c_str(), re);
2176 return PartialMatch(str.c_str(), re);
2179 #endif // GTEST_HAS_GLOBAL_STRING 2181 static bool FullMatch(
const char * str,
const RE & re);
2182 static bool PartialMatch(
const char * str,
const RE & re);
2185 void Init(
const char * regex);
2193 #if GTEST_USES_POSIX_RE 2198 #else // GTEST_USES_SIMPLE_RE 2200 const char * full_pattern_;
2250 #define GTEST_LOG_(severity) \ 2251 ::testing::internal::GTestLog(::testing::internal::GTEST_##severity, \ 2252 __FILE__, __LINE__).GetStream() 2271 #define GTEST_CHECK_(condition) \ 2272 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ 2273 if (::testing::internal::IsTrue(condition)) \ 2276 GTEST_LOG_(FATAL) << "Condition " #condition " failed. " 2283 #define GTEST_CHECK_POSIX_SUCCESS_(posix_call) \ 2284 if (const int gtest_error = (posix_call)) \ 2285 GTEST_LOG_(FATAL) << #posix_call << "failed with error " \ 2308 template<
typename To>
2332 template<
typename To,
typename From>
2342 ::testing::internal::ImplicitCast_<From *>(to);
2347 GTEST_CHECK_(f == NULL || dynamic_cast<To>(f) != NULL);
2349 return static_cast<To>(f);
2357 template <
class Derived,
class Base>
2362 return dynamic_cast<Derived *
>(base);
2364 return static_cast<Derived *
>(base);
2368 #if GTEST_HAS_STREAM_REDIRECTION 2381 #endif // GTEST_HAS_STREAM_REDIRECTION 2384 #if GTEST_HAS_DEATH_TEST 2386 const ::std::vector<testing::internal::string> & GetInjectableArgvs();
2387 void SetInjectableArgvs(const ::std::vector<testing::internal::string> *
2391 extern ::std::vector<testing::internal::string> g_argvs;
2393 #endif // GTEST_HAS_DEATH_TEST 2397 #if GTEST_HAS_PTHREAD 2402 inline void SleepMilliseconds(
int n)
2404 const timespec
time =
2409 nanosleep(&time, NULL);
2421 Notification() : notified_(
false)
2427 pthread_mutex_destroy(&mutex_);
2434 pthread_mutex_lock(&mutex_);
2436 pthread_mutex_unlock(&mutex_);
2441 void WaitForNotification()
2445 pthread_mutex_lock(&mutex_);
2446 const bool notified = notified_;
2447 pthread_mutex_unlock(&mutex_);
2452 SleepMilliseconds(10);
2457 pthread_mutex_t mutex_;
2468 class ThreadWithParamBase
2471 virtual ~ThreadWithParamBase() {}
2472 virtual void Run() = 0;
2481 extern "C" inline void * ThreadFuncWithCLinkage(
void * thread)
2483 static_cast<ThreadWithParamBase *
>(thread)->
Run();
2499 template <
typename T>
2500 class ThreadWithParam :
public ThreadWithParamBase
2503 typedef void (*UserThreadFunc)(T);
2506 UserThreadFunc func, T
param, Notification * thread_can_start)
2509 thread_can_start_(thread_can_start),
2512 ThreadWithParamBase *
const base =
this;
2516 pthread_create(&thread_, 0, &ThreadFuncWithCLinkage, base));
2518 ~ThreadWithParam() { Join(); }
2531 if (thread_can_start_ != NULL)
2532 { thread_can_start_->WaitForNotification(); }
2538 const UserThreadFunc func_;
2542 Notification *
const thread_can_start_;
2575 owner_ = pthread_self();
2592 void AssertHeld()
const 2594 GTEST_CHECK_(has_owner_ && pthread_equal(owner_, pthread_self()))
2595 <<
"The current thread is not holding the mutex @" <<
this;
2604 pthread_mutex_t mutex_;
2616 # define GTEST_DECLARE_STATIC_MUTEX_(mutex) \ 2617 extern ::testing::internal::MutexBase mutex 2625 # define GTEST_DEFINE_STATIC_MUTEX_(mutex) \ 2626 ::testing::internal::MutexBase mutex = { PTHREAD_MUTEX_INITIALIZER, false } 2630 class Mutex :
public MutexBase
2654 : mutex_(mutex) { mutex_->Lock(); }
2659 MutexBase *
const mutex_;
2672 class ThreadLocalValueHolderBase
2675 virtual ~ThreadLocalValueHolderBase() {}
2680 extern "C" inline void DeleteThreadLocalValue(
void * value_holder)
2682 delete static_cast<ThreadLocalValueHolderBase *
>(value_holder);
2714 template <
typename T>
2720 explicit ThreadLocal(
const T & value) : key_(CreateKey()),
2726 DeleteThreadLocalValue(pthread_getspecific(key_));
2733 T * pointer() {
return GetOrCreateValue(); }
2734 const T * pointer()
const {
return GetOrCreateValue(); }
2735 const T &
get()
const {
return *pointer(); }
2736 void set(
const T & value) { *pointer() = value; }
2740 class ValueHolder :
public ThreadLocalValueHolderBase
2743 explicit ValueHolder(
const T & value) : value_(value) {}
2745 T * pointer() {
return &value_; }
2752 static pthread_key_t CreateKey()
2758 pthread_key_create(&key, &DeleteThreadLocalValue));
2762 T * GetOrCreateValue()
const 2764 ThreadLocalValueHolderBase *
const holder =
2765 static_cast<ThreadLocalValueHolderBase *
>(pthread_getspecific(key_));
2769 return CheckedDowncastToActualType<ValueHolder>(holder)->pointer();
2772 ValueHolder *
const new_holder =
new ValueHolder(default_);
2773 ThreadLocalValueHolderBase *
const holder_base = new_holder;
2775 return new_holder->pointer();
2779 const pthread_key_t key_;
2785 # define GTEST_IS_THREADSAFE 1 2787 #else // GTEST_HAS_PTHREAD 2803 # define GTEST_DECLARE_STATIC_MUTEX_(mutex) \ 2804 extern ::testing::internal::Mutex mutex 2806 # define GTEST_DEFINE_STATIC_MUTEX_(mutex) ::testing::internal::Mutex mutex 2816 template <
typename T>
2824 const T &
get()
const {
return value_; }
2825 void set(
const T & value) { value_ = value; }
2832 # define GTEST_IS_THREADSAFE 0 2834 #endif // GTEST_HAS_PTHREAD 2846 #if defined(__SYMBIAN32__) || defined(__IBMCPP__) || defined(__SUNPRO_CC) 2849 # define GTEST_ELLIPSIS_NEEDS_POD_ 1 2851 # define GTEST_CAN_COMPARE_NULL 1 2858 #if defined(__SYMBIAN32__) || defined(__IBMCPP__) 2859 # define GTEST_NEEDS_IS_POINTER_ 1 2862 template <
bool bool_value>
2866 static const bool value = bool_value;
2873 template <
typename T>
2876 template <
typename T>
2879 template <
typename Iterator>
2885 template <
typename T>
2891 template <
typename T>
2897 #if GTEST_OS_WINDOWS 2898 # define GTEST_PATH_SEP_ "\\" 2899 # define GTEST_HAS_ALT_PATH_SEP_ 1 2903 # define GTEST_PATH_SEP_ "/" 2904 # define GTEST_HAS_ALT_PATH_SEP_ 0 2906 #endif // GTEST_OS_WINDOWS 2917 return isalpha(static_cast<unsigned char>(ch)) != 0;
2921 return isalnum(static_cast<unsigned char>(ch)) != 0;
2925 return isdigit(static_cast<unsigned char>(ch)) != 0;
2929 return islower(static_cast<unsigned char>(ch)) != 0;
2933 return isspace(static_cast<unsigned char>(ch)) != 0;
2937 return isupper(static_cast<unsigned char>(ch)) != 0;
2941 return isxdigit(static_cast<unsigned char>(ch)) != 0;
2945 const unsigned char low_byte =
static_cast<unsigned char>(ch);
2946 return ch == low_byte && isxdigit(low_byte) != 0;
2951 return static_cast<char>(tolower(static_cast<unsigned char>(ch)));
2955 return static_cast<char>(toupper(static_cast<unsigned char>(ch)));
2969 #if GTEST_OS_WINDOWS 2971 typedef struct _stat StatStruct;
2973 # ifdef __BORLANDC__ 2974 inline int IsATTY(
int fd) {
return isatty(fd); }
2975 inline int StrCaseCmp(
const char * s1,
const char * s2)
2977 return stricmp(s1, s2);
2979 inline char *
StrDup(
const char * src) {
return strdup(src); }
2980 # else // !__BORLANDC__ 2981 # if GTEST_OS_WINDOWS_MOBILE 2982 inline int IsATTY(
int ) {
return 0; }
2984 inline int IsATTY(
int fd) {
return _isatty(fd); }
2985 # endif // GTEST_OS_WINDOWS_MOBILE 2986 inline int StrCaseCmp(
const char * s1,
const char * s2)
2988 return _stricmp(s1, s2);
2990 inline char *
StrDup(
const char * src) {
return _strdup(src); }
2991 # endif // __BORLANDC__ 2993 # if GTEST_OS_WINDOWS_MOBILE 2994 inline int FileNo(FILE * file) {
return reinterpret_cast<int>(_fileno(file)); }
2998 inline int FileNo(FILE * file) {
return _fileno(file); }
2999 inline int Stat(
const char * path, StatStruct * buf) {
return _stat(path, buf); }
3000 inline int RmDir(
const char * dir) {
return _rmdir(dir); }
3001 inline bool IsDir(
const StatStruct & st)
3003 return (_S_IFDIR & st.st_mode) != 0;
3005 # endif // GTEST_OS_WINDOWS_MOBILE 3009 typedef struct stat StatStruct;
3011 inline int FileNo(FILE * file) {
return fileno(file); }
3012 inline int IsATTY(
int fd) {
return isatty(fd); }
3013 inline int Stat(
const char * path, StatStruct * buf) {
return stat(path, buf); }
3016 return strcasecmp(s1, s2);
3018 inline char *
StrDup(
const char * src) {
return strdup(src); }
3019 inline int RmDir(
const char * dir) {
return rmdir(dir); }
3020 inline bool IsDir(
const StatStruct & st) {
return S_ISDIR(st.st_mode); }
3022 #endif // GTEST_OS_WINDOWS 3028 # pragma warning(push) 3029 # pragma warning(disable:4996) 3032 inline const char *
StrNCpy(
char * dest,
const char * src,
size_t n)
3034 return strncpy(dest, src, n);
3041 #if !GTEST_OS_WINDOWS_MOBILE 3042 inline int ChDir(
const char * dir) {
return chdir(dir); }
3044 inline FILE *
FOpen(
const char * path,
const char * mode)
3046 return fopen(path, mode);
3048 #if !GTEST_OS_WINDOWS_MOBILE 3049 inline FILE *
FReopen(
const char * path,
const char * mode, FILE * stream)
3051 return freopen(path, mode, stream);
3053 inline FILE *
FDOpen(
int fd,
const char * mode) {
return fdopen(fd, mode); }
3055 inline int FClose(FILE * fp) {
return fclose(fp); }
3056 #if !GTEST_OS_WINDOWS_MOBILE 3059 return static_cast<int>(
read(fd, buf, count));
3063 return static_cast<int>(
write(fd, buf, count));
3065 inline int Close(
int fd) {
return close(fd); }
3066 inline const char *
StrError(
int errnum) {
return strerror(errnum); }
3070 #if GTEST_OS_WINDOWS_MOBILE 3073 #elif defined(__BORLANDC__) || defined(__SunOS_5_8) || defined(__SunOS_5_9) 3076 const char *
const env = getenv(name);
3077 return (env != NULL && env[0] !=
'\0') ? env : NULL;
3079 return getenv(name);
3084 # pragma warning(pop) // Restores the warning state. 3087 #if GTEST_OS_WINDOWS_MOBILE 3094 #endif // GTEST_OS_WINDOWS_MOBILE 3103 #if _MSC_VER >= 1400 && !GTEST_OS_WINDOWS_MOBILE 3105 # define GTEST_SNPRINTF_(buffer, size, format, ...) \ 3106 _snprintf_s(buffer, size, size, format, __VA_ARGS__) 3107 #elif defined(_MSC_VER) 3110 # define GTEST_SNPRINTF_ _snprintf 3112 # define GTEST_SNPRINTF_ snprintf 3123 ~(
static_cast<BiggestInt
>(1) << (8 *
sizeof(BiggestInt) - 1));
3143 template <
size_t size>
3170 #if GTEST_OS_WINDOWS 3171 typedef __int64
Int;
3172 typedef unsigned __int64
UInt;
3176 #endif // GTEST_OS_WINDOWS 3189 #define GTEST_FLAG(name) FLAGS_gtest_##name 3192 #define GTEST_DECLARE_bool_(name) GTEST_API_ extern bool GTEST_FLAG(name) 3193 #define GTEST_DECLARE_int32_(name) \ 3194 GTEST_API_ extern ::testing::internal::Int32 GTEST_FLAG(name) 3195 #define GTEST_DECLARE_string_(name) \ 3196 GTEST_API_ extern ::std::string GTEST_FLAG(name) 3199 #define GTEST_DEFINE_bool_(name, default_val, doc) \ 3200 GTEST_API_ bool GTEST_FLAG(name) = (default_val) 3201 #define GTEST_DEFINE_int32_(name, default_val, doc) \ 3202 GTEST_API_ ::testing::internal::Int32 GTEST_FLAG(name) = (default_val) 3203 #define GTEST_DEFINE_string_(name, default_val, doc) \ 3204 GTEST_API_ ::std::string GTEST_FLAG(name) = (default_val) 3207 #define GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks) 3208 #define GTEST_LOCK_EXCLUDED_(locks) 3227 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ 3230 # include <stdlib.h> 3231 # include <sys/types.h> 3232 # include <sys/wait.h> 3233 # include <unistd.h> 3234 #endif // GTEST_OS_LINUX 3236 #if GTEST_HAS_EXCEPTIONS 3237 # include <stdexcept> 3292 #ifndef GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ 3293 #define GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ 3300 void operator<<(
const testing::internal::Secret &,
int);
3336 typedef std::ostream & (*BasicNarrowIoManip)(std::ostream &);
3349 explicit Message(
const char * str) : ss_(new ::
std::stringstream)
3354 #if GTEST_OS_SYMBIAN 3356 template <
typename T>
3364 template <
typename T>
3381 using ::operator <<;
3399 template <
typename T>
3402 if (pointer == NULL)
3414 #endif // GTEST_OS_SYMBIAN 3431 return *
this << (b ?
"true" :
"false");
3439 #if GTEST_HAS_STD_WSTRING 3443 #endif // GTEST_HAS_STD_WSTRING 3445 #if GTEST_HAS_GLOBAL_WSTRING 3449 #endif // GTEST_HAS_GLOBAL_WSTRING 3459 #if GTEST_OS_SYMBIAN 3464 template <
typename T>
3467 if (pointer == NULL)
3477 template <
typename T>
3483 using ::operator <<;
3486 #endif // GTEST_OS_SYMBIAN 3493 void operator=(
const Message &);
3509 template <
typename T>
3512 return (
Message() << streamable).GetString();
3518 #endif // GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ 3559 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ 3560 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ 3589 static const char * CloneCString(
const char * c_str);
3591 #if GTEST_OS_WINDOWS_MOBILE 3604 static LPCWSTR AnsiToUtf16(
const char * c_str);
3614 static const char * Utf16ToAnsi(LPCWSTR utf16_str);
3622 static bool CStringEquals(
const char * lhs,
const char * rhs);
3628 static std::string ShowWideCString(
const wchar_t * wide_c_str);
3636 static bool WideCStringEquals(
const wchar_t * lhs,
const wchar_t * rhs);
3659 static bool CaseInsensitiveWideCStringEquals(
const wchar_t * lhs,
3660 const wchar_t * rhs);
3664 static bool EndsWithCaseInsensitive(
3674 static std::string FormatByte(
unsigned char value);
3687 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ 3727 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_ 3728 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_ 3770 const char *
c_str()
const {
return pathname_.c_str(); }
3782 const char * extension);
3800 const char * extension);
3803 bool IsEmpty()
const {
return pathname_.empty(); }
3808 FilePath RemoveTrailingPathSeparator()
const;
3816 FilePath RemoveDirectoryName()
const;
3830 FilePath RemoveExtension(
const char * extension)
const;
3836 bool CreateDirectoriesRecursively()
const;
3842 bool CreateFolder()
const;
3846 bool FileOrDirectoryExists()
const;
3850 bool DirectoryExists()
const;
3855 bool IsDirectory()
const;
3859 bool IsRootDirectory()
const;
3862 bool IsAbsolutePath()
const;
3890 const char * FindLastPathSeparator()
const;
3898 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_ 3942 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ 3943 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ 3948 # if GTEST_HAS_CXXABI_H_ 3949 # include <cxxabi.h> 3950 # elif defined(__HP_aCC) 3951 # include <acxx_demangle.h> 3952 # endif // GTEST_HASH_CXXABI_H_ 3962 template <
typename T>
3967 const char *
const name =
typeid(T).
name();
3968 # if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC) 3972 # if GTEST_HAS_CXXABI_H_ 3973 using abi::__cxa_demangle;
3974 # endif // GTEST_HAS_CXXABI_H_ 3975 char *
const readable_name = __cxa_demangle(name, 0, 0, &status);
3976 const std::string name_str(status == 0 ? readable_name : name);
3977 free(readable_name);
3981 # endif // GTEST_HAS_CXXABI_H_ || __HP_aCC 3987 # endif // GTEST_HAS_RTTI 3990 #if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P 3996 template <
typename T1,
typename T2>
3997 struct AssertTypeEq;
3999 template <
typename T>
4000 struct AssertTypeEq<T, T>
4023 template <
typename T1>
4027 typedef Types0 Tail;
4029 template <
typename T1,
typename T2>
4033 typedef Types1<T2> Tail;
4036 template <
typename T1,
typename T2,
typename T3>
4040 typedef Types2<T2, T3> Tail;
4043 template <
typename T1,
typename T2,
typename T3,
typename T4>
4047 typedef Types3<T2, T3, T4> Tail;
4050 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
4054 typedef Types4<T2, T3, T4, T5> Tail;
4057 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4062 typedef Types5<T2, T3, T4, T5, T6> Tail;
4065 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4066 typename T6,
typename T7>
4070 typedef Types6<T2, T3, T4, T5, T6, T7> Tail;
4073 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4074 typename T6,
typename T7,
typename T8>
4078 typedef Types7<T2, T3, T4, T5, T6, T7, T8> Tail;
4081 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4082 typename T6,
typename T7,
typename T8,
typename T9>
4086 typedef Types8<T2, T3, T4, T5, T6, T7, T8, T9> Tail;
4089 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4090 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
4094 typedef Types9<T2, T3, T4, T5, T6, T7, T8, T9, T10> Tail;
4097 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4098 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4103 typedef Types10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Tail;
4106 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4107 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4108 typename T11,
typename T12>
4112 typedef Types11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tail;
4115 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4116 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4117 typename T11,
typename T12,
typename T13>
4121 typedef Types12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail;
4124 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4125 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4126 typename T11,
typename T12,
typename T13,
typename T14>
4130 typedef Types13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Tail;
4133 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4134 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4135 typename T11,
typename T12,
typename T13,
typename T14,
typename T15>
4139 typedef Types14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
4143 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4144 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4145 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4150 typedef Types15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4154 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4155 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4156 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4157 typename T16,
typename T17>
4161 typedef Types16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4165 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4166 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4167 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4168 typename T16,
typename T17,
typename T18>
4172 typedef Types17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4173 T16, T17, T18> Tail;
4176 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4177 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4178 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4179 typename T16,
typename T17,
typename T18,
typename T19>
4183 typedef Types18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4184 T16, T17, T18, T19> Tail;
4187 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4188 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4189 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4190 typename T16,
typename T17,
typename T18,
typename T19,
typename T20>
4194 typedef Types19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4195 T16, T17, T18, T19, T20> Tail;
4198 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4199 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4200 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4201 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4206 typedef Types20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4207 T16, T17, T18, T19, T20, T21> Tail;
4210 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4211 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4212 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4213 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4214 typename T21,
typename T22>
4218 typedef Types21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4219 T16, T17, T18, T19, T20, T21, T22> Tail;
4222 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4223 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4224 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4225 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4226 typename T21,
typename T22,
typename T23>
4230 typedef Types22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4231 T16, T17, T18, T19, T20, T21, T22, T23> Tail;
4234 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4235 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4236 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4237 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4238 typename T21,
typename T22,
typename T23,
typename T24>
4242 typedef Types23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4243 T16, T17, T18, T19, T20, T21, T22, T23, T24> Tail;
4246 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4247 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4248 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4249 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4250 typename T21,
typename T22,
typename T23,
typename T24,
typename T25>
4254 typedef Types24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4255 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Tail;
4258 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4259 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4260 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4261 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4262 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4267 typedef Types25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4268 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> Tail;
4271 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4272 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4273 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4274 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4275 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4276 typename T26,
typename T27>
4280 typedef Types26<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4281 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> Tail;
4284 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4285 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4286 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4287 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4288 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4289 typename T26,
typename T27,
typename T28>
4293 typedef Types27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4294 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28> Tail;
4297 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4298 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4299 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4300 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4301 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4302 typename T26,
typename T27,
typename T28,
typename T29>
4306 typedef Types28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4307 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
4311 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4312 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4313 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4314 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4315 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4316 typename T26,
typename T27,
typename T28,
typename T29,
typename T30>
4320 typedef Types29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4321 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4325 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4326 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4327 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4328 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4329 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4330 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4335 typedef Types30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4336 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4340 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4341 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4342 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4343 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4344 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4345 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4346 typename T31,
typename T32>
4350 typedef Types31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4351 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4352 T30, T31, T32> Tail;
4355 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4356 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4357 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4358 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4359 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4360 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4361 typename T31,
typename T32,
typename T33>
4365 typedef Types32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4366 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4367 T30, T31, T32, T33> Tail;
4370 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4371 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4372 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4373 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4374 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4375 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4376 typename T31,
typename T32,
typename T33,
typename T34>
4380 typedef Types33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4381 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4382 T30, T31, T32, T33, T34> Tail;
4385 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4386 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4387 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4388 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4389 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4390 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4391 typename T31,
typename T32,
typename T33,
typename T34,
typename T35>
4395 typedef Types34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4396 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4397 T30, T31, T32, T33, T34, T35> Tail;
4400 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4401 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4402 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4403 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4404 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4405 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4406 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4411 typedef Types35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4412 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4413 T30, T31, T32, T33, T34, T35, T36> Tail;
4416 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4417 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4418 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4419 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4420 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4421 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4422 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4423 typename T36,
typename T37>
4427 typedef Types36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4428 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4429 T30, T31, T32, T33, T34, T35, T36, T37> Tail;
4432 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4433 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4434 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4435 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4436 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4437 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4438 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4439 typename T36,
typename T37,
typename T38>
4443 typedef Types37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4444 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4445 T30, T31, T32, T33, T34, T35, T36, T37, T38> Tail;
4448 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4449 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4450 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4451 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4452 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4453 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4454 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4455 typename T36,
typename T37,
typename T38,
typename T39>
4459 typedef Types38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4460 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4461 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Tail;
4464 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4465 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4466 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4467 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4468 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4469 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4470 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4471 typename T36,
typename T37,
typename T38,
typename T39,
typename T40>
4475 typedef Types39<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4476 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4477 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Tail;
4480 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4481 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4482 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4483 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4484 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4485 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4486 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4487 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4492 typedef Types40<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4493 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4494 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41> Tail;
4497 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4498 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4499 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4500 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4501 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4502 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4503 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4504 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4505 typename T41,
typename T42>
4509 typedef Types41<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4510 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4511 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42> Tail;
4514 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4515 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4516 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4517 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4518 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4519 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4520 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4521 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4522 typename T41,
typename T42,
typename T43>
4526 typedef Types42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4527 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4528 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
4532 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4533 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4534 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4535 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4536 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4537 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4538 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4539 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4540 typename T41,
typename T42,
typename T43,
typename T44>
4544 typedef Types43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4545 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4546 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
4550 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4551 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4552 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4553 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4554 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4555 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4556 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4557 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4558 typename T41,
typename T42,
typename T43,
typename T44,
typename T45>
4562 typedef Types44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4563 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4564 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
4568 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4569 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4570 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4571 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4572 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4573 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4574 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4575 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4576 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
4581 typedef Types45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4582 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4583 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
4584 T44, T45, T46> Tail;
4587 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4588 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4589 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4590 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4591 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4592 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4593 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4594 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4595 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
4596 typename T46,
typename T47>
4600 typedef Types46<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4601 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4602 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
4603 T44, T45, T46, T47> Tail;
4606 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4607 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4608 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4609 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4610 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4611 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4612 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4613 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4614 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
4615 typename T46,
typename T47,
typename T48>
4619 typedef Types47<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4620 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4621 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
4622 T44, T45, T46, T47, T48> Tail;
4625 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4626 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4627 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4628 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4629 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4630 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4631 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4632 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4633 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
4634 typename T46,
typename T47,
typename T48,
typename T49>
4638 typedef Types48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4639 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4640 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
4641 T44, T45, T46, T47, T48, T49> Tail;
4644 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4645 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4646 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4647 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4648 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4649 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4650 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4651 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4652 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
4653 typename T46,
typename T47,
typename T48,
typename T49,
typename T50>
4657 typedef Types49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4658 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4659 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
4660 T44, T45, T46, T47, T48, T49, T50> Tail;
4679 template <
typename T1 = internal::None,
typename T2 = internal::None,
4680 typename T3 = internal::None,
typename T4 = internal::None,
4681 typename T5 = internal::None,
typename T6 = internal::None,
4682 typename T7 = internal::None,
typename T8 = internal::None,
4683 typename T9 = internal::None,
typename T10 = internal::None,
4684 typename T11 = internal::None,
typename T12 = internal::None,
4685 typename T13 = internal::None,
typename T14 = internal::None,
4686 typename T15 = internal::None,
typename T16 = internal::None,
4687 typename T17 = internal::None,
typename T18 = internal::None,
4688 typename T19 = internal::None,
typename T20 = internal::None,
4689 typename T21 = internal::None,
typename T22 = internal::None,
4690 typename T23 = internal::None,
typename T24 = internal::None,
4691 typename T25 = internal::None,
typename T26 = internal::None,
4692 typename T27 = internal::None,
typename T28 = internal::None,
4693 typename T29 = internal::None,
typename T30 = internal::None,
4694 typename T31 = internal::None,
typename T32 = internal::None,
4695 typename T33 = internal::None,
typename T34 = internal::None,
4696 typename T35 = internal::None,
typename T36 = internal::None,
4697 typename T37 = internal::None,
typename T38 = internal::None,
4698 typename T39 = internal::None,
typename T40 = internal::None,
4699 typename T41 = internal::None,
typename T42 = internal::None,
4700 typename T43 = internal::None,
typename T44 = internal::None,
4701 typename T45 = internal::None,
typename T46 = internal::None,
4702 typename T47 = internal::None,
typename T48 = internal::None,
4703 typename T49 = internal::None,
typename T50 = internal::None>
4706 typedef internal::Types50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4707 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
4708 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
4709 T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>
type;
4713 struct Types<internal::None, internal::None, internal::None, internal::None,
4714 internal::None, internal::None, internal::None, internal::None,
4715 internal::None, internal::None, internal::None, internal::None,
4716 internal::None, internal::None, internal::None, internal::None,
4717 internal::None, internal::None, internal::None, internal::None,
4718 internal::None, internal::None, internal::None, internal::None,
4719 internal::None, internal::None, internal::None, internal::None,
4720 internal::None, internal::None, internal::None, internal::None,
4721 internal::None, internal::None, internal::None, internal::None,
4722 internal::None, internal::None, internal::None, internal::None,
4723 internal::None, internal::None, internal::None, internal::None,
4724 internal::None, internal::None, internal::None, internal::None,
4725 internal::None, internal::None>
4727 typedef internal::Types0
type;
4729 template <
typename T1>
4730 struct Types<T1, internal::None, internal::None, internal::None,
4731 internal::None, internal::None, internal::None, internal::None,
4732 internal::None, internal::None, internal::None, internal::None,
4733 internal::None, internal::None, internal::None, internal::None,
4734 internal::None, internal::None, internal::None, internal::None,
4735 internal::None, internal::None, internal::None, internal::None,
4736 internal::None, internal::None, internal::None, internal::None,
4737 internal::None, internal::None, internal::None, internal::None,
4738 internal::None, internal::None, internal::None, internal::None,
4739 internal::None, internal::None, internal::None, internal::None,
4740 internal::None, internal::None, internal::None, internal::None,
4741 internal::None, internal::None, internal::None, internal::None,
4742 internal::None, internal::None>
4744 typedef internal::Types1<T1>
type;
4746 template <
typename T1,
typename T2>
4747 struct Types<T1, T2, internal::None, internal::None, internal::None,
4748 internal::None, internal::None, internal::None, internal::None,
4749 internal::None, internal::None, internal::None, internal::None,
4750 internal::None, internal::None, internal::None, internal::None,
4751 internal::None, internal::None, internal::None, internal::None,
4752 internal::None, internal::None, internal::None, internal::None,
4753 internal::None, internal::None, internal::None, internal::None,
4754 internal::None, internal::None, internal::None, internal::None,
4755 internal::None, internal::None, internal::None, internal::None,
4756 internal::None, internal::None, internal::None, internal::None,
4757 internal::None, internal::None, internal::None, internal::None,
4758 internal::None, internal::None, internal::None, internal::None,
4761 typedef internal::Types2<T1, T2>
type;
4763 template <
typename T1,
typename T2,
typename T3>
4764 struct Types<T1, T2, T3, internal::None, internal::None, internal::None,
4765 internal::None, internal::None, internal::None, internal::None,
4766 internal::None, internal::None, internal::None, internal::None,
4767 internal::None, internal::None, internal::None, internal::None,
4768 internal::None, internal::None, internal::None, internal::None,
4769 internal::None, internal::None, internal::None, internal::None,
4770 internal::None, internal::None, internal::None, internal::None,
4771 internal::None, internal::None, internal::None, internal::None,
4772 internal::None, internal::None, internal::None, internal::None,
4773 internal::None, internal::None, internal::None, internal::None,
4774 internal::None, internal::None, internal::None, internal::None,
4775 internal::None, internal::None, internal::None, internal::None>
4777 typedef internal::Types3<T1, T2, T3>
type;
4779 template <
typename T1,
typename T2,
typename T3,
typename T4>
4780 struct Types<T1, T2, T3, T4, internal::None, internal::None, internal::None,
4781 internal::None, internal::None, internal::None, internal::None,
4782 internal::None, internal::None, internal::None, internal::None,
4783 internal::None, internal::None, internal::None, internal::None,
4784 internal::None, internal::None, internal::None, internal::None,
4785 internal::None, internal::None, internal::None, internal::None,
4786 internal::None, internal::None, internal::None, internal::None,
4787 internal::None, internal::None, internal::None, internal::None,
4788 internal::None, internal::None, internal::None, internal::None,
4789 internal::None, internal::None, internal::None, internal::None,
4790 internal::None, internal::None, internal::None, internal::None,
4791 internal::None, internal::None, internal::None>
4793 typedef internal::Types4<T1, T2, T3, T4>
type;
4795 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
4796 struct Types<T1, T2, T3, T4, T5, internal::None, internal::None,
4797 internal::None, internal::None, internal::None, internal::None,
4798 internal::None, internal::None, internal::None, internal::None,
4799 internal::None, internal::None, internal::None, internal::None,
4800 internal::None, internal::None, internal::None, internal::None,
4801 internal::None, internal::None, internal::None, internal::None,
4802 internal::None, internal::None, internal::None, internal::None,
4803 internal::None, internal::None, internal::None, internal::None,
4804 internal::None, internal::None, internal::None, internal::None,
4805 internal::None, internal::None, internal::None, internal::None,
4806 internal::None, internal::None, internal::None, internal::None,
4807 internal::None, internal::None, internal::None>
4809 typedef internal::Types5<T1, T2, T3, T4, T5>
type;
4811 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4813 struct Types<T1, T2, T3, T4, T5, T6, internal::None, internal::None,
4814 internal::None, internal::None, internal::None, internal::None,
4815 internal::None, internal::None, internal::None, internal::None,
4816 internal::None, internal::None, internal::None, internal::None,
4817 internal::None, internal::None, internal::None, internal::None,
4818 internal::None, internal::None, internal::None, internal::None,
4819 internal::None, internal::None, internal::None, internal::None,
4820 internal::None, internal::None, internal::None, internal::None,
4821 internal::None, internal::None, internal::None, internal::None,
4822 internal::None, internal::None, internal::None, internal::None,
4823 internal::None, internal::None, internal::None, internal::None,
4824 internal::None, internal::None>
4826 typedef internal::Types6<T1, T2, T3, T4, T5, T6>
type;
4828 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4829 typename T6,
typename T7>
4830 struct Types<T1, T2, T3, T4, T5, T6, T7, internal::None, internal::None,
4831 internal::None, internal::None, internal::None, internal::None,
4832 internal::None, internal::None, internal::None, internal::None,
4833 internal::None, internal::None, internal::None, internal::None,
4834 internal::None, internal::None, internal::None, internal::None,
4835 internal::None, internal::None, internal::None, internal::None,
4836 internal::None, internal::None, internal::None, internal::None,
4837 internal::None, internal::None, internal::None, internal::None,
4838 internal::None, internal::None, internal::None, internal::None,
4839 internal::None, internal::None, internal::None, internal::None,
4840 internal::None, internal::None, internal::None, internal::None,
4843 typedef internal::Types7<T1, T2, T3, T4, T5, T6, T7>
type;
4845 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4846 typename T6,
typename T7,
typename T8>
4847 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, internal::None, internal::None,
4848 internal::None, internal::None, internal::None, internal::None,
4849 internal::None, internal::None, internal::None, internal::None,
4850 internal::None, internal::None, internal::None, internal::None,
4851 internal::None, internal::None, internal::None, internal::None,
4852 internal::None, internal::None, internal::None, internal::None,
4853 internal::None, internal::None, internal::None, internal::None,
4854 internal::None, internal::None, internal::None, internal::None,
4855 internal::None, internal::None, internal::None, internal::None,
4856 internal::None, internal::None, internal::None, internal::None,
4857 internal::None, internal::None, internal::None, internal::None>
4859 typedef internal::Types8<T1, T2, T3, T4, T5, T6, T7, T8>
type;
4861 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4862 typename T6,
typename T7,
typename T8,
typename T9>
4863 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, internal::None,
4864 internal::None, internal::None, internal::None, internal::None,
4865 internal::None, internal::None, internal::None, internal::None,
4866 internal::None, internal::None, internal::None, internal::None,
4867 internal::None, internal::None, internal::None, internal::None,
4868 internal::None, internal::None, internal::None, internal::None,
4869 internal::None, internal::None, internal::None, internal::None,
4870 internal::None, internal::None, internal::None, internal::None,
4871 internal::None, internal::None, internal::None, internal::None,
4872 internal::None, internal::None, internal::None, internal::None,
4873 internal::None, internal::None, internal::None, internal::None>
4875 typedef internal::Types9<T1, T2, T3, T4, T5, T6, T7, T8, T9>
type;
4877 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4878 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
4879 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, internal::None,
4880 internal::None, internal::None, internal::None, internal::None,
4881 internal::None, internal::None, internal::None, internal::None,
4882 internal::None, internal::None, internal::None, internal::None,
4883 internal::None, internal::None, internal::None, internal::None,
4884 internal::None, internal::None, internal::None, internal::None,
4885 internal::None, internal::None, internal::None, internal::None,
4886 internal::None, internal::None, internal::None, internal::None,
4887 internal::None, internal::None, internal::None, internal::None,
4888 internal::None, internal::None, internal::None, internal::None,
4889 internal::None, internal::None, internal::None>
4891 typedef internal::Types10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
type;
4893 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4894 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4896 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, internal::None,
4897 internal::None, internal::None, internal::None, internal::None,
4898 internal::None, internal::None, internal::None, internal::None,
4899 internal::None, internal::None, internal::None, internal::None,
4900 internal::None, internal::None, internal::None, internal::None,
4901 internal::None, internal::None, internal::None, internal::None,
4902 internal::None, internal::None, internal::None, internal::None,
4903 internal::None, internal::None, internal::None, internal::None,
4904 internal::None, internal::None, internal::None, internal::None,
4905 internal::None, internal::None, internal::None, internal::None,
4906 internal::None, internal::None>
4908 typedef internal::Types11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>
type;
4910 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4911 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4912 typename T11,
typename T12>
4913 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, internal::None,
4914 internal::None, internal::None, internal::None, internal::None,
4915 internal::None, internal::None, internal::None, internal::None,
4916 internal::None, internal::None, internal::None, internal::None,
4917 internal::None, internal::None, internal::None, internal::None,
4918 internal::None, internal::None, internal::None, internal::None,
4919 internal::None, internal::None, internal::None, internal::None,
4920 internal::None, internal::None, internal::None, internal::None,
4921 internal::None, internal::None, internal::None, internal::None,
4922 internal::None, internal::None, internal::None, internal::None,
4925 typedef internal::Types12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
4928 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4929 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4930 typename T11,
typename T12,
typename T13>
4931 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
4932 internal::None, internal::None, internal::None, internal::None,
4933 internal::None, internal::None, internal::None, internal::None,
4934 internal::None, internal::None, internal::None, internal::None,
4935 internal::None, internal::None, internal::None, internal::None,
4936 internal::None, internal::None, internal::None, internal::None,
4937 internal::None, internal::None, internal::None, internal::None,
4938 internal::None, internal::None, internal::None, internal::None,
4939 internal::None, internal::None, internal::None, internal::None,
4940 internal::None, internal::None, internal::None, internal::None,
4943 typedef internal::Types13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4946 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4947 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4948 typename T11,
typename T12,
typename T13,
typename T14>
4949 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
4950 internal::None, internal::None, internal::None, internal::None,
4951 internal::None, internal::None, internal::None, internal::None,
4952 internal::None, internal::None, internal::None, internal::None,
4953 internal::None, internal::None, internal::None, internal::None,
4954 internal::None, internal::None, internal::None, internal::None,
4955 internal::None, internal::None, internal::None, internal::None,
4956 internal::None, internal::None, internal::None, internal::None,
4957 internal::None, internal::None, internal::None, internal::None,
4958 internal::None, internal::None, internal::None, internal::None>
4960 typedef internal::Types14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4963 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4964 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4965 typename T11,
typename T12,
typename T13,
typename T14,
typename T15>
4966 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4967 internal::None, internal::None, internal::None, internal::None,
4968 internal::None, internal::None, internal::None, internal::None,
4969 internal::None, internal::None, internal::None, internal::None,
4970 internal::None, internal::None, internal::None, internal::None,
4971 internal::None, internal::None, internal::None, internal::None,
4972 internal::None, internal::None, internal::None, internal::None,
4973 internal::None, internal::None, internal::None, internal::None,
4974 internal::None, internal::None, internal::None, internal::None,
4975 internal::None, internal::None, internal::None>
4977 typedef internal::Types15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4978 T13, T14, T15>
type;
4980 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4981 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4982 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4984 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4985 T16, internal::None, internal::None, internal::None, internal::None,
4986 internal::None, internal::None, internal::None, internal::None,
4987 internal::None, internal::None, internal::None, internal::None,
4988 internal::None, internal::None, internal::None, internal::None,
4989 internal::None, internal::None, internal::None, internal::None,
4990 internal::None, internal::None, internal::None, internal::None,
4991 internal::None, internal::None, internal::None, internal::None,
4992 internal::None, internal::None, internal::None, internal::None,
4993 internal::None, internal::None>
4995 typedef internal::Types16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4996 T13, T14, T15, T16>
type;
4998 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4999 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5000 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5001 typename T16,
typename T17>
5002 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5003 T16, T17, internal::None, internal::None, internal::None, internal::None,
5004 internal::None, internal::None, internal::None, internal::None,
5005 internal::None, internal::None, internal::None, internal::None,
5006 internal::None, internal::None, internal::None, internal::None,
5007 internal::None, internal::None, internal::None, internal::None,
5008 internal::None, internal::None, internal::None, internal::None,
5009 internal::None, internal::None, internal::None, internal::None,
5010 internal::None, internal::None, internal::None, internal::None,
5013 typedef internal::Types17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5014 T13, T14, T15, T16, T17>
type;
5016 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5017 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5018 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5019 typename T16,
typename T17,
typename T18>
5020 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5021 T16, T17, T18, internal::None, internal::None, internal::None,
5022 internal::None, internal::None, internal::None, internal::None,
5023 internal::None, internal::None, internal::None, internal::None,
5024 internal::None, internal::None, internal::None, internal::None,
5025 internal::None, internal::None, internal::None, internal::None,
5026 internal::None, internal::None, internal::None, internal::None,
5027 internal::None, internal::None, internal::None, internal::None,
5028 internal::None, internal::None, internal::None, internal::None,
5031 typedef internal::Types18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5032 T13, T14, T15, T16, T17, T18>
type;
5034 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5035 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5036 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5037 typename T16,
typename T17,
typename T18,
typename T19>
5038 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5039 T16, T17, T18, T19, internal::None, internal::None, internal::None,
5040 internal::None, internal::None, internal::None, internal::None,
5041 internal::None, internal::None, internal::None, internal::None,
5042 internal::None, internal::None, internal::None, internal::None,
5043 internal::None, internal::None, internal::None, internal::None,
5044 internal::None, internal::None, internal::None, internal::None,
5045 internal::None, internal::None, internal::None, internal::None,
5046 internal::None, internal::None, internal::None, internal::None>
5048 typedef internal::Types19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5049 T13, T14, T15, T16, T17, T18, T19>
type;
5051 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5052 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5053 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5054 typename T16,
typename T17,
typename T18,
typename T19,
typename T20>
5055 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5056 T16, T17, T18, T19, T20, internal::None, internal::None, internal::None,
5057 internal::None, internal::None, internal::None, internal::None,
5058 internal::None, internal::None, internal::None, internal::None,
5059 internal::None, internal::None, internal::None, internal::None,
5060 internal::None, internal::None, internal::None, internal::None,
5061 internal::None, internal::None, internal::None, internal::None,
5062 internal::None, internal::None, internal::None, internal::None,
5063 internal::None, internal::None, internal::None>
5065 typedef internal::Types20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5066 T13, T14, T15, T16, T17, T18, T19, T20>
type;
5068 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5069 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5070 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5071 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5073 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5074 T16, T17, T18, T19, T20, T21, internal::None, internal::None,
5075 internal::None, internal::None, internal::None, internal::None,
5076 internal::None, internal::None, internal::None, internal::None,
5077 internal::None, internal::None, internal::None, internal::None,
5078 internal::None, internal::None, internal::None, internal::None,
5079 internal::None, internal::None, internal::None, internal::None,
5080 internal::None, internal::None, internal::None, internal::None,
5081 internal::None, internal::None, internal::None>
5083 typedef internal::Types21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5084 T13, T14, T15, T16, T17, T18, T19, T20, T21>
type;
5086 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5087 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5088 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5089 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5090 typename T21,
typename T22>
5091 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5092 T16, T17, T18, T19, T20, T21, T22, internal::None, internal::None,
5093 internal::None, internal::None, internal::None, internal::None,
5094 internal::None, internal::None, internal::None, internal::None,
5095 internal::None, internal::None, internal::None, internal::None,
5096 internal::None, internal::None, internal::None, internal::None,
5097 internal::None, internal::None, internal::None, internal::None,
5098 internal::None, internal::None, internal::None, internal::None,
5099 internal::None, internal::None>
5101 typedef internal::Types22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5102 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>
type;
5104 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5105 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5106 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5107 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5108 typename T21,
typename T22,
typename T23>
5109 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5110 T16, T17, T18, T19, T20, T21, T22, T23, internal::None, internal::None,
5111 internal::None, internal::None, internal::None, internal::None,
5112 internal::None, internal::None, internal::None, internal::None,
5113 internal::None, internal::None, internal::None, internal::None,
5114 internal::None, internal::None, internal::None, internal::None,
5115 internal::None, internal::None, internal::None, internal::None,
5116 internal::None, internal::None, internal::None, internal::None,
5119 typedef internal::Types23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5120 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>
type;
5122 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5123 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5124 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5125 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5126 typename T21,
typename T22,
typename T23,
typename T24>
5127 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5128 T16, T17, T18, T19, T20, T21, T22, T23, T24, internal::None,
5129 internal::None, internal::None, internal::None, internal::None,
5130 internal::None, internal::None, internal::None, internal::None,
5131 internal::None, internal::None, internal::None, internal::None,
5132 internal::None, internal::None, internal::None, internal::None,
5133 internal::None, internal::None, internal::None, internal::None,
5134 internal::None, internal::None, internal::None, internal::None,
5137 typedef internal::Types24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5138 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>
type;
5140 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5141 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5142 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5143 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5144 typename T21,
typename T22,
typename T23,
typename T24,
typename T25>
5145 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5146 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, internal::None,
5147 internal::None, internal::None, internal::None, internal::None,
5148 internal::None, internal::None, internal::None, internal::None,
5149 internal::None, internal::None, internal::None, internal::None,
5150 internal::None, internal::None, internal::None, internal::None,
5151 internal::None, internal::None, internal::None, internal::None,
5152 internal::None, internal::None, internal::None, internal::None>
5154 typedef internal::Types25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5155 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>
type;
5157 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5158 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5159 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5160 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5161 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5163 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5164 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, internal::None,
5165 internal::None, internal::None, internal::None, internal::None,
5166 internal::None, internal::None, internal::None, internal::None,
5167 internal::None, internal::None, internal::None, internal::None,
5168 internal::None, internal::None, internal::None, internal::None,
5169 internal::None, internal::None, internal::None, internal::None,
5170 internal::None, internal::None, internal::None>
5172 typedef internal::Types26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5173 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
5176 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5177 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5178 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5179 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5180 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5181 typename T26,
typename T27>
5182 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5183 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, internal::None,
5184 internal::None, internal::None, internal::None, internal::None,
5185 internal::None, internal::None, internal::None, internal::None,
5186 internal::None, internal::None, internal::None, internal::None,
5187 internal::None, internal::None, internal::None, internal::None,
5188 internal::None, internal::None, internal::None, internal::None,
5189 internal::None, internal::None>
5191 typedef internal::Types27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5192 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5195 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5196 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5197 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5198 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5199 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5200 typename T26,
typename T27,
typename T28>
5201 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5202 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
5203 internal::None, internal::None, internal::None, internal::None,
5204 internal::None, internal::None, internal::None, internal::None,
5205 internal::None, internal::None, internal::None, internal::None,
5206 internal::None, internal::None, internal::None, internal::None,
5207 internal::None, internal::None, internal::None, internal::None,
5208 internal::None, internal::None>
5210 typedef internal::Types28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5211 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5214 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5215 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5216 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5217 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5218 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5219 typename T26,
typename T27,
typename T28,
typename T29>
5220 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5221 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
5222 internal::None, internal::None, internal::None, internal::None,
5223 internal::None, internal::None, internal::None, internal::None,
5224 internal::None, internal::None, internal::None, internal::None,
5225 internal::None, internal::None, internal::None, internal::None,
5226 internal::None, internal::None, internal::None, internal::None,
5229 typedef internal::Types29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5230 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5231 T27, T28, T29>
type;
5233 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5234 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5235 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5236 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5237 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5238 typename T26,
typename T27,
typename T28,
typename T29,
typename T30>
5239 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5240 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5241 internal::None, internal::None, internal::None, internal::None,
5242 internal::None, internal::None, internal::None, internal::None,
5243 internal::None, internal::None, internal::None, internal::None,
5244 internal::None, internal::None, internal::None, internal::None,
5245 internal::None, internal::None, internal::None, internal::None>
5247 typedef internal::Types30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5248 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5249 T27, T28, T29, T30>
type;
5251 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5252 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5253 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5254 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5255 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5256 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5258 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5259 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5260 T31, internal::None, internal::None, internal::None, internal::None,
5261 internal::None, internal::None, internal::None, internal::None,
5262 internal::None, internal::None, internal::None, internal::None,
5263 internal::None, internal::None, internal::None, internal::None,
5264 internal::None, internal::None, internal::None>
5266 typedef internal::Types31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5267 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5268 T27, T28, T29, T30, T31>
type;
5270 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5271 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5272 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5273 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5274 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5275 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5276 typename T31,
typename T32>
5277 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5278 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5279 T31, T32, internal::None, internal::None, internal::None, internal::None,
5280 internal::None, internal::None, internal::None, internal::None,
5281 internal::None, internal::None, internal::None, internal::None,
5282 internal::None, internal::None, internal::None, internal::None,
5283 internal::None, internal::None>
5285 typedef internal::Types32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5286 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5287 T27, T28, T29, T30, T31, T32>
type;
5289 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5290 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5291 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5292 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5293 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5294 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5295 typename T31,
typename T32,
typename T33>
5296 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5297 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5298 T31, T32, T33, internal::None, internal::None, internal::None,
5299 internal::None, internal::None, internal::None, internal::None,
5300 internal::None, internal::None, internal::None, internal::None,
5301 internal::None, internal::None, internal::None, internal::None,
5302 internal::None, internal::None>
5304 typedef internal::Types33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5305 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5306 T27, T28, T29, T30, T31, T32, T33>
type;
5308 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5309 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5310 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5311 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5312 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5313 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5314 typename T31,
typename T32,
typename T33,
typename T34>
5315 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5316 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5317 T31, T32, T33, T34, internal::None, internal::None, internal::None,
5318 internal::None, internal::None, internal::None, internal::None,
5319 internal::None, internal::None, internal::None, internal::None,
5320 internal::None, internal::None, internal::None, internal::None,
5323 typedef internal::Types34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5324 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5325 T27, T28, T29, T30, T31, T32, T33, T34>
type;
5327 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5328 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5329 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5330 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5331 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5332 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5333 typename T31,
typename T32,
typename T33,
typename T34,
typename T35>
5334 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5335 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5336 T31, T32, T33, T34, T35, internal::None, internal::None, internal::None,
5337 internal::None, internal::None, internal::None, internal::None,
5338 internal::None, internal::None, internal::None, internal::None,
5339 internal::None, internal::None, internal::None, internal::None>
5341 typedef internal::Types35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5342 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5343 T27, T28, T29, T30, T31, T32, T33, T34, T35>
type;
5345 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5346 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5347 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5348 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5349 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5350 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5351 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5353 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5354 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5355 T31, T32, T33, T34, T35, T36, internal::None, internal::None,
5356 internal::None, internal::None, internal::None, internal::None,
5357 internal::None, internal::None, internal::None, internal::None,
5358 internal::None, internal::None, internal::None, internal::None>
5360 typedef internal::Types36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5361 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5362 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36>
type;
5364 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5365 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5366 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5367 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5368 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5369 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5370 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5371 typename T36,
typename T37>
5372 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5373 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5374 T31, T32, T33, T34, T35, T36, T37, internal::None, internal::None,
5375 internal::None, internal::None, internal::None, internal::None,
5376 internal::None, internal::None, internal::None, internal::None,
5377 internal::None, internal::None, internal::None>
5379 typedef internal::Types37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5380 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5381 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37>
type;
5383 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5384 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5385 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5386 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5387 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5388 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5389 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5390 typename T36,
typename T37,
typename T38>
5391 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5392 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5393 T31, T32, T33, T34, T35, T36, T37, T38, internal::None, internal::None,
5394 internal::None, internal::None, internal::None, internal::None,
5395 internal::None, internal::None, internal::None, internal::None,
5396 internal::None, internal::None>
5398 typedef internal::Types38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5399 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5400 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>
type;
5402 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5403 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5404 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5405 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5406 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5407 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5408 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5409 typename T36,
typename T37,
typename T38,
typename T39>
5410 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5411 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5412 T31, T32, T33, T34, T35, T36, T37, T38, T39, internal::None,
5413 internal::None, internal::None, internal::None, internal::None,
5414 internal::None, internal::None, internal::None, internal::None,
5415 internal::None, internal::None>
5417 typedef internal::Types39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5418 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5419 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>
type;
5421 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5422 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5423 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5424 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5425 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5426 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5427 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5428 typename T36,
typename T37,
typename T38,
typename T39,
typename T40>
5429 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5430 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5431 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, internal::None,
5432 internal::None, internal::None, internal::None, internal::None,
5433 internal::None, internal::None, internal::None, internal::None,
5436 typedef internal::Types40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5437 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5438 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
5441 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5442 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5443 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5444 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5445 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5446 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5447 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5448 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5450 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5451 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5452 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, internal::None,
5453 internal::None, internal::None, internal::None, internal::None,
5454 internal::None, internal::None, internal::None, internal::None>
5456 typedef internal::Types41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5457 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5458 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5461 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5462 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5463 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5464 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5465 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5466 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5467 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5468 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5469 typename T41,
typename T42>
5470 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5471 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5472 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, internal::None,
5473 internal::None, internal::None, internal::None, internal::None,
5474 internal::None, internal::None, internal::None>
5476 typedef internal::Types42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5477 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5478 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5481 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5482 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5483 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5484 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5485 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5486 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5487 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5488 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5489 typename T41,
typename T42,
typename T43>
5490 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5491 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5492 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
5493 internal::None, internal::None, internal::None, internal::None,
5494 internal::None, internal::None, internal::None>
5496 typedef internal::Types43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5497 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5498 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5499 T41, T42, T43>
type;
5501 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5502 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5503 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5504 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5505 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5506 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5507 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5508 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5509 typename T41,
typename T42,
typename T43,
typename T44>
5510 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5511 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5512 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
5513 internal::None, internal::None, internal::None, internal::None,
5514 internal::None, internal::None>
5516 typedef internal::Types44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5517 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5518 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5519 T41, T42, T43, T44>
type;
5521 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5522 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5523 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5524 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5525 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5526 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5527 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5528 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5529 typename T41,
typename T42,
typename T43,
typename T44,
typename T45>
5530 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5531 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5532 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
5533 internal::None, internal::None, internal::None, internal::None,
5536 typedef internal::Types45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5537 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5538 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5539 T41, T42, T43, T44, T45>
type;
5541 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5542 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5543 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5544 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5545 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5546 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5547 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5548 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5549 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
5551 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5552 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5553 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
5554 T46, internal::None, internal::None, internal::None, internal::None>
5556 typedef internal::Types46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5557 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5558 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5559 T41, T42, T43, T44, T45, T46>
type;
5561 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5562 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5563 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5564 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5565 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5566 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5567 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5568 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5569 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
5570 typename T46,
typename T47>
5571 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5572 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5573 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
5574 T46, T47, internal::None, internal::None, internal::None>
5576 typedef internal::Types47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5577 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5578 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5579 T41, T42, T43, T44, T45, T46, T47>
type;
5581 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5582 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5583 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5584 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5585 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5586 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5587 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5588 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5589 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
5590 typename T46,
typename T47,
typename T48>
5591 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5592 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5593 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
5594 T46, T47, T48, internal::None, internal::None>
5596 typedef internal::Types48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5597 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5598 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5599 T41, T42, T43, T44, T45, T46, T47, T48>
type;
5601 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5602 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5603 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5604 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5605 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5606 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5607 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5608 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5609 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
5610 typename T46,
typename T47,
typename T48,
typename T49>
5611 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5612 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5613 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
5614 T46, T47, T48, T49, internal::None>
5616 typedef internal::Types49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5617 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5618 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5619 T41, T42, T43, T44, T45, T46, T47, T48, T49>
type;
5625 # define GTEST_TEMPLATE_ template <typename T> class 5635 template <GTEST_TEMPLATE_ Tmpl>
5638 template <
typename T>
5641 typedef Tmpl<T>
type;
5645 # define GTEST_BIND_(TmplSel, T) \ 5646 TmplSel::template Bind<T>::type 5652 template <
typename T>
5663 struct Templates0 {};
5667 template <GTEST_TEMPLATE_ T1>
5670 typedef TemplateSel<T1> Head;
5671 typedef Templates0 Tail;
5673 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2>
5676 typedef TemplateSel<T1> Head;
5677 typedef Templates1<T2> Tail;
5680 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3>
5683 typedef TemplateSel<T1> Head;
5684 typedef Templates2<T2, T3> Tail;
5687 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5691 typedef TemplateSel<T1> Head;
5692 typedef Templates3<T2, T3, T4> Tail;
5695 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5696 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5>
5699 typedef TemplateSel<T1> Head;
5700 typedef Templates4<T2, T3, T4, T5> Tail;
5703 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5704 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6>
5707 typedef TemplateSel<T1> Head;
5708 typedef Templates5<T2, T3, T4, T5, T6> Tail;
5711 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5712 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5716 typedef TemplateSel<T1> Head;
5717 typedef Templates6<T2, T3, T4, T5, T6, T7> Tail;
5720 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5721 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5722 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8>
5725 typedef TemplateSel<T1> Head;
5726 typedef Templates7<T2, T3, T4, T5, T6, T7, T8> Tail;
5729 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5730 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5731 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9>
5734 typedef TemplateSel<T1> Head;
5735 typedef Templates8<T2, T3, T4, T5, T6, T7, T8, T9> Tail;
5738 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5739 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5740 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5741 GTEST_TEMPLATE_ T10>
5744 typedef TemplateSel<T1> Head;
5745 typedef Templates9<T2, T3, T4, T5, T6, T7, T8, T9, T10> Tail;
5748 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5749 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5750 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5751 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11>
5754 typedef TemplateSel<T1> Head;
5755 typedef Templates10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Tail;
5758 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5759 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5760 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5761 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12>
5764 typedef TemplateSel<T1> Head;
5765 typedef Templates11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tail;
5768 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5769 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5770 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5771 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5772 GTEST_TEMPLATE_ T13>
5775 typedef TemplateSel<T1> Head;
5776 typedef Templates12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail;
5779 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5780 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5781 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5782 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5783 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14>
5786 typedef TemplateSel<T1> Head;
5787 typedef Templates13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
5791 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5792 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5793 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5794 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5795 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15>
5798 typedef TemplateSel<T1> Head;
5799 typedef Templates14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5803 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5804 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5805 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5806 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5807 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5808 GTEST_TEMPLATE_ T16>
5811 typedef TemplateSel<T1> Head;
5812 typedef Templates15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5816 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5817 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5818 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5819 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5820 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5821 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17>
5824 typedef TemplateSel<T1> Head;
5825 typedef Templates16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5826 T15, T16, T17> Tail;
5829 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5830 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5831 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5832 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5833 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5834 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18>
5837 typedef TemplateSel<T1> Head;
5838 typedef Templates17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5839 T15, T16, T17, T18> Tail;
5842 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5843 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5844 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5845 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5846 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5847 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5848 GTEST_TEMPLATE_ T19>
5851 typedef TemplateSel<T1> Head;
5852 typedef Templates18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5853 T15, T16, T17, T18, T19> Tail;
5856 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5857 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5858 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5859 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5860 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5861 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5862 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20>
5865 typedef TemplateSel<T1> Head;
5866 typedef Templates19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5867 T15, T16, T17, T18, T19, T20> Tail;
5870 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5871 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5872 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5873 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5874 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5875 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5876 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21>
5879 typedef TemplateSel<T1> Head;
5880 typedef Templates20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5881 T15, T16, T17, T18, T19, T20, T21> Tail;
5884 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5885 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5886 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5887 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5888 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5889 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5890 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5891 GTEST_TEMPLATE_ T22>
5894 typedef TemplateSel<T1> Head;
5895 typedef Templates21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5896 T15, T16, T17, T18, T19, T20, T21, T22> Tail;
5899 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5900 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5901 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5902 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5903 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5904 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5905 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5906 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23>
5909 typedef TemplateSel<T1> Head;
5910 typedef Templates22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5911 T15, T16, T17, T18, T19, T20, T21, T22, T23> Tail;
5914 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5915 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5916 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5917 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5918 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5919 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5920 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5921 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24>
5924 typedef TemplateSel<T1> Head;
5925 typedef Templates23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5926 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> Tail;
5929 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5930 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5931 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5932 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5933 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5934 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5935 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5936 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5937 GTEST_TEMPLATE_ T25>
5940 typedef TemplateSel<T1> Head;
5941 typedef Templates24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5942 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Tail;
5945 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5946 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5947 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5948 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5949 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5950 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5951 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5952 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5953 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26>
5956 typedef TemplateSel<T1> Head;
5957 typedef Templates25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5958 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> Tail;
5961 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5962 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5963 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5964 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5965 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5966 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5967 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5968 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5969 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27>
5972 typedef TemplateSel<T1> Head;
5973 typedef Templates26<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5974 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> Tail;
5977 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5978 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5979 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5980 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5981 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5982 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5983 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5984 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5985 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
5986 GTEST_TEMPLATE_ T28>
5989 typedef TemplateSel<T1> Head;
5990 typedef Templates27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5991 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
5995 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5996 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5997 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5998 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5999 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6000 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6001 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6002 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6003 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6004 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29>
6007 typedef TemplateSel<T1> Head;
6008 typedef Templates28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6009 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6013 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6014 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6015 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6016 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6017 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6018 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6019 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6020 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6021 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6022 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30>
6025 typedef TemplateSel<T1> Head;
6026 typedef Templates29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6027 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6031 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6032 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6033 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6034 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6035 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6036 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6037 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6038 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6039 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6040 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6041 GTEST_TEMPLATE_ T31>
6044 typedef TemplateSel<T1> Head;
6045 typedef Templates30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6046 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6047 T29, T30, T31> Tail;
6050 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6051 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6052 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6053 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6054 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6055 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6056 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6057 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6058 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6059 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6060 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32>
6063 typedef TemplateSel<T1> Head;
6064 typedef Templates31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6065 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6066 T29, T30, T31, T32> Tail;
6069 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6070 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6071 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6072 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6073 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6074 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6075 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6076 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6077 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6078 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6079 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33>
6082 typedef TemplateSel<T1> Head;
6083 typedef Templates32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6084 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6085 T29, T30, T31, T32, T33> Tail;
6088 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6089 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6090 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6091 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6092 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6093 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6094 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6095 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6096 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6097 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6098 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6099 GTEST_TEMPLATE_ T34>
6102 typedef TemplateSel<T1> Head;
6103 typedef Templates33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6104 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6105 T29, T30, T31, T32, T33, T34> Tail;
6108 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6109 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6110 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6111 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6112 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6113 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6114 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6115 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6116 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6117 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6118 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6119 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35>
6122 typedef TemplateSel<T1> Head;
6123 typedef Templates34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6124 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6125 T29, T30, T31, T32, T33, T34, T35> Tail;
6128 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6129 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6130 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6131 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6132 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6133 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6134 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6135 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6136 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6137 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6138 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6139 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36>
6142 typedef TemplateSel<T1> Head;
6143 typedef Templates35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6144 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6145 T29, T30, T31, T32, T33, T34, T35, T36> Tail;
6148 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6149 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6150 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6151 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6152 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6153 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6154 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6155 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6156 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6157 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6158 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6159 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6160 GTEST_TEMPLATE_ T37>
6163 typedef TemplateSel<T1> Head;
6164 typedef Templates36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6165 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6166 T29, T30, T31, T32, T33, T34, T35, T36, T37> Tail;
6169 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6170 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6171 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6172 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6173 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6174 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6175 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6176 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6177 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6178 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6179 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6180 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6181 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38>
6184 typedef TemplateSel<T1> Head;
6185 typedef Templates37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6186 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6187 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> Tail;
6190 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6191 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6192 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6193 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6194 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6195 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6196 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6197 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6198 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6199 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6200 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6201 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6202 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39>
6205 typedef TemplateSel<T1> Head;
6206 typedef Templates38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6207 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6208 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Tail;
6211 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6212 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6213 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6214 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6215 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6216 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6217 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6218 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6219 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6220 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6221 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6222 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6223 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6224 GTEST_TEMPLATE_ T40>
6227 typedef TemplateSel<T1> Head;
6228 typedef Templates39<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6229 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6230 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Tail;
6233 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6234 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6235 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6236 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6237 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6238 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6239 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6240 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6241 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6242 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6243 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6244 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6245 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6246 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41>
6249 typedef TemplateSel<T1> Head;
6250 typedef Templates40<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6251 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6252 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41> Tail;
6255 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6256 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6257 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6258 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6259 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6260 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6261 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6262 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6263 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6264 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6265 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6266 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6267 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6268 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42>
6271 typedef TemplateSel<T1> Head;
6272 typedef Templates41<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6273 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6274 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
6278 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6279 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6280 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6281 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6282 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6283 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6284 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6285 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6286 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6287 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6288 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6289 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6290 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6291 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6292 GTEST_TEMPLATE_ T43>
6295 typedef TemplateSel<T1> Head;
6296 typedef Templates42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6297 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6298 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
6302 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6303 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6304 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6305 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6306 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6307 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6308 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6309 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6310 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6311 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6312 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6313 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6314 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6315 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6316 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44>
6319 typedef TemplateSel<T1> Head;
6320 typedef Templates43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6321 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6322 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
6326 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6327 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6328 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6329 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6330 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6331 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6332 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6333 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6334 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6335 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6336 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6337 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6338 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6339 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6340 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45>
6343 typedef TemplateSel<T1> Head;
6344 typedef Templates44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6345 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6346 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
6347 T43, T44, T45> Tail;
6350 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6351 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6352 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6353 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6354 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6355 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6356 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6357 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6358 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6359 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6360 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6361 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6362 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6363 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6364 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
6365 GTEST_TEMPLATE_ T46>
6368 typedef TemplateSel<T1> Head;
6369 typedef Templates45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6370 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6371 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
6372 T43, T44, T45, T46> Tail;
6375 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6376 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6377 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6378 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6379 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6380 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6381 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6382 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6383 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6384 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6385 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6386 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6387 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6388 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6389 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
6390 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47>
6393 typedef TemplateSel<T1> Head;
6394 typedef Templates46<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6395 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6396 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
6397 T43, T44, T45, T46, T47> Tail;
6400 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6401 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6402 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6403 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6404 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6405 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6406 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6407 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6408 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6409 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6410 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6411 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6412 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6413 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6414 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
6415 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48>
6418 typedef TemplateSel<T1> Head;
6419 typedef Templates47<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6420 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6421 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
6422 T43, T44, T45, T46, T47, T48> Tail;
6425 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6426 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6427 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6428 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6429 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6430 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6431 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6432 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6433 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6434 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6435 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6436 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6437 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6438 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6439 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
6440 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
6441 GTEST_TEMPLATE_ T49>
6444 typedef TemplateSel<T1> Head;
6445 typedef Templates48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6446 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6447 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
6448 T43, T44, T45, T46, T47, T48, T49> Tail;
6451 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6452 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6453 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6454 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6455 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6456 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6457 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6458 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6459 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6460 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6461 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6462 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6463 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6464 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6465 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
6466 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
6467 GTEST_TEMPLATE_ T49, GTEST_TEMPLATE_ T50>
6470 typedef TemplateSel<T1> Head;
6471 typedef Templates49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6472 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6473 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
6474 T43, T44, T45, T46, T47, T48, T49, T50> Tail;
6491 template <GTEST_TEMPLATE_ T1 = NoneT, GTEST_TEMPLATE_ T2 = NoneT,
6492 GTEST_TEMPLATE_ T3 = NoneT, GTEST_TEMPLATE_ T4 = NoneT,
6493 GTEST_TEMPLATE_ T5 = NoneT, GTEST_TEMPLATE_ T6 = NoneT,
6494 GTEST_TEMPLATE_ T7 = NoneT, GTEST_TEMPLATE_ T8 = NoneT,
6495 GTEST_TEMPLATE_ T9 = NoneT, GTEST_TEMPLATE_ T10 = NoneT,
6496 GTEST_TEMPLATE_ T11 = NoneT, GTEST_TEMPLATE_ T12 = NoneT,
6497 GTEST_TEMPLATE_ T13 = NoneT, GTEST_TEMPLATE_ T14 = NoneT,
6498 GTEST_TEMPLATE_ T15 = NoneT, GTEST_TEMPLATE_ T16 = NoneT,
6499 GTEST_TEMPLATE_ T17 = NoneT, GTEST_TEMPLATE_ T18 = NoneT,
6500 GTEST_TEMPLATE_ T19 = NoneT, GTEST_TEMPLATE_ T20 = NoneT,
6501 GTEST_TEMPLATE_ T21 = NoneT, GTEST_TEMPLATE_ T22 = NoneT,
6502 GTEST_TEMPLATE_ T23 = NoneT, GTEST_TEMPLATE_ T24 = NoneT,
6503 GTEST_TEMPLATE_ T25 = NoneT, GTEST_TEMPLATE_ T26 = NoneT,
6504 GTEST_TEMPLATE_ T27 = NoneT, GTEST_TEMPLATE_ T28 = NoneT,
6505 GTEST_TEMPLATE_ T29 = NoneT, GTEST_TEMPLATE_ T30 = NoneT,
6506 GTEST_TEMPLATE_ T31 = NoneT, GTEST_TEMPLATE_ T32 = NoneT,
6507 GTEST_TEMPLATE_ T33 = NoneT, GTEST_TEMPLATE_ T34 = NoneT,
6508 GTEST_TEMPLATE_ T35 = NoneT, GTEST_TEMPLATE_ T36 = NoneT,
6509 GTEST_TEMPLATE_ T37 = NoneT, GTEST_TEMPLATE_ T38 = NoneT,
6510 GTEST_TEMPLATE_ T39 = NoneT, GTEST_TEMPLATE_ T40 = NoneT,
6511 GTEST_TEMPLATE_ T41 = NoneT, GTEST_TEMPLATE_ T42 = NoneT,
6512 GTEST_TEMPLATE_ T43 = NoneT, GTEST_TEMPLATE_ T44 = NoneT,
6513 GTEST_TEMPLATE_ T45 = NoneT, GTEST_TEMPLATE_ T46 = NoneT,
6514 GTEST_TEMPLATE_ T47 = NoneT, GTEST_TEMPLATE_ T48 = NoneT,
6515 GTEST_TEMPLATE_ T49 = NoneT, GTEST_TEMPLATE_ T50 = NoneT>
6518 typedef Templates50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6519 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6520 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
6521 T42, T43, T44, T45, T46, T47, T48, T49, T50>
type;
6525 struct Templates<NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6526 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6527 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6528 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6529 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6532 typedef Templates0
type;
6534 template <GTEST_TEMPLATE_ T1>
6535 struct Templates<T1, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6536 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6537 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6538 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6539 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6542 typedef Templates1<T1>
type;
6544 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2>
6545 struct Templates<T1, T2, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6546 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6547 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6548 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6549 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6552 typedef Templates2<T1, T2>
type;
6554 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3>
6555 struct Templates<T1, T2, T3, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6556 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6557 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6558 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6559 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
6561 typedef Templates3<T1, T2, T3>
type;
6563 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6565 struct Templates<T1, T2, T3, T4, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6566 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6567 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6568 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6569 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
6571 typedef Templates4<T1, T2, T3, T4>
type;
6573 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6574 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5>
6575 struct Templates<T1, T2, T3, T4, T5, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6576 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6577 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6578 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6579 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
6581 typedef Templates5<T1, T2, T3, T4, T5>
type;
6583 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6584 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6>
6585 struct Templates<T1, T2, T3, T4, T5, T6, NoneT, NoneT, NoneT, NoneT, NoneT,
6586 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6587 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6588 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6589 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
6591 typedef Templates6<T1, T2, T3, T4, T5, T6>
type;
6593 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6594 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6596 struct Templates<T1, T2, T3, T4, T5, T6, T7, NoneT, NoneT, NoneT, NoneT, NoneT,
6597 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6598 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6599 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6600 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
6602 typedef Templates7<T1, T2, T3, T4, T5, T6, T7>
type;
6604 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6605 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6606 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8>
6607 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, NoneT, NoneT, NoneT, NoneT,
6608 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6609 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6610 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6611 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
6613 typedef Templates8<T1, T2, T3, T4, T5, T6, T7, T8>
type;
6615 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6616 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6617 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9>
6618 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, NoneT, NoneT, NoneT,
6619 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6620 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6621 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6622 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
6624 typedef Templates9<T1, T2, T3, T4, T5, T6, T7, T8, T9>
type;
6626 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6627 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6628 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6629 GTEST_TEMPLATE_ T10>
6630 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, NoneT, NoneT, NoneT,
6631 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6632 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6633 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6634 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
6636 typedef Templates10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
type;
6638 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6639 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6640 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6641 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11>
6642 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, NoneT, NoneT,
6643 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6644 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6645 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6646 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
6648 typedef Templates11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>
type;
6650 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6651 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6652 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6653 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12>
6654 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, NoneT,
6655 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6656 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6657 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6658 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
6660 typedef Templates12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>
type;
6662 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6663 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6664 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6665 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6666 GTEST_TEMPLATE_ T13>
6667 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, NoneT,
6668 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6669 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6670 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6671 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
6673 typedef Templates13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
6676 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6677 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6678 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6679 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6680 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14>
6681 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6682 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6683 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6684 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6685 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
6687 typedef Templates14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6690 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6691 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6692 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6693 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6694 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15>
6695 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6696 T15, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6697 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6698 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6699 NoneT, NoneT, NoneT, NoneT, NoneT>
6701 typedef Templates15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6704 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6705 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6706 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6707 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6708 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6709 GTEST_TEMPLATE_ T16>
6710 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6711 T15, T16, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6712 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6713 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6714 NoneT, NoneT, NoneT, NoneT, NoneT>
6716 typedef Templates16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6717 T14, T15, T16>
type;
6719 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6720 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6721 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6722 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6723 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6724 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17>
6725 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6726 T15, T16, T17, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6727 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6728 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6729 NoneT, NoneT, NoneT, NoneT, NoneT>
6731 typedef Templates17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6732 T14, T15, T16, T17>
type;
6734 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6735 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6736 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6737 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6738 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6739 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18>
6740 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6741 T15, T16, T17, T18, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6742 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6743 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6744 NoneT, NoneT, NoneT, NoneT>
6746 typedef Templates18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6747 T14, T15, T16, T17, T18>
type;
6749 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6750 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6751 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6752 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6753 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6754 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6755 GTEST_TEMPLATE_ T19>
6756 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6757 T15, T16, T17, T18, T19, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6758 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6759 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6760 NoneT, NoneT, NoneT, NoneT>
6762 typedef Templates19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6763 T14, T15, T16, T17, T18, T19>
type;
6765 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6766 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6767 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6768 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6769 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6770 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6771 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20>
6772 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6773 T15, T16, T17, T18, T19, T20, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6774 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6775 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6776 NoneT, NoneT, NoneT, NoneT>
6778 typedef Templates20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6779 T14, T15, T16, T17, T18, T19, T20>
type;
6781 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6782 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6783 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6784 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6785 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6786 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6787 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21>
6788 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6789 T15, T16, T17, T18, T19, T20, T21, NoneT, NoneT, NoneT, NoneT, NoneT,
6790 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6791 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6792 NoneT, NoneT, NoneT, NoneT>
6794 typedef Templates21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6795 T14, T15, T16, T17, T18, T19, T20, T21>
type;
6797 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6798 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6799 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6800 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6801 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6802 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6803 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6804 GTEST_TEMPLATE_ T22>
6805 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6806 T15, T16, T17, T18, T19, T20, T21, T22, NoneT, NoneT, NoneT, NoneT, NoneT,
6807 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6808 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6809 NoneT, NoneT, NoneT>
6811 typedef Templates22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6812 T14, T15, T16, T17, T18, T19, T20, T21, T22>
type;
6814 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6815 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6816 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6817 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6818 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6819 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6820 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6821 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23>
6822 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6823 T15, T16, T17, T18, T19, T20, T21, T22, T23, NoneT, NoneT, NoneT, NoneT,
6824 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6825 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6826 NoneT, NoneT, NoneT>
6828 typedef Templates23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6829 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>
type;
6831 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6832 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6833 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6834 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6835 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6836 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6837 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6838 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24>
6839 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6840 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, NoneT, NoneT, NoneT,
6841 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6842 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6843 NoneT, NoneT, NoneT>
6845 typedef Templates24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6846 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>
type;
6848 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6849 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6850 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6851 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6852 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6853 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6854 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6855 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6856 GTEST_TEMPLATE_ T25>
6857 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6858 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, NoneT, NoneT, NoneT,
6859 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6860 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6863 typedef Templates25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6864 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>
type;
6866 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6867 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6868 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6869 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6870 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6871 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6872 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6873 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6874 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26>
6875 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6876 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, NoneT, NoneT,
6877 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6878 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6881 typedef Templates26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6882 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26>
type;
6884 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6885 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6886 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6887 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6888 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6889 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6890 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6891 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6892 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27>
6893 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6894 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, NoneT,
6895 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6896 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6899 typedef Templates27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6900 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
6903 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6904 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6905 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6906 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6907 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6908 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6909 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6910 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6911 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6912 GTEST_TEMPLATE_ T28>
6913 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6914 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6915 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6916 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6919 typedef Templates28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6920 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6923 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6924 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6925 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6926 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6927 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6928 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6929 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6930 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6931 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6932 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29>
6933 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6934 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6935 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6936 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6939 typedef Templates29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6940 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6943 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6944 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6945 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6946 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6947 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6948 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6949 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6950 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6951 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6952 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30>
6953 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6954 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6955 T30, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6956 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
6958 typedef Templates30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6959 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6960 T28, T29, T30>
type;
6962 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6963 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6964 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6965 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6966 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6967 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6968 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6969 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6970 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6971 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6972 GTEST_TEMPLATE_ T31>
6973 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6974 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6975 T30, T31, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6976 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
6978 typedef Templates31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6979 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6980 T28, T29, T30, T31>
type;
6982 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6983 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6984 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6985 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6986 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6987 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6988 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6989 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6990 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6991 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6992 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32>
6993 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6994 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6995 T30, T31, T32, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
6996 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
6998 typedef Templates32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6999 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7000 T28, T29, T30, T31, T32>
type;
7002 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7003 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7004 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7005 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7006 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7007 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7008 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7009 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7010 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7011 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7012 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33>
7013 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7014 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7015 T30, T31, T32, T33, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
7016 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
7018 typedef Templates33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7019 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7020 T28, T29, T30, T31, T32, T33>
type;
7022 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7023 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7024 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7025 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7026 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7027 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7028 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7029 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7030 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7031 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7032 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
7033 GTEST_TEMPLATE_ T34>
7034 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7035 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7036 T30, T31, T32, T33, T34, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
7037 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
7039 typedef Templates34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7040 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7041 T28, T29, T30, T31, T32, T33, T34>
type;
7043 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7044 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7045 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7046 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7047 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7048 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7049 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7050 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7051 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7052 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7053 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
7054 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35>
7055 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7056 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7057 T30, T31, T32, T33, T34, T35, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
7058 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
7060 typedef Templates35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7061 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7062 T28, T29, T30, T31, T32, T33, T34, T35>
type;
7064 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7065 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7066 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7067 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7068 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7069 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7070 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7071 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7072 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7073 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7074 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
7075 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36>
7076 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7077 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7078 T30, T31, T32, T33, T34, T35, T36, NoneT, NoneT, NoneT, NoneT, NoneT,
7079 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
7081 typedef Templates36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7082 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7083 T28, T29, T30, T31, T32, T33, T34, T35, T36>
type;
7085 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7086 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7087 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7088 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7089 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7090 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7091 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7092 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7093 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7094 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7095 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
7096 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
7097 GTEST_TEMPLATE_ T37>
7098 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7099 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7100 T30, T31, T32, T33, T34, T35, T36, T37, NoneT, NoneT, NoneT, NoneT, NoneT,
7101 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
7103 typedef Templates37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7104 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7105 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37>
type;
7107 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7108 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7109 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7110 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7111 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7112 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7113 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7114 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7115 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7116 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7117 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
7118 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
7119 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38>
7120 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7121 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7122 T30, T31, T32, T33, T34, T35, T36, T37, T38, NoneT, NoneT, NoneT, NoneT,
7123 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
7125 typedef Templates38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7126 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7127 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>
type;
7129 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7130 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7131 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7132 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7133 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7134 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7135 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7136 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7137 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7138 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7139 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
7140 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
7141 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39>
7142 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7143 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7144 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, NoneT, NoneT, NoneT,
7145 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
7147 typedef Templates39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7148 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7149 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>
type;
7151 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7152 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7153 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7154 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7155 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7156 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7157 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7158 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7159 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7160 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7161 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
7162 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
7163 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
7164 GTEST_TEMPLATE_ T40>
7165 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7166 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7167 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, NoneT, NoneT, NoneT,
7168 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
7170 typedef Templates40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7171 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7172 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40>
type;
7174 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7175 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7176 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7177 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7178 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7179 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7180 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7181 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7182 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7183 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7184 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
7185 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
7186 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
7187 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41>
7188 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7189 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7190 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, NoneT, NoneT,
7191 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
7193 typedef Templates41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7194 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7195 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
7198 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7199 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7200 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7201 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7202 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7203 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7204 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7205 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7206 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7207 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7208 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
7209 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
7210 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
7211 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42>
7212 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7213 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7214 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, NoneT,
7215 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
7217 typedef Templates42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7218 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7219 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
7222 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7223 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7224 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7225 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7226 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7227 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7228 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7229 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7230 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7231 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7232 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
7233 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
7234 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
7235 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
7236 GTEST_TEMPLATE_ T43>
7237 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7238 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7239 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
7240 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
7242 typedef Templates43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7243 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7244 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
7247 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7248 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7249 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7250 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7251 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7252 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7253 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7254 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7255 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7256 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7257 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
7258 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
7259 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
7260 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
7261 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44>
7262 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7263 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7264 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
7265 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT>
7267 typedef Templates44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7268 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7269 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
7270 T42, T43, T44>
type;
7272 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7273 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7274 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7275 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7276 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7277 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7278 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7279 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7280 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7281 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7282 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
7283 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
7284 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
7285 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
7286 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45>
7287 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7288 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7289 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
7290 T45, NoneT, NoneT, NoneT, NoneT, NoneT>
7292 typedef Templates45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7293 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7294 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
7295 T42, T43, T44, T45>
type;
7297 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7298 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7299 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7300 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7301 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7302 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7303 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7304 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7305 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7306 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7307 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
7308 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
7309 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
7310 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
7311 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
7312 GTEST_TEMPLATE_ T46>
7313 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7314 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7315 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
7316 T45, T46, NoneT, NoneT, NoneT, NoneT>
7318 typedef Templates46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7319 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7320 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
7321 T42, T43, T44, T45, T46>
type;
7323 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7324 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7325 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7326 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7327 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7328 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7329 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7330 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7331 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7332 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7333 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
7334 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
7335 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
7336 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
7337 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
7338 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47>
7339 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7340 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7341 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
7342 T45, T46, T47, NoneT, NoneT, NoneT>
7344 typedef Templates47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7345 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7346 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
7347 T42, T43, T44, T45, T46, T47>
type;
7349 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7350 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7351 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7352 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7353 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7354 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7355 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7356 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7357 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7358 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7359 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
7360 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
7361 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
7362 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
7363 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
7364 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48>
7365 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7366 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7367 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
7368 T45, T46, T47, T48, NoneT, NoneT>
7370 typedef Templates48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7371 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7372 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
7373 T42, T43, T44, T45, T46, T47, T48>
type;
7375 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7376 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7377 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7378 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7379 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7380 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7381 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7382 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7383 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7384 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7385 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
7386 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
7387 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
7388 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
7389 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
7390 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
7391 GTEST_TEMPLATE_ T49>
7392 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7393 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7394 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
7395 T45, T46, T47, T48, T49, NoneT>
7397 typedef Templates49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7398 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7399 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
7400 T42, T43, T44, T45, T46, T47, T48, T49>
type;
7407 template <
typename T>
7410 typedef Types1<T>
type;
7413 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
7414 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
7415 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
7416 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
7417 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
7418 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
7419 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
7420 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
7421 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
7422 typename T46,
typename T47,
typename T48,
typename T49,
typename T50>
7423 struct TypeList<Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7424 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
7425 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
7426 T44, T45, T46, T47, T48, T49, T50> >
7428 typedef typename Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
7429 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
7430 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
7431 T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>
::type type;
7434 #endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P 7439 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ 7449 #define GTEST_CONCAT_TOKEN_(foo, bar) GTEST_CONCAT_TOKEN_IMPL_(foo, bar) 7450 #define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo ## bar 7452 class ProtocolMessage;
7460 class AssertionResult;
7464 class TestPartResult;
7467 template <
typename T>
7505 #ifdef GTEST_ELLIPSIS_NEEDS_POD_ 7508 # define GTEST_IS_NULL_LITERAL_(x) false 7510 # define GTEST_IS_NULL_LITERAL_(x) \ 7511 (sizeof(::testing::internal::IsNullLiteralHelper(x)) == 1) 7512 #endif // GTEST_ELLIPSIS_NEEDS_POD_ 7518 #if GTEST_HAS_EXCEPTIONS 7526 class GTEST_API_ GoogleTestFailureException :
public ::std::runtime_error
7529 explicit GoogleTestFailureException(
const TestPartResult & failure);
7532 #endif // GTEST_HAS_EXCEPTIONS 7570 const char * actual_expression,
7573 bool ignoring_case);
7578 const char * expression_text,
7579 const char * actual_predicate_value,
7580 const char * expected_predicate_value);
7611 template <
typename RawType>
7622 static const size_t kBitCount = 8 *
sizeof(RawType);
7625 static const size_t kFractionBitCount =
7626 std::numeric_limits<RawType>::digits - 1;
7629 static const size_t kExponentBitCount = kBitCount - 1 - kFractionBitCount;
7632 static const Bits kSignBitMask =
static_cast<Bits
>(1) << (kBitCount - 1);
7635 static const Bits kFractionBitMask =
7636 ~static_cast<Bits>(0) >> (kExponentBitCount + 1);
7639 static const Bits kExponentBitMask = ~(kSignBitMask | kFractionBitMask);
7653 static const size_t kMaxUlps = 4;
7678 return ReinterpretBits(kExponentBitMask);
7682 static RawType Max();
7687 const Bits &
bits()
const {
return u_.bits_; }
7696 Bits
sign_bit()
const {
return kSignBitMask & u_.bits_; }
7703 return (exponent_bits() == kExponentBitMask) && (fraction_bits() != 0);
7716 if (is_nan() || rhs.
is_nan()) {
return false; }
7718 return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.
u_.
bits_)
7747 if (kSignBitMask & sam)
7756 return kSignBitMask | sam;
7765 const Bits biased1 = SignAndMagnitudeToBiased(sam1);
7766 const Bits biased2 = SignAndMagnitudeToBiased(sam2);
7767 return (biased1 >= biased2) ? (biased1 - biased2) : (biased2 - biased1);
7793 template <
typename T>
7803 template <
typename T>
7809 template <
typename T>
7816 return &(TypeIdHelper<T>::dummy_);
7835 virtual Test * CreateTest() = 0;
7846 template <
class TestClass>
7853 #if GTEST_OS_WINDOWS 7864 #endif // GTEST_OS_WINDOWS 7888 const char * test_case_name,
7890 const char * type_param,
7891 const char * value_param,
7892 TypeId fixture_class_id,
7902 #if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P 7908 TypedTestCasePState() : registered_(false) {}
7913 bool AddTestName(
const char * file,
int line,
const char * case_name,
7914 const char * test_name)
7918 fprintf(stderr,
"%s Test %s must be defined before " 7919 "REGISTER_TYPED_TEST_CASE_P(%s, ...).\n",
7925 defined_test_names_.insert(test_name);
7932 const char * VerifyRegisteredTestNames(
7933 const char * file,
int line,
const char * registered_tests);
7937 ::std::set<const char *> defined_test_names_;
7942 inline const char * SkipComma(
const char * str)
7944 const char * comma = strchr(str,
',');
7951 while (
IsSpace(*(++comma))) {}
7958 inline std::string GetPrefixUntilComma(
const char * str)
7960 const char * comma = strchr(str,
',');
7961 return comma == NULL ? str :
std::string(str, comma);
7971 template <GTEST_TEMPLATE_ Fixture,
class TestSel,
typename Types>
7972 class TypeParameterizedTest
7979 static bool Register(
const char * prefix,
const char * case_name,
7980 const char * test_names,
int index)
7982 typedef typename Types::Head Type;
7983 typedef Fixture<Type> FixtureClass;
7984 typedef typename GTEST_BIND_(TestSel, Type) TestClass;
7989 (
std::
string(prefix) + (prefix[0] == '\0' ? "" : "/") + case_name + "/"
7991 GetPrefixUntilComma(test_names).c_str(),
7995 TestClass::SetUpTestCase,
7996 TestClass::TearDownTestCase,
8000 return TypeParameterizedTest<Fixture, TestSel, typename
Types::Tail>
8001 ::Register(prefix, case_name, test_names, index + 1);
8006 template <GTEST_TEMPLATE_ Fixture, class TestSel>
8007 class TypeParameterizedTest<Fixture, TestSel, Types0>
8010 static bool Register(
const char * ,
const char * ,
8011 const char * ,
int )
8021 template <GTEST_TEMPLATE_ Fixture,
typename Tests,
typename Types>
8022 class TypeParameterizedTestCase
8025 static bool Register(
const char * prefix,
const char * case_name,
8026 const char * test_names)
8028 typedef typename Tests::Head Head;
8031 TypeParameterizedTest<Fixture, Head, Types>::Register(
8032 prefix, case_name, test_names, 0);
8035 return TypeParameterizedTestCase<Fixture, typename Tests::Tail, Types>
8036 ::Register(prefix, case_name, SkipComma(test_names));
8041 template <GTEST_TEMPLATE_ Fixture,
typename Types>
8042 class TypeParameterizedTestCase<Fixture, Templates0,
Types>
8045 static bool Register(
const char * ,
const char * ,
8052 #endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P 8065 UnitTest * unit_test,
int skip_count);
8082 operator bool()
const {
return true; }
8111 template <
typename T1,
typename T2>
8114 template <
typename T>
8122 template <
typename T>
8124 template <
typename T>
8129 #define GTEST_REMOVE_REFERENCE_(T) \ 8130 typename ::testing::internal::RemoveReference<T>::type 8135 template <
typename T>
8137 template <
typename T>
8143 template <
typename T,
size_t N>
8149 #if defined(_MSC_VER) && _MSC_VER < 1400 8153 template <
typename T,
size_t N>
8162 #define GTEST_REMOVE_CONST_(T) \ 8163 typename ::testing::internal::RemoveConst<T>::type 8166 #define GTEST_REMOVE_REFERENCE_AND_CONST_(T) \ 8167 GTEST_REMOVE_CONST_(GTEST_REMOVE_REFERENCE_(T)) 8172 template <
typename T>
8174 template <
typename T>
8179 #define GTEST_ADD_REFERENCE_(T) \ 8180 typename ::testing::internal::AddReference<T>::type 8191 #define GTEST_REFERENCE_TO_CONST_(T) \ 8192 GTEST_ADD_REFERENCE_(const GTEST_REMOVE_REFERENCE_(T)) 8197 template <
typename From,
typename To>
8207 static From MakeFrom();
8219 static char Helper(
To);
8220 static char (&Helper(...))[2];
8229 # pragma warning(push) // Saves the current warning state. 8230 # pragma warning(disable:4244) // Temporarily disables warning 4244. 8232 static const bool value =
8233 sizeof(Helper(ImplicitlyConvertible::MakeFrom())) == 1;
8234 # pragma warning(pop) // Restores the warning state. 8235 #elif defined(__BORLANDC__) 8239 static const bool value = __is_convertible(From,
To);
8241 static const bool value =
8242 sizeof(Helper(ImplicitlyConvertible::MakeFrom())) == 1;
8245 template <
typename From,
typename To>
8251 template <
typename T>
8254 ImplicitlyConvertible<const T *, const ::ProtocolMessage *>::value ||
8255 ImplicitlyConvertible<const T *, const ::proto2::Message *>::value >
8283 typename C::iterator * = NULL,
8284 typename C::const_iterator * = NULL)
8306 template <
typename T,
typename U>
8307 bool ArrayEq(
const T * lhs,
size_t size,
const U * rhs);
8310 template <
typename T,
typename U>
8311 inline bool ArrayEq(
const T & lhs,
const U & rhs) {
return lhs == rhs; }
8314 template <
typename T,
typename U,
size_t N>
8315 inline bool ArrayEq(
const T(&lhs)[N],
const U(&rhs)[N])
8323 template <
typename T,
typename U>
8324 bool ArrayEq(
const T * lhs,
size_t size,
const U * rhs)
8326 for (
size_t i = 0; i != size; i++)
8337 template <
typename Iter,
typename Element>
8340 for (
Iter it = begin; it !=
end; ++it)
8353 template <
typename T,
typename U>
8354 void CopyArray(
const T * from,
size_t size, U * to);
8357 template <
typename T,
typename U>
8358 inline void CopyArray(
const T & from, U * to) { *to = from; }
8361 template <
typename T,
typename U,
size_t N>
8370 template <
typename T,
typename U>
8373 for (
size_t i = 0; i != size; i++)
8396 template <
typename Element>
8408 Init(array, count, relation);
8424 if (relation_to_source_ ==
kCopy)
8425 {
delete[] array_; }
8429 size_t size()
const {
return size_; }
8430 const_iterator
begin()
const {
return array_; }
8431 const_iterator
end()
const {
return array_ + size_; }
8434 return size() == rhs.
size() &&
8450 Element *
const copy =
new Element[a_size];
8456 relation_to_source_ = relation;
8469 #define GTEST_MESSAGE_AT_(file, line, message, result_type) \ 8470 ::testing::internal::AssertHelper(result_type, file, line, message) \ 8471 = ::testing::Message() 8473 #define GTEST_MESSAGE_(message, result_type) \ 8474 GTEST_MESSAGE_AT_(__FILE__, __LINE__, message, result_type) 8476 #define GTEST_FATAL_FAILURE_(message) \ 8477 return GTEST_MESSAGE_(message, ::testing::TestPartResult::kFatalFailure) 8479 #define GTEST_NONFATAL_FAILURE_(message) \ 8480 GTEST_MESSAGE_(message, ::testing::TestPartResult::kNonFatalFailure) 8482 #define GTEST_SUCCESS_(message) \ 8483 GTEST_MESSAGE_(message, ::testing::TestPartResult::kSuccess) 8488 #define GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) \ 8489 if (::testing::internal::AlwaysTrue()) { statement; } 8491 #define GTEST_TEST_THROW_(statement, expected_exception, fail) \ 8492 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ 8493 if (::testing::internal::ConstCharPtr gtest_msg = "") { \ 8494 bool gtest_caught_expected = false; \ 8496 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ 8498 catch (expected_exception const&) { \ 8499 gtest_caught_expected = true; \ 8503 "Expected: " #statement " throws an exception of type " \ 8504 #expected_exception ".\n Actual: it throws a different type."; \ 8505 goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \ 8507 if (!gtest_caught_expected) { \ 8509 "Expected: " #statement " throws an exception of type " \ 8510 #expected_exception ".\n Actual: it throws nothing."; \ 8511 goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \ 8514 GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__): \ 8515 fail(gtest_msg.value) 8517 #define GTEST_TEST_NO_THROW_(statement, fail) \ 8518 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ 8519 if (::testing::internal::AlwaysTrue()) { \ 8521 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ 8524 goto GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__); \ 8527 GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__): \ 8528 fail("Expected: " #statement " doesn't throw an exception.\n" \ 8529 " Actual: it throws.") 8531 #define GTEST_TEST_ANY_THROW_(statement, fail) \ 8532 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ 8533 if (::testing::internal::AlwaysTrue()) { \ 8534 bool gtest_caught_any = false; \ 8536 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ 8539 gtest_caught_any = true; \ 8541 if (!gtest_caught_any) { \ 8542 goto GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__); \ 8545 GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__): \ 8546 fail("Expected: " #statement " throws an exception.\n" \ 8547 " Actual: it doesn't.") 8553 #define GTEST_TEST_BOOLEAN_(expression, text, actual, expected, fail) \ 8554 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ 8555 if (const ::testing::AssertionResult gtest_ar_ = \ 8556 ::testing::AssertionResult(expression)) \ 8559 fail(::testing::internal::GetBoolAssertionFailureMessage(\ 8560 gtest_ar_, text, #actual, #expected).c_str()) 8562 #define GTEST_TEST_NO_FATAL_FAILURE_(statement, fail) \ 8563 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ 8564 if (::testing::internal::AlwaysTrue()) { \ 8565 ::testing::internal::HasNewFatalFailureHelper gtest_fatal_failure_checker; \ 8566 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ 8567 if (gtest_fatal_failure_checker.has_new_fatal_failure()) { \ 8568 goto GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__); \ 8571 GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__): \ 8572 fail("Expected: " #statement " doesn't generate new fatal " \ 8573 "failures in the current thread.\n" \ 8574 " Actual: it does.") 8577 #define GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \ 8578 test_case_name##_##test_name##_Test 8581 #define GTEST_TEST_(test_case_name, test_name, parent_class, parent_id)\ 8582 class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) : public parent_class {\ 8584 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {}\ 8586 virtual void TestBody();\ 8587 static ::testing::TestInfo* const test_info_ GTEST_ATTRIBUTE_UNUSED_;\ 8588 GTEST_DISALLOW_COPY_AND_ASSIGN_(\ 8589 GTEST_TEST_CLASS_NAME_(test_case_name, test_name));\ 8592 ::testing::TestInfo* const GTEST_TEST_CLASS_NAME_(test_case_name, test_name)\ 8594 ::testing::internal::MakeAndRegisterTestInfo(\ 8595 #test_case_name, #test_name, NULL, NULL, \ 8597 parent_class::SetUpTestCase, \ 8598 parent_class::TearDownTestCase, \ 8599 new ::testing::internal::TestFactoryImpl<\ 8600 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>);\ 8601 void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() 8603 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_ 8641 #ifndef GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ 8642 #define GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ 8680 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_ 8681 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_ 8698 #if GTEST_HAS_DEATH_TEST 8724 static bool Create(
const char * statement,
const RE * regex,
8725 const char * file,
int line, DeathTest **
test);
8727 virtual ~DeathTest() { }
8730 class ReturnSentinel
8733 explicit ReturnSentinel(DeathTest * test) : test_(test) { }
8734 ~ReturnSentinel() { test_->Abort(TEST_ENCOUNTERED_RETURN_STATEMENT); }
8736 DeathTest *
const test_;
8745 enum TestRole { OVERSEE_TEST, EXECUTE_TEST };
8750 TEST_ENCOUNTERED_RETURN_STATEMENT,
8751 TEST_THREW_EXCEPTION,
8756 virtual TestRole AssumeRole() = 0;
8759 virtual int Wait() = 0;
8768 virtual bool Passed(
bool exit_status_ok) = 0;
8771 virtual void Abort(AbortReason reason) = 0;
8775 static const char * LastMessage();
8787 class DeathTestFactory
8790 virtual ~DeathTestFactory() { }
8791 virtual bool Create(
const char * statement,
const RE * regex,
8792 const char * file,
int line, DeathTest **
test) = 0;
8796 class DefaultDeathTestFactory :
public DeathTestFactory
8799 virtual bool Create(
const char * statement,
const RE * regex,
8800 const char * file,
int line, DeathTest **
test);
8805 GTEST_API_ bool ExitedUnsuccessfully(
int exit_status);
8809 # if GTEST_HAS_EXCEPTIONS 8810 # define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \ 8812 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ 8813 } catch (const ::std::exception& gtest_exception) { \ 8816 "\n%s: Caught std::exception-derived exception escaping the " \ 8817 "death test statement. Exception message: %s\n", \ 8818 ::testing::internal::FormatFileLocation(__FILE__, __LINE__).c_str(), \ 8819 gtest_exception.what()); \ 8821 death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \ 8823 death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \ 8827 # define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \ 8828 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) 8834 # define GTEST_DEATH_TEST_(statement, predicate, regex, fail) \ 8835 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ 8836 if (::testing::internal::AlwaysTrue()) { \ 8837 const ::testing::internal::RE& gtest_regex = (regex); \ 8838 ::testing::internal::DeathTest* gtest_dt; \ 8839 if (!::testing::internal::DeathTest::Create(#statement, >est_regex, \ 8840 __FILE__, __LINE__, >est_dt)) { \ 8841 goto GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__); \ 8843 if (gtest_dt != NULL) { \ 8844 ::testing::internal::scoped_ptr< ::testing::internal::DeathTest> \ 8845 gtest_dt_ptr(gtest_dt); \ 8846 switch (gtest_dt->AssumeRole()) { \ 8847 case ::testing::internal::DeathTest::OVERSEE_TEST: \ 8848 if (!gtest_dt->Passed(predicate(gtest_dt->Wait()))) { \ 8849 goto GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__); \ 8852 case ::testing::internal::DeathTest::EXECUTE_TEST: { \ 8853 ::testing::internal::DeathTest::ReturnSentinel \ 8854 gtest_sentinel(gtest_dt); \ 8855 GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, gtest_dt); \ 8856 gtest_dt->Abort(::testing::internal::DeathTest::TEST_DID_NOT_DIE); \ 8864 GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__): \ 8865 fail(::testing::internal::DeathTest::LastMessage()) 8873 # define GTEST_EXECUTE_STATEMENT_(statement, regex) \ 8874 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ 8875 if (::testing::internal::AlwaysTrue()) { \ 8876 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ 8878 ::testing::Message() 8883 class InternalRunDeathTestFlag
8886 InternalRunDeathTestFlag(
const std::string & a_file,
8890 : file_(a_file), line_(a_line), index_(an_index),
8891 write_fd_(a_write_fd) {}
8893 ~InternalRunDeathTestFlag()
8899 const std::string & file()
const {
return file_; }
8900 int line()
const {
return line_; }
8901 int index()
const {
return index_; }
8902 int write_fd()
const {
return write_fd_; }
8916 InternalRunDeathTestFlag * ParseInternalRunDeathTestFlag();
8918 #else // GTEST_HAS_DEATH_TEST 8952 # define GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, terminator) \ 8953 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ 8954 if (::testing::internal::AlwaysTrue()) { \ 8955 GTEST_LOG_(WARNING) \ 8956 << "Death tests are not supported on this platform.\n" \ 8957 << "Statement '" #statement "' cannot be verified."; \ 8958 } else if (::testing::internal::AlwaysFalse()) { \ 8959 ::testing::internal::RE::PartialMatch(".*", (regex)); \ 8960 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ 8963 ::testing::Message() 8965 #endif // GTEST_HAS_DEATH_TEST 8970 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_ 8982 #if GTEST_HAS_DEATH_TEST 9099 # define ASSERT_EXIT(statement, predicate, regex) \ 9100 GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_FATAL_FAILURE_) 9104 # define EXPECT_EXIT(statement, predicate, regex) \ 9105 GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_NONFATAL_FAILURE_) 9110 # define ASSERT_DEATH(statement, regex) \ 9111 ASSERT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex) 9115 # define EXPECT_DEATH(statement, regex) \ 9116 EXPECT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex) 9124 explicit ExitedWithCode(
int exit_code);
9125 bool operator()(
int exit_status)
const;
9128 void operator=(
const ExitedWithCode & other);
9130 const int exit_code_;
9133 # if !GTEST_OS_WINDOWS 9139 explicit KilledBySignal(
int signum);
9140 bool operator()(
int exit_status)
const;
9144 # endif // !GTEST_OS_WINDOWS 9191 # define EXPECT_DEBUG_DEATH(statement, regex) \ 9192 GTEST_EXECUTE_STATEMENT_(statement, regex) 9194 # define ASSERT_DEBUG_DEATH(statement, regex) \ 9195 GTEST_EXECUTE_STATEMENT_(statement, regex) 9199 # define EXPECT_DEBUG_DEATH(statement, regex) \ 9200 EXPECT_DEATH(statement, regex) 9202 # define ASSERT_DEBUG_DEATH(statement, regex) \ 9203 ASSERT_DEATH(statement, regex) 9205 # endif // NDEBUG for EXPECT_DEBUG_DEATH 9206 #endif // GTEST_HAS_DEATH_TEST 9213 #if GTEST_HAS_DEATH_TEST 9214 # define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \ 9215 EXPECT_DEATH(statement, regex) 9216 # define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \ 9217 ASSERT_DEATH(statement, regex) 9219 # define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \ 9220 GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, ) 9221 # define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \ 9222 GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, return) 9227 #endif // GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ 9268 #ifndef GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ 9269 #define GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ 9296 TEST_P(FooTest, DoesBlah)
9304 TEST_P(FooTest, HasBlahBlah)
9335 Values(
"meeny",
"miny",
"moe"));
9356 const char * pets[] = {
"cat",
"dog"};
9408 TEST_P(DerivedTest, DoesBlah)
9417 #if !GTEST_OS_SYMBIAN 9457 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_ 9458 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_ 9534 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_LINKED_PTR_H_ 9535 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_LINKED_PTR_H_ 9580 MutexLock lock(&g_linked_ptr_mutex);
9595 MutexLock lock(&g_linked_ptr_mutex);
9597 if (next_ ==
this) {
return true; }
9611 template <
typename T>
9626 assert(&ptr !=
this);
9655 T *
get()
const {
return value_; }
9661 template <
typename U>
9664 return value_ == ptr.
get();
9666 template <
typename U>
9669 return value_ != ptr.
get();
9673 template <
typename U>
9681 if (link_.
depart()) {
delete value_; }
9692 value_ = ptr->
get();
9702 template<
typename T>
inline 9705 return ptr == x.
get();
9708 template<
typename T>
inline 9711 return ptr != x.
get();
9717 template <
typename T>
9726 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_LINKED_PTR_H_ 9821 #ifndef GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ 9822 #define GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ 9842 ::std::ostream * os);
9858 template <
typename T, TypeKind kTypeKind>
9875 template <
typename T>
9883 short_str.length() <= kProtobufOneLinerMaxLength ?
9884 short_str : (
"\n" + value.DebugString());
9885 *os << (
"<" + pretty_str +
">");
9889 template <
typename T>
9931 template <
typename Char,
typename CharTraits,
typename T>
9933 ::std::basic_ostream<Char, CharTraits> & os,
const T & x)
9952 template <
typename T>
9998 template <
typename T>
10001 template <
typename T>
10006 template <
typename C>
10009 const C & container, ::std::ostream * os)
10011 const size_t kMaxCount = 32;
10015 for (
typename C::const_iterator it = container.begin();
10016 it != container.end(); ++it, ++
count)
10022 if (count == kMaxCount)
10049 template <
typename T>
10052 T * p, ::std::ostream * os)
10082 *os << reinterpret_cast<const void *>(
10090 template <
typename T>
10093 const T & value, ::std::ostream * os)
10109 template <
typename T>
10149 PrintTo(static_cast<unsigned char>(c), os);
10155 *os << (x ?
"true" :
"false");
10171 PrintTo(ImplicitCast_<const char *>(s), os);
10176 inline void PrintTo(
const signed char * s, ::std::ostream * os)
10178 PrintTo(ImplicitCast_<const void *>(s), os);
10180 inline void PrintTo(
signed char * s, ::std::ostream * os)
10182 PrintTo(ImplicitCast_<const void *>(s), os);
10184 inline void PrintTo(
const unsigned char * s, ::std::ostream * os)
10186 PrintTo(ImplicitCast_<const void *>(s), os);
10188 inline void PrintTo(
unsigned char * s, ::std::ostream * os)
10190 PrintTo(ImplicitCast_<const void *>(s), os);
10198 #if !defined(_MSC_VER) || defined(_NATIVE_WCHAR_T_DEFINED) 10203 PrintTo(ImplicitCast_<const wchar_t *>(s), os);
10212 template <
typename T>
10217 for (
size_t i = 1; i !=
count; i++)
10225 #if GTEST_HAS_GLOBAL_STRING 10231 #endif // GTEST_HAS_GLOBAL_STRING 10240 #if GTEST_HAS_GLOBAL_WSTRING 10246 #endif // GTEST_HAS_GLOBAL_WSTRING 10248 #if GTEST_HAS_STD_WSTRING 10254 #endif // GTEST_HAS_STD_WSTRING 10256 #if GTEST_HAS_TR1_TUPLE 10262 template <
typename T>
10270 inline void PrintTo(const ::std::tr1::tuple<> & t, ::std::ostream * os)
10275 template <
typename T1>
10276 void PrintTo(const ::std::tr1::tuple<T1> & t, ::std::ostream * os)
10281 template <
typename T1,
typename T2>
10282 void PrintTo(const ::std::tr1::tuple<T1, T2> & t, ::std::ostream * os)
10287 template <
typename T1,
typename T2,
typename T3>
10288 void PrintTo(const ::std::tr1::tuple<T1, T2, T3> & t, ::std::ostream * os)
10293 template <
typename T1,
typename T2,
typename T3,
typename T4>
10294 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4> & t, ::std::ostream * os)
10299 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
10300 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5> & t,
10301 ::std::ostream * os)
10306 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
10308 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6> & t,
10309 ::std::ostream * os)
10314 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
10315 typename T6,
typename T7>
10316 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7> & t,
10317 ::std::ostream * os)
10322 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
10323 typename T6,
typename T7,
typename T8>
10324 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8> & t,
10325 ::std::ostream * os)
10330 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
10331 typename T6,
typename T7,
typename T8,
typename T9>
10332 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9> & t,
10333 ::std::ostream * os)
10338 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
10339 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
10341 const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> & t,
10342 ::std::ostream * os)
10346 #endif // GTEST_HAS_TR1_TUPLE 10349 template <
typename T1,
typename T2>
10350 void PrintTo(const ::std::pair<T1, T2> & value, ::std::ostream * os)
10363 template <
typename T>
10370 # pragma warning(push) // Saves the current warning state. 10371 # pragma warning(disable:4180) // Temporarily disables warning 4180. 10377 static void Print(
const T & value, ::std::ostream * os)
10391 # pragma warning(pop) // Restores the warning state. 10397 template <
typename T>
10408 const size_t kThreshold = 18;
10409 const size_t kChunkSize = 8;
10415 if (len <= kThreshold)
10432 const char * begin,
size_t len, ::std::ostream * os);
10436 const wchar_t * begin,
size_t len, ::std::ostream * os);
10439 template <
typename T,
size_t N>
10445 static void Print(
const T(&a)[N], ::std::ostream * os)
10452 template <
typename T>
10459 # pragma warning(push) // Saves the current warning state. 10460 # pragma warning(disable:4180) // Temporarily disables warning 4180. 10463 static void Print(
const T & value, ::std::ostream * os)
10467 *os <<
"@" <<
reinterpret_cast<const void *
>(&value) <<
" ";
10474 # pragma warning(pop) // Restores the warning state. 10482 template <
typename T>
10486 static void Print(
const T & value, ::std::ostream * os)
10491 template <
typename T>
10495 static void Print(
const T & value, ::std::ostream * os)
10500 template <
typename T,
size_t N>
10504 static void Print(
const T(&value)[N], ::std::ostream * os)
10513 static void Print(
const char * str, ::std::ostream * os)
10530 static void Print(
char * str, ::std::ostream * os)
10536 #if GTEST_HAS_STD_WSTRING 10541 static void Print(
const wchar_t * str, ::std::ostream * os)
10560 static void Print(
wchar_t * str, ::std::ostream * os)
10566 template <
typename T>
10576 template <
typename T>
10585 #if GTEST_HAS_TR1_TUPLE 10596 template <
size_t N>
10600 template <
typename Tuple>
10606 ::Print(::std::tr1::get < N - 1 > (t), os);
10611 template <
typename Tuple>
10615 ::std::stringstream ss;
10617 strings->push_back(ss.str());
10625 template <
typename Tuple>
10628 template <
typename Tuple>
10639 template <
typename Tuple>
10643 Print(::std::tr1::get<0>(t), os);
10646 template <
typename Tuple>
10649 ::std::stringstream ss;
10651 strings->push_back(ss.str());
10657 template <
typename T>
10662 PrintPrefixTo(t, os);
10669 template <
typename Tuple>
10674 TersePrintPrefixToStrings(value, &result);
10677 #endif // GTEST_HAS_TR1_TUPLE 10681 template <
typename T>
10684 ::std::stringstream ss;
10691 #endif // GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ 10693 #if GTEST_HAS_PARAM_TEST 10707 const char * file,
int line);
10714 template <
typename T>
10727 virtual void Advance() = 0;
10735 virtual const T * Current()
const = 0;
10745 template <
typename T>
10757 if (
this != &other)
10758 { impl_.reset(other.
impl_->Clone()); }
10780 return impl_.get() == other.
impl_.get() || impl_->Equals(*other.
impl_);
10784 return !(*
this == other);
10795 template <
typename T>
10813 template<
typename T>
10824 impl_ = other.
impl_;
10828 iterator
begin()
const {
return iterator(impl_->Begin()); }
10829 iterator
end()
const {
return iterator(impl_->End()); }
10839 template <
typename T,
typename IncrementT>
10844 : begin_(begin), end_(end),
10845 step_(step), end_index_(CalculateEndIndex(begin, end, step)) {}
10850 return new Iterator(
this, begin_, 0, step_);
10854 return new Iterator(
this, end_, end_index_, step_);
10863 : base_(base), value_(value), index_(index), step_(step) {}
10872 value_ = value_ + step_;
10885 <<
"The program attempted to compare iterators " 10886 <<
"from different generators." << std::endl;
10887 const int other_index =
10888 CheckedDowncastToActualType<const Iterator>(&other)->index_;
10889 return index_ == other_index;
10895 base_(other.base_), value_(other.value_), index_(other.index_),
10896 step_(other.step_) {}
10899 void operator=(
const Iterator & other);
10909 const IncrementT & step)
10913 for (T i = begin; i <
end; i = i + step)
10935 template <
typename T>
10939 template <
typename ForwardIterator>
10941 : container_(begin, end) {}
10946 return new Iterator(
this, container_.begin());
10950 return new Iterator(
this, container_.end());
10960 typename ContainerType::const_iterator iterator)
10961 : base_(base), iterator_(iterator) {}
10986 if (value_.get() == NULL)
10987 { value_.reset(
new T(*iterator_)); }
10989 return value_.get();
10996 <<
"The program attempted to compare iterators " 10997 <<
"from different generators." << std::endl;
10998 return iterator_ ==
10999 CheckedDowncastToActualType<const Iterator>(&other)->iterator_;
11007 base_(other.base_),
11008 iterator_(other.iterator_) {}
11030 template <
class TestClass>
11036 parameter_(parameter) {}
11039 TestClass::SetParam(¶meter_);
11040 return new TestClass();
11053 template <
class ParamType>
11059 virtual TestFactoryBase * CreateTestFactory(ParamType parameter) = 0;
11070 template <
class TestCase>
11104 virtual const string & GetTestCaseName()
const = 0;
11106 virtual TypeId GetTestCaseTypeId()
const = 0;
11111 virtual void RegisterTests() = 0;
11127 template <
class TestCase>
11139 : test_case_name_(name) {}
11152 const char * test_base_name,
11162 GeneratorCreationFunc * func,
11166 instantiations_.push_back(::std::make_pair(instantiation_name, func));
11176 for (
typename TestInfoContainer::iterator test_it = tests_.begin();
11177 test_it != tests_.end(); ++test_it)
11181 for (
typename InstantiationContainer::iterator gen_it =
11182 instantiations_.begin(); gen_it != instantiations_.end();
11185 const string & instantiation_name = gen_it->first;
11188 string test_case_name;
11190 if (!instantiation_name.empty())
11191 { test_case_name = instantiation_name +
"/"; }
11193 test_case_name += test_info->test_case_base_name;
11199 param_it != generator.
end(); ++param_it, ++i)
11202 test_name_stream << test_info->test_base_name <<
"/" << i;
11204 test_case_name.c_str(),
11208 GetTestCaseTypeId(),
11209 TestCase::SetUpTestCase,
11210 TestCase::TearDownTestCase,
11211 test_info->test_meta_factory->CreateTestFactory(*param_it));
11223 const char * a_test_base_name,
11225 test_case_base_name(a_test_case_base_name),
11226 test_base_name(a_test_base_name),
11227 test_meta_factory(a_test_meta_factory) {}
11236 typedef ::std::vector<std::pair<string, GeneratorCreationFunc *> >
11258 for (TestCaseInfoContainer::iterator it = test_case_infos_.begin();
11259 it != test_case_infos_.end(); ++it)
11267 template <
class TestCase>
11269 const char * test_case_name,
11275 for (TestCaseInfoContainer::iterator it = test_case_infos_.begin();
11276 it != test_case_infos_.end(); ++it)
11278 if ((*it)->GetTestCaseName() == test_case_name)
11280 if ((*it)->GetTestCaseTypeId() != GetTypeId<TestCase>())
11302 if (typed_test_info == NULL)
11305 test_case_infos_.push_back(typed_test_info);
11308 return typed_test_info;
11312 for (TestCaseInfoContainer::iterator it = test_case_infos_.begin();
11313 it != test_case_infos_.end(); ++it)
11315 (*it)->RegisterTests();
11330 #endif // GTEST_HAS_PARAM_TEST 11332 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_ 11378 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_ 11379 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_ 11385 #if GTEST_HAS_PARAM_TEST 11392 template <
typename ForwardIterator>
11393 internal::ParamGenerator <
11394 typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type >
11395 ValuesIn(ForwardIterator begin, ForwardIterator
end);
11397 template <
typename T,
size_t N>
11398 internal::ParamGenerator<T>
ValuesIn(
const T(&array)[N]);
11400 template <
class Container>
11401 internal::ParamGenerator<typename Container::value_type>
ValuesIn(
11402 const Container & container);
11408 template <
typename T1>
11414 template <
typename T>
11424 template <
typename T1,
typename T2>
11430 template <
typename T>
11433 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_)};
11445 template <
typename T1,
typename T2,
typename T3>
11451 template <
typename T>
11454 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
11455 static_cast<T
>(v3_)
11469 template <
typename T1,
typename T2,
typename T3,
typename T4>
11476 template <
typename T>
11479 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
11480 static_cast<T
>(v3_), static_cast<T>(v4_)
11495 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
11499 ValueArray5(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5) : v1_(v1), v2_(v2), v3_(v3),
11500 v4_(v4), v5_(v5) {}
11502 template <
typename T>
11505 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
11506 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_)
11522 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11528 v3_(v3), v4_(v4), v5_(v5), v6_(v6) {}
11530 template <
typename T>
11533 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
11534 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
11535 static_cast<T>(v6_)
11552 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11553 typename T6,
typename T7>
11558 v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7) {}
11560 template <
typename T>
11563 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
11564 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
11565 static_cast<T>(v6_),
static_cast<T
>(v7_)
11583 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11584 typename T6,
typename T7,
typename T8>
11589 T8 v8) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
11592 template <
typename T>
11595 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
11596 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
11597 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_)
11616 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11617 typename T6,
typename T7,
typename T8,
typename T9>
11622 T9 v9) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
11623 v8_(v8), v9_(v9) {}
11625 template <
typename T>
11628 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
11629 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
11630 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
11631 static_cast<T
>(v9_)
11651 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11652 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
11657 T10 v10) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
11658 v8_(v8), v9_(v9), v10_(v10) {}
11660 template <
typename T>
11663 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
11664 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
11665 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
11666 static_cast<T
>(v9_), static_cast<T>(v10_)
11687 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11688 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11694 T10 v10, T11 v11) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
11695 v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11) {}
11697 template <
typename T>
11700 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
11701 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
11702 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
11703 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_)
11725 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11726 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11727 typename T11,
typename T12>
11732 T10 v10, T11 v11, T12 v12) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
11733 v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12) {}
11735 template <
typename T>
11738 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
11739 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
11740 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
11741 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
11742 static_cast<T>(v12_)
11765 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11766 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11767 typename T11,
typename T12,
typename T13>
11772 T10 v10, T11 v11, T12 v12, T13 v13) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
11773 v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
11774 v12_(v12), v13_(v13) {}
11776 template <
typename T>
11779 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
11780 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
11781 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
11782 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
11783 static_cast<T>(v12_),
static_cast<T
>(v13_)
11807 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11808 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11809 typename T11,
typename T12,
typename T13,
typename T14>
11814 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14) : v1_(v1), v2_(v2), v3_(v3),
11815 v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
11816 v11_(v11), v12_(v12), v13_(v13), v14_(v14) {}
11818 template <
typename T>
11821 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
11822 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
11823 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
11824 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
11825 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_)
11850 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11851 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11852 typename T11,
typename T12,
typename T13,
typename T14,
typename T15>
11857 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15) : v1_(v1), v2_(v2),
11858 v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
11859 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15) {}
11861 template <
typename T>
11864 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
11865 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
11866 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
11867 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
11868 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
11869 static_cast<T
>(v15_)
11895 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11896 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11897 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11903 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16) : v1_(v1),
11904 v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
11905 v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
11908 template <
typename T>
11911 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
11912 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
11913 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
11914 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
11915 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
11916 static_cast<T
>(v15_), static_cast<T>(v16_)
11943 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11944 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11945 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11946 typename T16,
typename T17>
11951 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
11952 T17 v17) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
11953 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
11954 v15_(v15), v16_(v16), v17_(v17) {}
11956 template <
typename T>
11959 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
11960 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
11961 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
11962 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
11963 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
11964 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_)
11992 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11993 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11994 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11995 typename T16,
typename T17,
typename T18>
12000 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12001 T18 v18) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
12002 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
12003 v15_(v15), v16_(v16), v17_(v17), v18_(v18) {}
12005 template <
typename T>
12008 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
12009 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
12010 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
12011 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
12012 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
12013 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
12014 static_cast<T>(v18_)
12043 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12044 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12045 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12046 typename T16,
typename T17,
typename T18,
typename T19>
12051 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12052 T18 v18, T19 v19) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
12053 v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13),
12054 v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19) {}
12056 template <
typename T>
12059 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
12060 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
12061 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
12062 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
12063 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
12064 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
12065 static_cast<T>(v18_),
static_cast<T
>(v19_)
12095 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12096 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12097 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12098 typename T16,
typename T17,
typename T18,
typename T19,
typename T20>
12103 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12104 T18 v18, T19 v19, T20 v20) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
12105 v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12),
12106 v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18),
12107 v19_(v19), v20_(v20) {}
12109 template <
typename T>
12112 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
12113 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
12114 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
12115 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
12116 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
12117 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
12118 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_)
12149 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12150 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12151 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12152 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12158 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12159 T18 v18, T19 v19, T20 v20, T21 v21) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
12160 v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
12161 v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17),
12162 v18_(v18), v19_(v19), v20_(v20), v21_(v21) {}
12164 template <
typename T>
12167 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
12168 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
12169 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
12170 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
12171 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
12172 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
12173 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
12174 static_cast<T
>(v21_)
12206 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12207 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12208 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12209 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12210 typename T21,
typename T22>
12215 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12216 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22) : v1_(v1), v2_(v2), v3_(v3),
12217 v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
12218 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
12219 v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22) {}
12221 template <
typename T>
12224 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
12225 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
12226 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
12227 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
12228 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
12229 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
12230 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
12231 static_cast<T
>(v21_), static_cast<T>(v22_)
12264 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12265 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12266 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12267 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12268 typename T21,
typename T22,
typename T23>
12273 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12274 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23) : v1_(v1), v2_(v2),
12275 v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
12276 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
12277 v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
12280 template <
typename T>
12283 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
12284 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
12285 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
12286 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
12287 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
12288 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
12289 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
12290 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_)
12324 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12325 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12326 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12327 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12328 typename T21,
typename T22,
typename T23,
typename T24>
12333 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12334 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24) : v1_(v1),
12335 v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
12336 v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
12337 v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21),
12338 v22_(v22), v23_(v23), v24_(v24) {}
12340 template <
typename T>
12343 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
12344 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
12345 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
12346 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
12347 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
12348 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
12349 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
12350 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
12351 static_cast<T>(v24_)
12386 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12387 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12388 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12389 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12390 typename T21,
typename T22,
typename T23,
typename T24,
typename T25>
12395 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12396 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
12397 T25 v25) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
12398 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
12399 v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
12400 v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25) {}
12402 template <
typename T>
12405 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
12406 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
12407 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
12408 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
12409 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
12410 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
12411 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
12412 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
12413 static_cast<T>(v24_),
static_cast<T
>(v25_)
12449 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12450 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12451 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12452 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12453 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12459 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12460 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12461 T26 v26) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
12462 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
12463 v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
12464 v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26) {}
12466 template <
typename T>
12469 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
12470 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
12471 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
12472 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
12473 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
12474 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
12475 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
12476 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
12477 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_)
12514 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12515 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12516 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12517 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12518 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12519 typename T26,
typename T27>
12524 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12525 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12526 T26 v26, T27 v27) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
12527 v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13),
12528 v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19),
12529 v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25),
12530 v26_(v26), v27_(v27) {}
12532 template <
typename T>
12535 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
12536 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
12537 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
12538 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
12539 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
12540 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
12541 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
12542 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
12543 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
12544 static_cast<T
>(v27_)
12582 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12583 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12584 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12585 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12586 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12587 typename T26,
typename T27,
typename T28>
12592 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12593 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12594 T26 v26, T27 v27, T28 v28) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
12595 v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12),
12596 v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18),
12597 v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24),
12598 v25_(v25), v26_(v26), v27_(v27), v28_(v28) {}
12600 template <
typename T>
12603 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
12604 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
12605 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
12606 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
12607 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
12608 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
12609 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
12610 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
12611 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
12612 static_cast<T
>(v27_), static_cast<T>(v28_)
12651 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12652 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12653 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12654 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12655 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12656 typename T26,
typename T27,
typename T28,
typename T29>
12661 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12662 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12663 T26 v26, T27 v27, T28 v28, T29 v29) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
12664 v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
12665 v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17),
12666 v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23),
12667 v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29) {}
12669 template <
typename T>
12672 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
12673 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
12674 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
12675 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
12676 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
12677 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
12678 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
12679 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
12680 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
12681 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_)
12721 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12722 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12723 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12724 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12725 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12726 typename T26,
typename T27,
typename T28,
typename T29,
typename T30>
12731 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12732 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12733 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30) : v1_(v1), v2_(v2), v3_(v3),
12734 v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
12735 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
12736 v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
12737 v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
12738 v29_(v29), v30_(v30) {}
12740 template <
typename T>
12743 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
12744 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
12745 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
12746 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
12747 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
12748 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
12749 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
12750 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
12751 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
12752 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
12753 static_cast<T>(v30_)
12794 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12795 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12796 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12797 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12798 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12799 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
12805 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12806 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12807 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31) : v1_(v1), v2_(v2),
12808 v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
12809 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
12810 v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
12811 v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
12812 v29_(v29), v30_(v30), v31_(v31) {}
12814 template <
typename T>
12817 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
12818 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
12819 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
12820 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
12821 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
12822 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
12823 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
12824 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
12825 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
12826 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
12827 static_cast<T>(v30_),
static_cast<T
>(v31_)
12869 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12870 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12871 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12872 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12873 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12874 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
12875 typename T31,
typename T32>
12880 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12881 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12882 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32) : v1_(v1),
12883 v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
12884 v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
12885 v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21),
12886 v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27),
12887 v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32) {}
12889 template <
typename T>
12892 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
12893 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
12894 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
12895 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
12896 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
12897 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
12898 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
12899 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
12900 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
12901 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
12902 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_)
12945 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12946 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12947 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12948 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12949 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12950 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
12951 typename T31,
typename T32,
typename T33>
12956 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12957 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12958 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32,
12959 T33 v33) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
12960 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
12961 v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
12962 v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
12963 v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
12966 template <
typename T>
12969 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
12970 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
12971 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
12972 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
12973 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
12974 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
12975 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
12976 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
12977 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
12978 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
12979 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
12980 static_cast<T
>(v33_)
13024 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13025 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13026 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13027 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13028 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13029 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13030 typename T31,
typename T32,
typename T33,
typename T34>
13035 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13036 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13037 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13038 T34 v34) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
13039 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
13040 v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
13041 v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
13042 v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
13043 v33_(v33), v34_(v34) {}
13045 template <
typename T>
13048 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
13049 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
13050 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
13051 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
13052 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
13053 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
13054 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
13055 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
13056 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
13057 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
13058 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
13059 static_cast<T
>(v33_), static_cast<T>(v34_)
13104 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13105 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13106 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13107 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13108 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13109 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13110 typename T31,
typename T32,
typename T33,
typename T34,
typename T35>
13115 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13116 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13117 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13118 T34 v34, T35 v35) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
13119 v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13),
13120 v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19),
13121 v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25),
13122 v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31),
13123 v32_(v32), v33_(v33), v34_(v34), v35_(v35) {}
13125 template <
typename T>
13128 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
13129 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
13130 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
13131 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
13132 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
13133 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
13134 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
13135 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
13136 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
13137 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
13138 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
13139 static_cast<T
>(v33_), static_cast<T>(v34_),
static_cast<T
>(v35_)
13185 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13186 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13187 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13188 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13189 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13190 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13191 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
13197 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13198 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13199 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13200 T34 v34, T35 v35, T36 v36) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
13201 v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12),
13202 v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18),
13203 v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24),
13204 v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30),
13205 v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36) {}
13207 template <
typename T>
13210 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
13211 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
13212 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
13213 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
13214 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
13215 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
13216 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
13217 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
13218 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
13219 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
13220 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
13221 static_cast<T
>(v33_), static_cast<T>(v34_),
static_cast<T
>(v35_),
13222 static_cast<T>(v36_)
13269 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13270 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13271 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13272 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13273 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13274 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13275 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
13276 typename T36,
typename T37>
13281 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13282 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13283 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13284 T34 v34, T35 v35, T36 v36, T37 v37) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
13285 v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
13286 v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17),
13287 v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23),
13288 v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29),
13289 v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35),
13290 v36_(v36), v37_(v37) {}
13292 template <
typename T>
13295 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
13296 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
13297 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
13298 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
13299 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
13300 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
13301 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
13302 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
13303 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
13304 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
13305 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
13306 static_cast<T
>(v33_), static_cast<T>(v34_),
static_cast<T
>(v35_),
13307 static_cast<T>(v36_),
static_cast<T
>(v37_)
13355 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13356 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13357 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13358 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13359 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13360 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13361 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
13362 typename T36,
typename T37,
typename T38>
13367 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13368 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13369 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13370 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38) : v1_(v1), v2_(v2), v3_(v3),
13371 v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
13372 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
13373 v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
13374 v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
13375 v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34),
13376 v35_(v35), v36_(v36), v37_(v37), v38_(v38) {}
13378 template <
typename T>
13381 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
13382 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
13383 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
13384 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
13385 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
13386 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
13387 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
13388 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
13389 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
13390 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
13391 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
13392 static_cast<T
>(v33_), static_cast<T>(v34_),
static_cast<T
>(v35_),
13393 static_cast<T>(v36_),
static_cast<T
>(v37_), static_cast<T>(v38_)
13442 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13443 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13444 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13445 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13446 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13447 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13448 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
13449 typename T36,
typename T37,
typename T38,
typename T39>
13454 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13455 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13456 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13457 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39) : v1_(v1), v2_(v2),
13458 v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
13459 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
13460 v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
13461 v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
13462 v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34),
13463 v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39) {}
13465 template <
typename T>
13468 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
13469 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
13470 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
13471 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
13472 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
13473 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
13474 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
13475 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
13476 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
13477 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
13478 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
13479 static_cast<T
>(v33_), static_cast<T>(v34_),
static_cast<T
>(v35_),
13480 static_cast<T>(v36_),
static_cast<T
>(v37_), static_cast<T>(v38_),
13481 static_cast<T
>(v39_)
13531 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13532 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13533 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13534 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13535 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13536 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13537 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
13538 typename T36,
typename T37,
typename T38,
typename T39,
typename T40>
13543 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13544 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13545 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13546 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40) : v1_(v1),
13547 v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
13548 v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
13549 v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21),
13550 v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27),
13551 v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33),
13552 v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39),
13555 template <
typename T>
13558 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
13559 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
13560 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
13561 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
13562 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
13563 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
13564 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
13565 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
13566 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
13567 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
13568 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
13569 static_cast<T
>(v33_), static_cast<T>(v34_),
static_cast<T
>(v35_),
13570 static_cast<T>(v36_),
static_cast<T
>(v37_), static_cast<T>(v38_),
13571 static_cast<T
>(v39_), static_cast<T>(v40_)
13622 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13623 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13624 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13625 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13626 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13627 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13628 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
13629 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
13635 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13636 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13637 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13638 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40,
13639 T41 v41) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
13640 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
13641 v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
13642 v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
13643 v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
13644 v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38),
13645 v39_(v39), v40_(v40), v41_(v41) {}
13647 template <
typename T>
13650 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
13651 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
13652 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
13653 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
13654 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
13655 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
13656 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
13657 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
13658 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
13659 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
13660 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
13661 static_cast<T
>(v33_), static_cast<T>(v34_),
static_cast<T
>(v35_),
13662 static_cast<T>(v36_),
static_cast<T
>(v37_), static_cast<T>(v38_),
13663 static_cast<T
>(v39_), static_cast<T>(v40_),
static_cast<T
>(v41_)
13715 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13716 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13717 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13718 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13719 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13720 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13721 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
13722 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
13723 typename T41,
typename T42>
13728 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13729 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13730 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13731 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
13732 T42 v42) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
13733 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
13734 v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
13735 v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
13736 v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
13737 v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38),
13738 v39_(v39), v40_(v40), v41_(v41), v42_(v42) {}
13740 template <
typename T>
13743 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
13744 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
13745 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
13746 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
13747 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
13748 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
13749 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
13750 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
13751 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
13752 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
13753 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
13754 static_cast<T
>(v33_), static_cast<T>(v34_),
static_cast<T
>(v35_),
13755 static_cast<T>(v36_),
static_cast<T
>(v37_), static_cast<T>(v38_),
13756 static_cast<T
>(v39_), static_cast<T>(v40_),
static_cast<T
>(v41_),
13757 static_cast<T>(v42_)
13810 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13811 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13812 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13813 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13814 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13815 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13816 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
13817 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
13818 typename T41,
typename T42,
typename T43>
13823 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13824 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13825 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13826 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
13827 T42 v42, T43 v43) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
13828 v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13),
13829 v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19),
13830 v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25),
13831 v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31),
13832 v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37),
13833 v38_(v38), v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43) {}
13835 template <
typename T>
13838 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
13839 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
13840 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
13841 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
13842 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
13843 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
13844 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
13845 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
13846 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
13847 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
13848 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
13849 static_cast<T
>(v33_), static_cast<T>(v34_),
static_cast<T
>(v35_),
13850 static_cast<T>(v36_),
static_cast<T
>(v37_), static_cast<T>(v38_),
13851 static_cast<T
>(v39_), static_cast<T>(v40_),
static_cast<T
>(v41_),
13852 static_cast<T>(v42_),
static_cast<T
>(v43_)
13906 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13907 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13908 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13909 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13910 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13911 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13912 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
13913 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
13914 typename T41,
typename T42,
typename T43,
typename T44>
13919 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13920 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13921 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13922 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
13923 T42 v42, T43 v43, T44 v44) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
13924 v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12),
13925 v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18),
13926 v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24),
13927 v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30),
13928 v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36),
13929 v37_(v37), v38_(v38), v39_(v39), v40_(v40), v41_(v41), v42_(v42),
13930 v43_(v43), v44_(v44) {}
13932 template <
typename T>
13935 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
13936 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
13937 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
13938 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
13939 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
13940 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
13941 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
13942 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
13943 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
13944 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
13945 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
13946 static_cast<T
>(v33_), static_cast<T>(v34_),
static_cast<T
>(v35_),
13947 static_cast<T>(v36_),
static_cast<T
>(v37_), static_cast<T>(v38_),
13948 static_cast<T
>(v39_), static_cast<T>(v40_),
static_cast<T
>(v41_),
13949 static_cast<T>(v42_),
static_cast<T
>(v43_), static_cast<T>(v44_)
14004 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
14005 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
14006 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
14007 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
14008 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
14009 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
14010 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
14011 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
14012 typename T41,
typename T42,
typename T43,
typename T44,
typename T45>
14017 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
14018 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
14019 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
14020 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
14021 T42 v42, T43 v43, T44 v44, T45 v45) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
14022 v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
14023 v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17),
14024 v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23),
14025 v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29),
14026 v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35),
14027 v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40), v41_(v41),
14028 v42_(v42), v43_(v43), v44_(v44), v45_(v45) {}
14030 template <
typename T>
14033 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
14034 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
14035 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
14036 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
14037 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
14038 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
14039 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
14040 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
14041 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
14042 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
14043 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
14044 static_cast<T
>(v33_), static_cast<T>(v34_),
static_cast<T
>(v35_),
14045 static_cast<T>(v36_),
static_cast<T
>(v37_), static_cast<T>(v38_),
14046 static_cast<T
>(v39_), static_cast<T>(v40_),
static_cast<T
>(v41_),
14047 static_cast<T>(v42_),
static_cast<T
>(v43_), static_cast<T>(v44_),
14048 static_cast<T
>(v45_)
14104 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
14105 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
14106 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
14107 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
14108 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
14109 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
14110 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
14111 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
14112 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
14118 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
14119 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
14120 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
14121 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
14122 T42 v42, T43 v43, T44 v44, T45 v45, T46 v46) : v1_(v1), v2_(v2), v3_(v3),
14123 v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
14124 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
14125 v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
14126 v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
14127 v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34),
14128 v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40),
14129 v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45), v46_(v46) {}
14131 template <
typename T>
14134 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
14135 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
14136 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
14137 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
14138 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
14139 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
14140 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
14141 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
14142 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
14143 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
14144 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
14145 static_cast<T
>(v33_), static_cast<T>(v34_),
static_cast<T
>(v35_),
14146 static_cast<T>(v36_),
static_cast<T
>(v37_), static_cast<T>(v38_),
14147 static_cast<T
>(v39_), static_cast<T>(v40_),
static_cast<T
>(v41_),
14148 static_cast<T>(v42_),
static_cast<T
>(v43_), static_cast<T>(v44_),
14149 static_cast<T
>(v45_), static_cast<T>(v46_)
14206 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
14207 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
14208 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
14209 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
14210 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
14211 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
14212 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
14213 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
14214 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
14215 typename T46,
typename T47>
14220 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
14221 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
14222 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
14223 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
14224 T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47) : v1_(v1), v2_(v2),
14225 v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
14226 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
14227 v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
14228 v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
14229 v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34),
14230 v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40),
14231 v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45), v46_(v46),
14234 template <
typename T>
14237 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
14238 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
14239 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
14240 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
14241 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
14242 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
14243 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
14244 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
14245 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
14246 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
14247 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
14248 static_cast<T
>(v33_), static_cast<T>(v34_),
static_cast<T
>(v35_),
14249 static_cast<T>(v36_),
static_cast<T
>(v37_), static_cast<T>(v38_),
14250 static_cast<T
>(v39_), static_cast<T>(v40_),
static_cast<T
>(v41_),
14251 static_cast<T>(v42_),
static_cast<T
>(v43_), static_cast<T>(v44_),
14252 static_cast<T
>(v45_), static_cast<T>(v46_),
static_cast<T
>(v47_)
14310 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
14311 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
14312 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
14313 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
14314 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
14315 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
14316 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
14317 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
14318 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
14319 typename T46,
typename T47,
typename T48>
14324 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
14325 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
14326 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
14327 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
14328 T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48) : v1_(v1),
14329 v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
14330 v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
14331 v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21),
14332 v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27),
14333 v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33),
14334 v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39),
14335 v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45),
14336 v46_(v46), v47_(v47), v48_(v48) {}
14338 template <
typename T>
14341 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
14342 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
14343 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
14344 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
14345 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
14346 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
14347 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
14348 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
14349 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
14350 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
14351 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
14352 static_cast<T
>(v33_), static_cast<T>(v34_),
static_cast<T
>(v35_),
14353 static_cast<T>(v36_),
static_cast<T
>(v37_), static_cast<T>(v38_),
14354 static_cast<T
>(v39_), static_cast<T>(v40_),
static_cast<T
>(v41_),
14355 static_cast<T>(v42_),
static_cast<T
>(v43_), static_cast<T>(v44_),
14356 static_cast<T
>(v45_), static_cast<T>(v46_),
static_cast<T
>(v47_),
14357 static_cast<T>(v48_)
14416 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
14417 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
14418 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
14419 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
14420 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
14421 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
14422 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
14423 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
14424 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
14425 typename T46,
typename T47,
typename T48,
typename T49>
14430 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
14431 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
14432 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
14433 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
14434 T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48,
14435 T49 v49) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
14436 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
14437 v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
14438 v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
14439 v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
14440 v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38),
14441 v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44),
14442 v45_(v45), v46_(v46), v47_(v47), v48_(v48), v49_(v49) {}
14444 template <
typename T>
14447 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
14448 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
14449 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
14450 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
14451 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
14452 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
14453 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
14454 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
14455 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
14456 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
14457 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
14458 static_cast<T
>(v33_), static_cast<T>(v34_),
static_cast<T
>(v35_),
14459 static_cast<T>(v36_),
static_cast<T
>(v37_), static_cast<T>(v38_),
14460 static_cast<T
>(v39_), static_cast<T>(v40_),
static_cast<T
>(v41_),
14461 static_cast<T>(v42_),
static_cast<T
>(v43_), static_cast<T>(v44_),
14462 static_cast<T
>(v45_), static_cast<T>(v46_),
static_cast<T
>(v47_),
14463 static_cast<T>(v48_),
static_cast<T
>(v49_)
14523 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
14524 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
14525 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
14526 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
14527 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
14528 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
14529 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
14530 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
14531 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
14532 typename T46,
typename T47,
typename T48,
typename T49,
typename T50>
14537 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
14538 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
14539 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
14540 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
14541 T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48, T49 v49,
14542 T50 v50) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
14543 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
14544 v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
14545 v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
14546 v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
14547 v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38),
14548 v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44),
14549 v45_(v45), v46_(v46), v47_(v47), v48_(v48), v49_(v49), v50_(v50) {}
14551 template <
typename T>
14554 const T array[] = {
static_cast<T
>(v1_), static_cast<T>(v2_),
14555 static_cast<T
>(v3_), static_cast<T>(v4_),
static_cast<T
>(v5_),
14556 static_cast<T>(v6_),
static_cast<T
>(v7_), static_cast<T>(v8_),
14557 static_cast<T
>(v9_), static_cast<T>(v10_),
static_cast<T
>(v11_),
14558 static_cast<T>(v12_),
static_cast<T
>(v13_), static_cast<T>(v14_),
14559 static_cast<T
>(v15_), static_cast<T>(v16_),
static_cast<T
>(v17_),
14560 static_cast<T>(v18_),
static_cast<T
>(v19_), static_cast<T>(v20_),
14561 static_cast<T
>(v21_), static_cast<T>(v22_),
static_cast<T
>(v23_),
14562 static_cast<T>(v24_),
static_cast<T
>(v25_), static_cast<T>(v26_),
14563 static_cast<T
>(v27_), static_cast<T>(v28_),
static_cast<T
>(v29_),
14564 static_cast<T>(v30_),
static_cast<T
>(v31_), static_cast<T>(v32_),
14565 static_cast<T
>(v33_), static_cast<T>(v34_),
static_cast<T
>(v35_),
14566 static_cast<T>(v36_),
static_cast<T
>(v37_), static_cast<T>(v38_),
14567 static_cast<T
>(v39_), static_cast<T>(v40_),
static_cast<T
>(v41_),
14568 static_cast<T>(v42_),
static_cast<T
>(v43_), static_cast<T>(v44_),
14569 static_cast<T
>(v45_), static_cast<T>(v46_),
static_cast<T
>(v47_),
14570 static_cast<T>(v48_),
static_cast<T
>(v49_), static_cast<T>(v50_)
14631 # if GTEST_HAS_COMBINE 14637 template <
typename T1,
typename T2>
14646 : g1_(g1), g2_(g2) {}
14651 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin());
14655 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end());
14668 begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
14669 begin2_(g2.begin()), end2_(g2.end()), current2_(current2)
14671 ComputeCurrentValue();
14686 if (current2_ == end2_)
14688 current2_ = begin2_;
14692 ComputeCurrentValue();
14698 virtual const ParamType *
Current()
const {
return ¤t_value_; }
14704 <<
"The program attempted to compare iterators " 14705 <<
"from different generators." << std::endl;
14707 CheckedDowncastToActualType<const Iterator>(&other);
14711 return (AtEnd() && typed_other->AtEnd()) ||
14713 current1_ == typed_other->current1_ &&
14714 current2_ == typed_other->current2_);
14719 : base_(other.base_),
14720 begin1_(other.begin1_),
14721 end1_(other.end1_),
14722 current1_(other.current1_),
14723 begin2_(other.begin2_),
14724 end2_(other.end2_),
14725 current2_(other.current2_)
14727 ComputeCurrentValue();
14733 { current_value_ = ParamType(*current1_, *current2_); }
14740 current1_ == end1_ ||
14741 current2_ == end2_;
14745 void operator=(
const Iterator & other);
14767 template <
typename T1,
typename T2,
typename T3>
14776 : g1_(g1), g2_(g2), g3_(g3) {}
14781 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
14786 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end());
14801 begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
14802 begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
14803 begin3_(g3.begin()), end3_(g3.end()), current3_(current3)
14805 ComputeCurrentValue();
14820 if (current3_ == end3_)
14822 current3_ = begin3_;
14826 if (current2_ == end2_)
14828 current2_ = begin2_;
14832 ComputeCurrentValue();
14838 virtual const ParamType *
Current()
const {
return ¤t_value_; }
14844 <<
"The program attempted to compare iterators " 14845 <<
"from different generators." << std::endl;
14847 CheckedDowncastToActualType<const Iterator>(&other);
14851 return (AtEnd() && typed_other->AtEnd()) ||
14853 current1_ == typed_other->current1_ &&
14854 current2_ == typed_other->current2_ &&
14855 current3_ == typed_other->current3_);
14860 : base_(other.base_),
14861 begin1_(other.begin1_),
14862 end1_(other.end1_),
14863 current1_(other.current1_),
14864 begin2_(other.begin2_),
14865 end2_(other.end2_),
14866 current2_(other.current2_),
14867 begin3_(other.begin3_),
14868 end3_(other.end3_),
14869 current3_(other.current3_)
14871 ComputeCurrentValue();
14877 { current_value_ = ParamType(*current1_, *current2_, *current3_); }
14884 current1_ == end1_ ||
14885 current2_ == end2_ ||
14886 current3_ == end3_;
14890 void operator=(
const Iterator & other);
14916 template <
typename T1,
typename T2,
typename T3,
typename T4>
14926 : g1_(g1), g2_(g2), g3_(g3), g4_(g4) {}
14931 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
14932 g3_.begin(), g4_, g4_.begin());
14936 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
14954 begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
14955 begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
14956 begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
14957 begin4_(g4.begin()), end4_(g4.end()), current4_(current4)
14959 ComputeCurrentValue();
14974 if (current4_ == end4_)
14976 current4_ = begin4_;
14980 if (current3_ == end3_)
14982 current3_ = begin3_;
14986 if (current2_ == end2_)
14988 current2_ = begin2_;
14992 ComputeCurrentValue();
14998 virtual const ParamType *
Current()
const {
return ¤t_value_; }
15004 <<
"The program attempted to compare iterators " 15005 <<
"from different generators." << std::endl;
15007 CheckedDowncastToActualType<const Iterator>(&other);
15011 return (AtEnd() && typed_other->AtEnd()) ||
15013 current1_ == typed_other->current1_ &&
15014 current2_ == typed_other->current2_ &&
15015 current3_ == typed_other->current3_ &&
15016 current4_ == typed_other->current4_);
15021 : base_(other.base_),
15022 begin1_(other.begin1_),
15023 end1_(other.end1_),
15024 current1_(other.current1_),
15025 begin2_(other.begin2_),
15026 end2_(other.end2_),
15027 current2_(other.current2_),
15028 begin3_(other.begin3_),
15029 end3_(other.end3_),
15030 current3_(other.current3_),
15031 begin4_(other.begin4_),
15032 end4_(other.end4_),
15033 current4_(other.current4_)
15035 ComputeCurrentValue();
15041 current_value_ = ParamType(*current1_, *current2_, *current3_,
15049 current1_ == end1_ ||
15050 current2_ == end2_ ||
15051 current3_ == end3_ ||
15052 current4_ == end4_;
15056 void operator=(
const Iterator & other);
15086 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
15096 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5) {}
15101 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
15102 g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin());
15106 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
15107 g4_, g4_.end(), g5_, g5_.end());
15126 begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
15127 begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
15128 begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
15129 begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
15130 begin5_(g5.begin()), end5_(g5.end()), current5_(current5)
15132 ComputeCurrentValue();
15147 if (current5_ == end5_)
15149 current5_ = begin5_;
15153 if (current4_ == end4_)
15155 current4_ = begin4_;
15159 if (current3_ == end3_)
15161 current3_ = begin3_;
15165 if (current2_ == end2_)
15167 current2_ = begin2_;
15171 ComputeCurrentValue();
15177 virtual const ParamType *
Current()
const {
return ¤t_value_; }
15183 <<
"The program attempted to compare iterators " 15184 <<
"from different generators." << std::endl;
15186 CheckedDowncastToActualType<const Iterator>(&other);
15190 return (AtEnd() && typed_other->AtEnd()) ||
15192 current1_ == typed_other->current1_ &&
15193 current2_ == typed_other->current2_ &&
15194 current3_ == typed_other->current3_ &&
15195 current4_ == typed_other->current4_ &&
15196 current5_ == typed_other->current5_);
15201 : base_(other.base_),
15202 begin1_(other.begin1_),
15203 end1_(other.end1_),
15204 current1_(other.current1_),
15205 begin2_(other.begin2_),
15206 end2_(other.end2_),
15207 current2_(other.current2_),
15208 begin3_(other.begin3_),
15209 end3_(other.end3_),
15210 current3_(other.current3_),
15211 begin4_(other.begin4_),
15212 end4_(other.end4_),
15213 current4_(other.current4_),
15214 begin5_(other.begin5_),
15215 end5_(other.end5_),
15216 current5_(other.current5_)
15218 ComputeCurrentValue();
15224 current_value_ = ParamType(*current1_, *current2_, *current3_,
15225 *current4_, *current5_);
15232 current1_ == end1_ ||
15233 current2_ == end2_ ||
15234 current3_ == end3_ ||
15235 current4_ == end4_ ||
15236 current5_ == end5_;
15240 void operator=(
const Iterator & other);
15274 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
15287 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6) {}
15292 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
15293 g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin());
15297 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
15298 g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end());
15319 begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
15320 begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
15321 begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
15322 begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
15323 begin5_(g5.begin()), end5_(g5.end()), current5_(current5),
15324 begin6_(g6.begin()), end6_(g6.end()), current6_(current6)
15326 ComputeCurrentValue();
15341 if (current6_ == end6_)
15343 current6_ = begin6_;
15347 if (current5_ == end5_)
15349 current5_ = begin5_;
15353 if (current4_ == end4_)
15355 current4_ = begin4_;
15359 if (current3_ == end3_)
15361 current3_ = begin3_;
15365 if (current2_ == end2_)
15367 current2_ = begin2_;
15371 ComputeCurrentValue();
15377 virtual const ParamType *
Current()
const {
return ¤t_value_; }
15383 <<
"The program attempted to compare iterators " 15384 <<
"from different generators." << std::endl;
15386 CheckedDowncastToActualType<const Iterator>(&other);
15390 return (AtEnd() && typed_other->AtEnd()) ||
15392 current1_ == typed_other->current1_ &&
15393 current2_ == typed_other->current2_ &&
15394 current3_ == typed_other->current3_ &&
15395 current4_ == typed_other->current4_ &&
15396 current5_ == typed_other->current5_ &&
15397 current6_ == typed_other->current6_);
15402 : base_(other.base_),
15403 begin1_(other.begin1_),
15404 end1_(other.end1_),
15405 current1_(other.current1_),
15406 begin2_(other.begin2_),
15407 end2_(other.end2_),
15408 current2_(other.current2_),
15409 begin3_(other.begin3_),
15410 end3_(other.end3_),
15411 current3_(other.current3_),
15412 begin4_(other.begin4_),
15413 end4_(other.end4_),
15414 current4_(other.current4_),
15415 begin5_(other.begin5_),
15416 end5_(other.end5_),
15417 current5_(other.current5_),
15418 begin6_(other.begin6_),
15419 end6_(other.end6_),
15420 current6_(other.current6_)
15422 ComputeCurrentValue();
15428 current_value_ = ParamType(*current1_, *current2_, *current3_,
15429 *current4_, *current5_, *current6_);
15436 current1_ == end1_ ||
15437 current2_ == end2_ ||
15438 current3_ == end3_ ||
15439 current4_ == end4_ ||
15440 current5_ == end5_ ||
15441 current6_ == end6_;
15445 void operator=(
const Iterator & other);
15483 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
15484 typename T6,
typename T7>
15490 typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7>
ParamType;
15496 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7) {}
15501 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
15502 g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_,
15507 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
15508 g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end());
15531 begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
15532 begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
15533 begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
15534 begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
15535 begin5_(g5.begin()), end5_(g5.end()), current5_(current5),
15536 begin6_(g6.begin()), end6_(g6.end()), current6_(current6),
15537 begin7_(g7.begin()), end7_(g7.end()), current7_(current7)
15539 ComputeCurrentValue();
15554 if (current7_ == end7_)
15556 current7_ = begin7_;
15560 if (current6_ == end6_)
15562 current6_ = begin6_;
15566 if (current5_ == end5_)
15568 current5_ = begin5_;
15572 if (current4_ == end4_)
15574 current4_ = begin4_;
15578 if (current3_ == end3_)
15580 current3_ = begin3_;
15584 if (current2_ == end2_)
15586 current2_ = begin2_;
15590 ComputeCurrentValue();
15596 virtual const ParamType *
Current()
const {
return ¤t_value_; }
15602 <<
"The program attempted to compare iterators " 15603 <<
"from different generators." << std::endl;
15605 CheckedDowncastToActualType<const Iterator>(&other);
15609 return (AtEnd() && typed_other->AtEnd()) ||
15611 current1_ == typed_other->current1_ &&
15612 current2_ == typed_other->current2_ &&
15613 current3_ == typed_other->current3_ &&
15614 current4_ == typed_other->current4_ &&
15615 current5_ == typed_other->current5_ &&
15616 current6_ == typed_other->current6_ &&
15617 current7_ == typed_other->current7_);
15622 : base_(other.base_),
15623 begin1_(other.begin1_),
15624 end1_(other.end1_),
15625 current1_(other.current1_),
15626 begin2_(other.begin2_),
15627 end2_(other.end2_),
15628 current2_(other.current2_),
15629 begin3_(other.begin3_),
15630 end3_(other.end3_),
15631 current3_(other.current3_),
15632 begin4_(other.begin4_),
15633 end4_(other.end4_),
15634 current4_(other.current4_),
15635 begin5_(other.begin5_),
15636 end5_(other.end5_),
15637 current5_(other.current5_),
15638 begin6_(other.begin6_),
15639 end6_(other.end6_),
15640 current6_(other.current6_),
15641 begin7_(other.begin7_),
15642 end7_(other.end7_),
15643 current7_(other.current7_)
15645 ComputeCurrentValue();
15651 current_value_ = ParamType(*current1_, *current2_, *current3_,
15652 *current4_, *current5_, *current6_, *current7_);
15659 current1_ == end1_ ||
15660 current2_ == end2_ ||
15661 current3_ == end3_ ||
15662 current4_ == end4_ ||
15663 current5_ == end5_ ||
15664 current6_ == end6_ ||
15665 current7_ == end7_;
15669 void operator=(
const Iterator & other);
15711 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
15712 typename T6,
typename T7,
typename T8>
15718 typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8>
ParamType;
15725 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7),
15731 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
15732 g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_,
15733 g7_.begin(), g8_, g8_.begin());
15737 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
15738 g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end(), g8_,
15764 begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
15765 begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
15766 begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
15767 begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
15768 begin5_(g5.begin()), end5_(g5.end()), current5_(current5),
15769 begin6_(g6.begin()), end6_(g6.end()), current6_(current6),
15770 begin7_(g7.begin()), end7_(g7.end()), current7_(current7),
15771 begin8_(g8.begin()), end8_(g8.end()), current8_(current8)
15773 ComputeCurrentValue();
15788 if (current8_ == end8_)
15790 current8_ = begin8_;
15794 if (current7_ == end7_)
15796 current7_ = begin7_;
15800 if (current6_ == end6_)
15802 current6_ = begin6_;
15806 if (current5_ == end5_)
15808 current5_ = begin5_;
15812 if (current4_ == end4_)
15814 current4_ = begin4_;
15818 if (current3_ == end3_)
15820 current3_ = begin3_;
15824 if (current2_ == end2_)
15826 current2_ = begin2_;
15830 ComputeCurrentValue();
15836 virtual const ParamType *
Current()
const {
return ¤t_value_; }
15842 <<
"The program attempted to compare iterators " 15843 <<
"from different generators." << std::endl;
15845 CheckedDowncastToActualType<const Iterator>(&other);
15849 return (AtEnd() && typed_other->AtEnd()) ||
15851 current1_ == typed_other->current1_ &&
15852 current2_ == typed_other->current2_ &&
15853 current3_ == typed_other->current3_ &&
15854 current4_ == typed_other->current4_ &&
15855 current5_ == typed_other->current5_ &&
15856 current6_ == typed_other->current6_ &&
15857 current7_ == typed_other->current7_ &&
15858 current8_ == typed_other->current8_);
15863 : base_(other.base_),
15864 begin1_(other.begin1_),
15865 end1_(other.end1_),
15866 current1_(other.current1_),
15867 begin2_(other.begin2_),
15868 end2_(other.end2_),
15869 current2_(other.current2_),
15870 begin3_(other.begin3_),
15871 end3_(other.end3_),
15872 current3_(other.current3_),
15873 begin4_(other.begin4_),
15874 end4_(other.end4_),
15875 current4_(other.current4_),
15876 begin5_(other.begin5_),
15877 end5_(other.end5_),
15878 current5_(other.current5_),
15879 begin6_(other.begin6_),
15880 end6_(other.end6_),
15881 current6_(other.current6_),
15882 begin7_(other.begin7_),
15883 end7_(other.end7_),
15884 current7_(other.current7_),
15885 begin8_(other.begin8_),
15886 end8_(other.end8_),
15887 current8_(other.current8_)
15889 ComputeCurrentValue();
15895 current_value_ = ParamType(*current1_, *current2_, *current3_,
15896 *current4_, *current5_, *current6_, *current7_, *current8_);
15903 current1_ == end1_ ||
15904 current2_ == end2_ ||
15905 current3_ == end3_ ||
15906 current4_ == end4_ ||
15907 current5_ == end5_ ||
15908 current6_ == end6_ ||
15909 current7_ == end7_ ||
15910 current8_ == end8_;
15914 void operator=(
const Iterator & other);
15960 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
15961 typename T6,
typename T7,
typename T8,
typename T9>
15967 typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>
ParamType;
15974 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8),
15980 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
15981 g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_,
15982 g7_.begin(), g8_, g8_.begin(), g9_, g9_.begin());
15986 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
15987 g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end(), g8_,
15988 g8_.end(), g9_, g9_.end());
16015 begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
16016 begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
16017 begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
16018 begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
16019 begin5_(g5.begin()), end5_(g5.end()), current5_(current5),
16020 begin6_(g6.begin()), end6_(g6.end()), current6_(current6),
16021 begin7_(g7.begin()), end7_(g7.end()), current7_(current7),
16022 begin8_(g8.begin()), end8_(g8.end()), current8_(current8),
16023 begin9_(g9.begin()), end9_(g9.end()), current9_(current9)
16025 ComputeCurrentValue();
16040 if (current9_ == end9_)
16042 current9_ = begin9_;
16046 if (current8_ == end8_)
16048 current8_ = begin8_;
16052 if (current7_ == end7_)
16054 current7_ = begin7_;
16058 if (current6_ == end6_)
16060 current6_ = begin6_;
16064 if (current5_ == end5_)
16066 current5_ = begin5_;
16070 if (current4_ == end4_)
16072 current4_ = begin4_;
16076 if (current3_ == end3_)
16078 current3_ = begin3_;
16082 if (current2_ == end2_)
16084 current2_ = begin2_;
16088 ComputeCurrentValue();
16094 virtual const ParamType *
Current()
const {
return ¤t_value_; }
16100 <<
"The program attempted to compare iterators " 16101 <<
"from different generators." << std::endl;
16103 CheckedDowncastToActualType<const Iterator>(&other);
16107 return (AtEnd() && typed_other->AtEnd()) ||
16109 current1_ == typed_other->current1_ &&
16110 current2_ == typed_other->current2_ &&
16111 current3_ == typed_other->current3_ &&
16112 current4_ == typed_other->current4_ &&
16113 current5_ == typed_other->current5_ &&
16114 current6_ == typed_other->current6_ &&
16115 current7_ == typed_other->current7_ &&
16116 current8_ == typed_other->current8_ &&
16117 current9_ == typed_other->current9_);
16122 : base_(other.base_),
16123 begin1_(other.begin1_),
16124 end1_(other.end1_),
16125 current1_(other.current1_),
16126 begin2_(other.begin2_),
16127 end2_(other.end2_),
16128 current2_(other.current2_),
16129 begin3_(other.begin3_),
16130 end3_(other.end3_),
16131 current3_(other.current3_),
16132 begin4_(other.begin4_),
16133 end4_(other.end4_),
16134 current4_(other.current4_),
16135 begin5_(other.begin5_),
16136 end5_(other.end5_),
16137 current5_(other.current5_),
16138 begin6_(other.begin6_),
16139 end6_(other.end6_),
16140 current6_(other.current6_),
16141 begin7_(other.begin7_),
16142 end7_(other.end7_),
16143 current7_(other.current7_),
16144 begin8_(other.begin8_),
16145 end8_(other.end8_),
16146 current8_(other.current8_),
16147 begin9_(other.begin9_),
16148 end9_(other.end9_),
16149 current9_(other.current9_)
16151 ComputeCurrentValue();
16157 current_value_ = ParamType(*current1_, *current2_, *current3_,
16158 *current4_, *current5_, *current6_, *current7_, *current8_,
16166 current1_ == end1_ ||
16167 current2_ == end2_ ||
16168 current3_ == end3_ ||
16169 current4_ == end4_ ||
16170 current5_ == end5_ ||
16171 current6_ == end6_ ||
16172 current7_ == end7_ ||
16173 current8_ == end8_ ||
16174 current9_ == end9_;
16178 void operator=(
const Iterator & other);
16228 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16229 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
16235 typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
ParamType;
16243 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8),
16244 g9_(g9), g10_(g10) {}
16249 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
16250 g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_,
16251 g7_.begin(), g8_, g8_.begin(), g9_, g9_.begin(), g10_, g10_.begin());
16255 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
16256 g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end(), g8_,
16257 g8_.end(), g9_, g9_.end(), g10_, g10_.end());
16286 begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
16287 begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
16288 begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
16289 begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
16290 begin5_(g5.begin()), end5_(g5.end()), current5_(current5),
16291 begin6_(g6.begin()), end6_(g6.end()), current6_(current6),
16292 begin7_(g7.begin()), end7_(g7.end()), current7_(current7),
16293 begin8_(g8.begin()), end8_(g8.end()), current8_(current8),
16294 begin9_(g9.begin()), end9_(g9.end()), current9_(current9),
16295 begin10_(g10.begin()), end10_(g10.end()), current10_(current10)
16297 ComputeCurrentValue();
16312 if (current10_ == end10_)
16314 current10_ = begin10_;
16318 if (current9_ == end9_)
16320 current9_ = begin9_;
16324 if (current8_ == end8_)
16326 current8_ = begin8_;
16330 if (current7_ == end7_)
16332 current7_ = begin7_;
16336 if (current6_ == end6_)
16338 current6_ = begin6_;
16342 if (current5_ == end5_)
16344 current5_ = begin5_;
16348 if (current4_ == end4_)
16350 current4_ = begin4_;
16354 if (current3_ == end3_)
16356 current3_ = begin3_;
16360 if (current2_ == end2_)
16362 current2_ = begin2_;
16366 ComputeCurrentValue();
16372 virtual const ParamType *
Current()
const {
return ¤t_value_; }
16378 <<
"The program attempted to compare iterators " 16379 <<
"from different generators." << std::endl;
16381 CheckedDowncastToActualType<const Iterator>(&other);
16385 return (AtEnd() && typed_other->AtEnd()) ||
16387 current1_ == typed_other->current1_ &&
16388 current2_ == typed_other->current2_ &&
16389 current3_ == typed_other->current3_ &&
16390 current4_ == typed_other->current4_ &&
16391 current5_ == typed_other->current5_ &&
16392 current6_ == typed_other->current6_ &&
16393 current7_ == typed_other->current7_ &&
16394 current8_ == typed_other->current8_ &&
16395 current9_ == typed_other->current9_ &&
16396 current10_ == typed_other->current10_);
16401 : base_(other.base_),
16402 begin1_(other.begin1_),
16403 end1_(other.end1_),
16404 current1_(other.current1_),
16405 begin2_(other.begin2_),
16406 end2_(other.end2_),
16407 current2_(other.current2_),
16408 begin3_(other.begin3_),
16409 end3_(other.end3_),
16410 current3_(other.current3_),
16411 begin4_(other.begin4_),
16412 end4_(other.end4_),
16413 current4_(other.current4_),
16414 begin5_(other.begin5_),
16415 end5_(other.end5_),
16416 current5_(other.current5_),
16417 begin6_(other.begin6_),
16418 end6_(other.end6_),
16419 current6_(other.current6_),
16420 begin7_(other.begin7_),
16421 end7_(other.end7_),
16422 current7_(other.current7_),
16423 begin8_(other.begin8_),
16424 end8_(other.end8_),
16425 current8_(other.current8_),
16426 begin9_(other.begin9_),
16427 end9_(other.end9_),
16428 current9_(other.current9_),
16429 begin10_(other.begin10_),
16430 end10_(other.end10_),
16431 current10_(other.current10_)
16433 ComputeCurrentValue();
16439 current_value_ = ParamType(*current1_, *current2_, *current3_,
16440 *current4_, *current5_, *current6_, *current7_, *current8_,
16441 *current9_, *current10_);
16448 current1_ == end1_ ||
16449 current2_ == end2_ ||
16450 current3_ == end3_ ||
16451 current4_ == end4_ ||
16452 current5_ == end5_ ||
16453 current6_ == end6_ ||
16454 current7_ == end7_ ||
16455 current8_ == end8_ ||
16456 current9_ == end9_ ||
16457 current10_ == end10_;
16461 void operator=(
const Iterator & other);
16521 template <
class Generator1,
class Generator2>
16526 : g1_(g1), g2_(g2) {}
16527 template <
typename T1,
typename T2>
16544 template <
class Generator1,
class Generator2,
class Generator3>
16549 const Generator3 & g3)
16550 : g1_(g1), g2_(g2), g3_(g3) {}
16551 template <
typename T1,
typename T2,
typename T3>
16570 template <
class Generator1,
class Generator2,
class Generator3,
16576 const Generator3 & g3,
const Generator4 & g4)
16577 : g1_(g1), g2_(g2), g3_(g3), g4_(g4) {}
16578 template <
typename T1,
typename T2,
typename T3,
typename T4>
16599 template <
class Generator1,
class Generator2,
class Generator3,
16600 class Generator4,
class Generator5>
16605 const Generator3 & g3,
const Generator4 & g4,
const Generator5 & g5)
16606 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5) {}
16607 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
16630 template <
class Generator1,
class Generator2,
class Generator3,
16631 class Generator4,
class Generator5,
class Generator6>
16636 const Generator3 & g3,
const Generator4 & g4,
const Generator5 & g5,
16637 const Generator6 & g6)
16638 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6) {}
16639 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16665 template <
class Generator1,
class Generator2,
class Generator3,
16666 class Generator4,
class Generator5,
class Generator6,
class Generator7>
16671 const Generator3 & g3,
const Generator4 & g4,
const Generator5 & g5,
16672 const Generator6 & g6,
const Generator7 & g7)
16673 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7) {}
16674 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16675 typename T6,
typename T7>
16703 template <
class Generator1,
class Generator2,
class Generator3,
16704 class Generator4,
class Generator5,
class Generator6,
class Generator7,
16710 const Generator3 & g3,
const Generator4 & g4,
const Generator5 & g5,
16711 const Generator6 & g6,
const Generator7 & g7,
const Generator8 & g8)
16712 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7),
16714 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16715 typename T6,
typename T7,
typename T8>
16745 template <
class Generator1,
class Generator2,
class Generator3,
16746 class Generator4,
class Generator5,
class Generator6,
class Generator7,
16747 class Generator8,
class Generator9>
16752 const Generator3 & g3,
const Generator4 & g4,
const Generator5 & g5,
16753 const Generator6 & g6,
const Generator7 & g7,
const Generator8 & g8,
16754 const Generator9 & g9)
16755 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8),
16757 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16758 typename T6,
typename T7,
typename T8,
typename T9>
16791 template <
class Generator1,
class Generator2,
class Generator3,
16792 class Generator4,
class Generator5,
class Generator6,
class Generator7,
16793 class Generator8,
class Generator9,
class Generator10>
16798 const Generator3 & g3,
const Generator4 & g4,
const Generator5 & g5,
16799 const Generator6 & g6,
const Generator7 & g7,
const Generator8 & g8,
16800 const Generator9 & g9,
const Generator10 & g10)
16801 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8),
16802 g9_(g9), g10_(g10) {}
16803 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16804 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
16840 # endif // GTEST_HAS_COMBINE 16845 #endif // GTEST_HAS_PARAM_TEST 16847 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_ 16849 #if GTEST_HAS_PARAM_TEST 16896 template <
typename T,
typename IncrementT>
16903 template <
typename T>
16906 return Range(start, end, 1);
16964 template <
typename ForwardIterator>
16966 typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type >
16969 typedef typename ::testing::internal::IteratorTraits<ForwardIterator>
16970 ::value_type ParamType;
16975 template <
typename T,
size_t N>
16978 return ValuesIn(array, array + N);
16981 template <
class Container>
16983 const Container & container)
16985 return ValuesIn(container.begin(), container.end());
17007 template <
typename T1>
17013 template <
typename T1,
typename T2>
17019 template <
typename T1,
typename T2,
typename T3>
17025 template <
typename T1,
typename T2,
typename T3,
typename T4>
17031 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
17038 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17041 T4 v4, T5 v5, T6 v6)
17043 return internal::ValueArray6<T1, T2, T3, T4, T5, T6>(v1, v2, v3, v4, v5, v6);
17046 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17047 typename T6,
typename T7>
17049 T4 v4, T5 v5, T6 v6, T7 v7)
17051 return internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7>(v1, v2, v3, v4, v5,
17055 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17056 typename T6,
typename T7,
typename T8>
17058 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8)
17060 return internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8>(v1, v2, v3, v4,
17064 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17065 typename T6,
typename T7,
typename T8,
typename T9>
17066 internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9> Values(T1 v1, T2 v2,
17067 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9)
17069 return internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9>(v1, v2, v3,
17070 v4, v5, v6, v7, v8, v9);
17073 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17074 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
17075 internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Values(T1 v1,
17076 T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10)
17078 return internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(v1,
17079 v2, v3, v4, v5, v6, v7, v8, v9, v10);
17082 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17083 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17085 internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
17086 T11>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
17089 return internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
17090 T11>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11);
17093 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17094 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17095 typename T11,
typename T12>
17096 internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17097 T12>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
17098 T10 v10, T11 v11, T12 v12)
17100 return internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17101 T12>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12);
17104 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17105 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17106 typename T11,
typename T12,
typename T13>
17107 internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
17108 T13>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
17109 T10 v10, T11 v11, T12 v12, T13 v13)
17111 return internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17112 T12, T13>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13);
17115 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17116 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17117 typename T11,
typename T12,
typename T13,
typename T14>
17118 internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17119 T14>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
17120 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14)
17122 return internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17123 T12, T13, T14>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
17127 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17128 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17129 typename T11,
typename T12,
typename T13,
typename T14,
typename T15>
17130 internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17131 T14, T15>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
17132 T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15)
17134 return internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17135 T12, T13, T14, T15>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
17139 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17140 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17141 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17143 internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17144 T14, T15, T16>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
17145 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
17148 return internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17149 T12, T13, T14, T15, T16>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
17150 v12, v13, v14, v15, v16);
17153 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17154 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17155 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17156 typename T16,
typename T17>
17157 internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17158 T14, T15, T16, T17>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
17159 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
17162 return internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17163 T12, T13, T14, T15, T16, T17>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
17164 v11, v12, v13, v14, v15, v16, v17);
17167 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17168 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17169 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17170 typename T16,
typename T17,
typename T18>
17171 internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17172 T14, T15, T16, T17, T18>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
17173 T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
17174 T16 v16, T17 v17, T18 v18)
17176 return internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17177 T12, T13, T14, T15, T16, T17, T18>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
17178 v10, v11, v12, v13, v14, v15, v16, v17, v18);
17181 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17182 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17183 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17184 typename T16,
typename T17,
typename T18,
typename T19>
17185 internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17186 T14, T15, T16, T17, T18, T19>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
17187 T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
17188 T15 v15, T16 v16, T17 v17, T18 v18, T19 v19)
17190 return internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17191 T12, T13, T14, T15, T16, T17, T18, T19>(v1, v2, v3, v4, v5, v6, v7, v8,
17192 v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19);
17195 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17196 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17197 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17198 typename T16,
typename T17,
typename T18,
typename T19,
typename T20>
17199 internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17200 T14, T15, T16, T17, T18, T19, T20>
Values(T1 v1, T2 v2, T3 v3, T4 v4,
17201 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
17202 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20)
17204 return internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17205 T12, T13, T14, T15, T16, T17, T18, T19, T20>(v1, v2, v3, v4, v5, v6, v7,
17206 v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20);
17209 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17210 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17211 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17212 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17214 internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17215 T14, T15, T16, T17, T18, T19, T20, T21>
Values(T1 v1, T2 v2, T3 v3, T4 v4,
17216 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
17217 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21)
17219 return internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17220 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>(v1, v2, v3, v4, v5, v6,
17221 v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21);
17224 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17225 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17226 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17227 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17228 typename T21,
typename T22>
17229 internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17230 T14, T15, T16, T17, T18, T19, T20, T21, T22>
Values(T1 v1, T2 v2, T3 v3,
17231 T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
17232 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
17235 return internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17236 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>(v1, v2, v3, v4,
17237 v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
17241 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17242 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17243 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17244 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17245 typename T21,
typename T22,
typename T23>
17246 internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17247 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>
Values(T1 v1, T2 v2,
17248 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
17249 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
17250 T21 v21, T22 v22, T23 v23)
17252 return internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17253 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>(v1, v2, v3,
17254 v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
17255 v20, v21, v22, v23);
17258 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17259 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17260 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17261 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17262 typename T21,
typename T22,
typename T23,
typename T24>
17263 internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17264 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>
Values(T1 v1, T2 v2,
17265 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
17266 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
17267 T21 v21, T22 v22, T23 v23, T24 v24)
17269 return internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17270 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>(v1, v2,
17271 v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18,
17272 v19, v20, v21, v22, v23, v24);
17275 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17276 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17277 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17278 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17279 typename T21,
typename T22,
typename T23,
typename T24,
typename T25>
17280 internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17281 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>
Values(T1 v1,
17282 T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11,
17283 T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19,
17284 T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25)
17286 return internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17287 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>(v1,
17288 v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17,
17289 v18, v19, v20, v21, v22, v23, v24, v25);
17292 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17293 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17294 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17295 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17296 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17298 internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17299 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17300 T26>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
17301 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
17302 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
17305 return internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17306 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17307 T26>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,
17308 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26);
17311 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17312 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17313 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17314 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17315 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17316 typename T26,
typename T27>
17317 internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17318 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
17319 T27>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
17320 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
17321 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
17324 return internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17325 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17326 T26, T27>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14,
17327 v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27);
17330 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17331 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17332 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17333 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17334 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17335 typename T26,
typename T27,
typename T28>
17336 internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17337 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
17338 T28>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
17339 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
17340 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
17341 T26 v26, T27 v27, T28 v28)
17343 return internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17344 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17345 T26, T27, T28>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
17346 v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27,
17350 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17351 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17352 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17353 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17354 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17355 typename T26,
typename T27,
typename T28,
typename T29>
17356 internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17357 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17358 T29>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
17359 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
17360 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
17361 T26 v26, T27 v27, T28 v28, T29 v29)
17363 return internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17364 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17365 T26, T27, T28, T29>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
17366 v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
17370 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17371 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17372 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17373 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17374 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17375 typename T26,
typename T27,
typename T28,
typename T29,
typename T30>
17376 internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17377 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17378 T29, T30>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
17379 T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
17380 T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
17381 T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30)
17383 return internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17384 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17385 T26, T27, T28, T29, T30>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
17386 v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25,
17387 v26, v27, v28, v29, v30);
17390 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17391 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17392 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17393 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17394 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17395 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17397 internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17398 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17399 T29, T30, T31>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
17400 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
17401 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
17402 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31)
17404 return internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17405 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17406 T26, T27, T28, T29, T30, T31>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
17407 v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24,
17408 v25, v26, v27, v28, v29, v30, v31);
17411 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17412 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17413 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17414 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17415 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17416 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17417 typename T31,
typename T32>
17418 internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17419 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17420 T29, T30, T31, T32>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
17421 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
17422 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
17423 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
17426 return internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17427 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17428 T26, T27, T28, T29, T30, T31, T32>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
17429 v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
17430 v24, v25, v26, v27, v28, v29, v30, v31, v32);
17433 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17434 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17435 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17436 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17437 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17438 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17439 typename T31,
typename T32,
typename T33>
17440 internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17441 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17442 T29, T30, T31, T32, T33>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
17443 T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
17444 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
17445 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
17448 return internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17449 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17450 T26, T27, T28, T29, T30, T31, T32, T33>(v1, v2, v3, v4, v5, v6, v7, v8,
17451 v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
17452 v24, v25, v26, v27, v28, v29, v30, v31, v32, v33);
17455 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17456 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17457 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17458 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17459 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17460 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17461 typename T31,
typename T32,
typename T33,
typename T34>
17462 internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17463 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17464 T29, T30, T31, T32, T33, T34>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
17465 T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
17466 T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22,
17467 T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30,
17468 T31 v31, T32 v32, T33 v33, T34 v34)
17470 return internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17471 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17472 T26, T27, T28, T29, T30, T31, T32, T33, T34>(v1, v2, v3, v4, v5, v6, v7,
17473 v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22,
17474 v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34);
17477 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17478 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17479 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17480 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17481 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17482 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17483 typename T31,
typename T32,
typename T33,
typename T34,
typename T35>
17484 internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17485 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17486 T29, T30, T31, T32, T33, T34, T35>
Values(T1 v1, T2 v2, T3 v3, T4 v4,
17487 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
17488 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
17489 T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
17490 T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35)
17492 return internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17493 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17494 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35>(v1, v2, v3, v4, v5, v6,
17495 v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21,
17496 v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35);
17499 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17500 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17501 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17502 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17503 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17504 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17505 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
17507 internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17508 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17509 T29, T30, T31, T32, T33, T34, T35, T36>
Values(T1 v1, T2 v2, T3 v3, T4 v4,
17510 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
17511 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
17512 T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
17513 T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36)
17515 return internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17516 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17517 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36>(v1, v2, v3, v4,
17518 v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
17519 v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
17523 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17524 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17525 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17526 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17527 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17528 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17529 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
17530 typename T36,
typename T37>
17531 internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17532 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17533 T29, T30, T31, T32, T33, T34, T35, T36, T37>
Values(T1 v1, T2 v2, T3 v3,
17534 T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
17535 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
17536 T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
17537 T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
17540 return internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17541 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17542 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37>(v1, v2, v3,
17543 v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
17544 v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
17545 v34, v35, v36, v37);
17548 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17549 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17550 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17551 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17552 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17553 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17554 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
17555 typename T36,
typename T37,
typename T38>
17556 internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17557 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17558 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>
Values(T1 v1, T2 v2,
17559 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
17560 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
17561 T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
17562 T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
17565 return internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17566 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17567 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>(v1, v2,
17568 v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18,
17569 v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32,
17570 v33, v34, v35, v36, v37, v38);
17573 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17574 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17575 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17576 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17577 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17578 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17579 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
17580 typename T36,
typename T37,
typename T38,
typename T39>
17581 internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17582 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17583 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>
Values(T1 v1, T2 v2,
17584 T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
17585 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
17586 T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
17587 T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
17588 T37 v37, T38 v38, T39 v39)
17590 return internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17591 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17592 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>(v1,
17593 v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17,
17594 v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31,
17595 v32, v33, v34, v35, v36, v37, v38, v39);
17598 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17599 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17600 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17601 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17602 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17603 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17604 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
17605 typename T36,
typename T37,
typename T38,
typename T39,
typename T40>
17606 internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17607 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17608 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40>
Values(T1 v1,
17609 T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11,
17610 T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19,
17611 T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27,
17612 T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35,
17613 T36 v36, T37 v37, T38 v38, T39 v39, T40 v40)
17615 return internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17616 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17617 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
17618 T40>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,
17619 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29,
17620 v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40);
17623 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17624 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17625 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17626 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17627 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17628 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17629 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
17630 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
17632 internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17633 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17634 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
17635 T41>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
17636 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
17637 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
17638 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
17639 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41)
17641 return internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17642 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17643 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
17644 T40, T41>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14,
17645 v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28,
17646 v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41);
17649 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17650 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17651 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17652 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17653 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17654 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17655 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
17656 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
17657 typename T41,
typename T42>
17658 internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17659 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17660 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
17661 T42>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
17662 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
17663 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
17664 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
17665 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
17668 return internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17669 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17670 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
17671 T40, T41, T42>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
17672 v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27,
17673 v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41,
17677 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17678 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17679 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17680 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17681 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17682 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17683 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
17684 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
17685 typename T41,
typename T42,
typename T43>
17686 internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17687 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17688 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
17689 T43>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
17690 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
17691 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
17692 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
17693 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
17696 return internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17697 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17698 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
17699 T40, T41, T42, T43>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
17700 v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
17701 v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40,
17705 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17706 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17707 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17708 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17709 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17710 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17711 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
17712 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
17713 typename T41,
typename T42,
typename T43,
typename T44>
17714 internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17715 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17716 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
17717 T44>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
17718 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
17719 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
17720 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
17721 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
17722 T42 v42, T43 v43, T44 v44)
17724 return internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17725 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17726 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
17727 T40, T41, T42, T43, T44>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
17728 v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25,
17729 v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39,
17730 v40, v41, v42, v43, v44);
17733 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17734 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17735 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17736 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17737 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17738 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17739 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
17740 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
17741 typename T41,
typename T42,
typename T43,
typename T44,
typename T45>
17742 internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17743 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17744 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
17745 T44, T45>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
17746 T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
17747 T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
17748 T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32,
17749 T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40,
17750 T41 v41, T42 v42, T43 v43, T44 v44, T45 v45)
17752 return internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17753 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17754 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
17755 T40, T41, T42, T43, T44, T45>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
17756 v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24,
17757 v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38,
17758 v39, v40, v41, v42, v43, v44, v45);
17761 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17762 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17763 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17764 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17765 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17766 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17767 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
17768 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
17769 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
17771 internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17772 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17773 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
17774 T44, T45, T46>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
17775 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
17776 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
17777 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
17778 T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
17779 T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46)
17781 return internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17782 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17783 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
17784 T40, T41, T42, T43, T44, T45, T46>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
17785 v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
17786 v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37,
17787 v38, v39, v40, v41, v42, v43, v44, v45, v46);
17790 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17791 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17792 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17793 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17794 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17795 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17796 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
17797 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
17798 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
17799 typename T46,
typename T47>
17800 internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17801 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17802 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
17803 T44, T45, T46, T47>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
17804 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
17805 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
17806 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
17807 T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
17808 T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47)
17810 return internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17811 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17812 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
17813 T40, T41, T42, T43, T44, T45, T46, T47>(v1, v2, v3, v4, v5, v6, v7, v8,
17814 v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
17815 v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37,
17816 v38, v39, v40, v41, v42, v43, v44, v45, v46, v47);
17819 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17820 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17821 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17822 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17823 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17824 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17825 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
17826 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
17827 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
17828 typename T46,
typename T47,
typename T48>
17829 internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17830 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17831 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
17832 T44, T45, T46, T47, T48>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
17833 T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
17834 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
17835 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
17836 T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
17837 T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47,
17840 return internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17841 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17842 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
17843 T40, T41, T42, T43, T44, T45, T46, T47, T48>(v1, v2, v3, v4, v5, v6, v7,
17844 v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22,
17845 v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36,
17846 v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48);
17849 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17850 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17851 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17852 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17853 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17854 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17855 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
17856 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
17857 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
17858 typename T46,
typename T47,
typename T48,
typename T49>
17859 internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17860 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17861 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
17862 T44, T45, T46, T47, T48, T49>
Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
17863 T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
17864 T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22,
17865 T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30,
17866 T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38,
17867 T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46,
17868 T47 v47, T48 v48, T49 v49)
17870 return internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17871 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17872 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
17873 T40, T41, T42, T43, T44, T45, T46, T47, T48, T49>(v1, v2, v3, v4, v5, v6,
17874 v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21,
17875 v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35,
17876 v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49);
17879 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
17880 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
17881 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
17882 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
17883 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
17884 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
17885 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
17886 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
17887 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
17888 typename T46,
typename T47,
typename T48,
typename T49,
typename T50>
17889 internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
17890 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
17891 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
17892 T44, T45, T46, T47, T48, T49, T50>
Values(T1 v1, T2 v2, T3 v3, T4 v4,
17893 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
17894 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
17895 T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
17896 T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37,
17897 T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45,
17898 T46 v46, T47 v47, T48 v48, T49 v49, T50 v50)
17900 return internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
17901 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
17902 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
17903 T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>(v1, v2, v3, v4,
17904 v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
17905 v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
17906 v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47,
17932 return Values(
false,
true);
17935 # if GTEST_HAS_COMBINE 17984 template <
typename Generator1,
typename Generator2>
17986 const Generator1 & g1,
const Generator2 & g2)
17992 template <
typename Generator1,
typename Generator2,
typename Generator3>
17994 const Generator1 & g1,
const Generator2 & g2,
const Generator3 & g3)
18000 template <
typename Generator1,
typename Generator2,
typename Generator3,
18001 typename Generator4>
18004 const Generator1 & g1,
const Generator2 & g2,
const Generator3 & g3,
18005 const Generator4 & g4)
18012 template <
typename Generator1,
typename Generator2,
typename Generator3,
18013 typename Generator4,
typename Generator5>
18016 const Generator1 & g1,
const Generator2 & g2,
const Generator3 & g3,
18017 const Generator4 & g4,
const Generator5 & g5)
18020 Generator4, Generator5>(
18021 g1, g2, g3, g4, g5);
18024 template <
typename Generator1,
typename Generator2,
typename Generator3,
18025 typename Generator4,
typename Generator5,
typename Generator6>
18028 const Generator1 & g1,
const Generator2 & g2,
const Generator3 & g3,
18029 const Generator4 & g4,
const Generator5 & g5,
const Generator6 & g6)
18032 Generator4, Generator5, Generator6>(
18033 g1, g2, g3, g4, g5, g6);
18036 template <
typename Generator1,
typename Generator2,
typename Generator3,
18037 typename Generator4,
typename Generator5,
typename Generator6,
18038 typename Generator7>
18040 Generator4, Generator5, Generator6, Generator7>
Combine(
18041 const Generator1 & g1,
const Generator2 & g2,
const Generator3 & g3,
18042 const Generator4 & g4,
const Generator5 & g5,
const Generator6 & g6,
18043 const Generator7 & g7)
18046 Generator4, Generator5, Generator6, Generator7>(
18047 g1, g2, g3, g4, g5, g6, g7);
18050 template <
typename Generator1,
typename Generator2,
typename Generator3,
18051 typename Generator4,
typename Generator5,
typename Generator6,
18052 typename Generator7,
typename Generator8>
18054 Generator4, Generator5, Generator6, Generator7, Generator8>
Combine(
18055 const Generator1 & g1,
const Generator2 & g2,
const Generator3 & g3,
18056 const Generator4 & g4,
const Generator5 & g5,
const Generator6 & g6,
18057 const Generator7 & g7,
const Generator8 & g8)
18060 Generator4, Generator5, Generator6, Generator7, Generator8>(
18061 g1, g2, g3, g4, g5, g6, g7, g8);
18064 template <
typename Generator1,
typename Generator2,
typename Generator3,
18065 typename Generator4,
typename Generator5,
typename Generator6,
18066 typename Generator7,
typename Generator8,
typename Generator9>
18068 Generator4, Generator5, Generator6, Generator7, Generator8,
18070 const Generator1 & g1,
const Generator2 & g2,
const Generator3 & g3,
18071 const Generator4 & g4,
const Generator5 & g5,
const Generator6 & g6,
18072 const Generator7 & g7,
const Generator8 & g8,
const Generator9 & g9)
18075 Generator4, Generator5, Generator6, Generator7, Generator8, Generator9>(
18076 g1, g2, g3, g4, g5, g6, g7, g8, g9);
18079 template <
typename Generator1,
typename Generator2,
typename Generator3,
18080 typename Generator4,
typename Generator5,
typename Generator6,
18081 typename Generator7,
typename Generator8,
typename Generator9,
18082 typename Generator10>
18084 Generator4, Generator5, Generator6, Generator7, Generator8, Generator9,
18086 const Generator1 & g1,
const Generator2 & g2,
const Generator3 & g3,
18087 const Generator4 & g4,
const Generator5 & g5,
const Generator6 & g6,
18088 const Generator7 & g7,
const Generator8 & g8,
const Generator9 & g9,
18089 const Generator10 & g10)
18092 Generator4, Generator5, Generator6, Generator7, Generator8, Generator9,
18094 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10);
18096 # endif // GTEST_HAS_COMBINE 18100 # define TEST_P(test_case_name, test_name) \ 18101 class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \ 18102 : public test_case_name { \ 18104 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {} \ 18105 virtual void TestBody(); \ 18107 static int AddToRegistry() { \ 18108 ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ 18109 GetTestCasePatternHolder<test_case_name>(\ 18110 #test_case_name, __FILE__, __LINE__)->AddTestPattern(\ 18113 new ::testing::internal::TestMetaFactory< \ 18114 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>()); \ 18117 static int gtest_registering_dummy_; \ 18118 GTEST_DISALLOW_COPY_AND_ASSIGN_(\ 18119 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \ 18121 int GTEST_TEST_CLASS_NAME_(test_case_name, \ 18122 test_name)::gtest_registering_dummy_ = \ 18123 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \ 18124 void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() 18126 # define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator) \ 18127 ::testing::internal::ParamGenerator<test_case_name::ParamType> \ 18128 gtest_##prefix##test_case_name##_EvalGenerator_() { return generator; } \ 18129 int gtest_##prefix##test_case_name##_dummy_ = \ 18130 ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ 18131 GetTestCasePatternHolder<test_case_name>(\ 18132 #test_case_name, __FILE__, __LINE__)->AddTestCaseInstantiation(\ 18134 >est_##prefix##test_case_name##_EvalGenerator_, \ 18135 __FILE__, __LINE__) 18139 #endif // GTEST_HAS_PARAM_TEST 18141 #endif // GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ 18175 #ifndef GTEST_INCLUDE_GTEST_GTEST_PROD_H_ 18176 #define GTEST_INCLUDE_GTEST_GTEST_PROD_H_ 18196 #define FRIEND_TEST(test_case_name, test_name)\ 18197 friend class test_case_name##_##test_name##_Test 18199 #endif // GTEST_INCLUDE_GTEST_GTEST_PROD_H_ 18232 #ifndef GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_ 18233 #define GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_ 18261 const char * a_file_name,
18263 const char * a_message)
18265 file_name_(a_file_name == NULL ?
"" : a_file_name),
18266 line_number_(a_line_number),
18267 summary_(ExtractSummary(a_message)),
18268 message_(a_message)
18279 return file_name_.empty() ? NULL : file_name_.c_str();
18287 const char *
summary()
const {
return summary_.c_str(); }
18290 const char *
message()
const {
return message_.c_str(); }
18354 virtual void ReportTestPartResult(
const TestPartResult & result) = 0;
18372 virtual void ReportTestPartResult(
const TestPartResult & result);
18385 #endif // GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_ 18417 #ifndef GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ 18418 #define GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ 18430 template <
typename T>
18435 typedef std::list<T> List;
18443 typedef testing::Types<char, int, unsigned int>
MyTypes;
18457 TypeParam n = this->value_;
18461 n += TestFixture::shared_;
18465 typename TestFixture::List values;
18466 values.push_back(n);
18492 template <
typename T>
18519 DoesBlah, HasPropertyA);
18529 typedef testing::Types<char, int, unsigned int>
MyTypes;
18541 #if GTEST_HAS_TYPED_TEST 18547 # define GTEST_TYPE_PARAMS_(TestCaseName) gtest_type_params_##TestCaseName##_ 18552 # define TYPED_TEST_CASE(CaseName, Types) \ 18553 typedef ::testing::internal::TypeList< Types >::type \ 18554 GTEST_TYPE_PARAMS_(CaseName) 18556 # define TYPED_TEST(CaseName, TestName) \ 18557 template <typename gtest_TypeParam_> \ 18558 class GTEST_TEST_CLASS_NAME_(CaseName, TestName) \ 18559 : public CaseName<gtest_TypeParam_> { \ 18561 typedef CaseName<gtest_TypeParam_> TestFixture; \ 18562 typedef gtest_TypeParam_ TypeParam; \ 18563 virtual void TestBody(); \ 18565 bool gtest_##CaseName##_##TestName##_registered_ GTEST_ATTRIBUTE_UNUSED_ = \ 18566 ::testing::internal::TypeParameterizedTest< \ 18568 ::testing::internal::TemplateSel< \ 18569 GTEST_TEST_CLASS_NAME_(CaseName, TestName)>, \ 18570 GTEST_TYPE_PARAMS_(CaseName)>::Register(\ 18571 "", #CaseName, #TestName, 0); \ 18572 template <typename gtest_TypeParam_> \ 18573 void GTEST_TEST_CLASS_NAME_(CaseName, TestName)<gtest_TypeParam_>::TestBody() 18575 #endif // GTEST_HAS_TYPED_TEST 18579 #if GTEST_HAS_TYPED_TEST_P 18586 # define GTEST_CASE_NAMESPACE_(TestCaseName) \ 18587 gtest_case_##TestCaseName##_ 18593 # define GTEST_TYPED_TEST_CASE_P_STATE_(TestCaseName) \ 18594 gtest_typed_test_case_p_state_##TestCaseName##_ 18600 # define GTEST_REGISTERED_TEST_NAMES_(TestCaseName) \ 18601 gtest_registered_test_names_##TestCaseName##_ 18606 # define TYPED_TEST_CASE_P(CaseName) \ 18607 static ::testing::internal::TypedTestCasePState \ 18608 GTEST_TYPED_TEST_CASE_P_STATE_(CaseName) 18610 # define TYPED_TEST_P(CaseName, TestName) \ 18611 namespace GTEST_CASE_NAMESPACE_(CaseName) { \ 18612 template <typename gtest_TypeParam_> \ 18613 class TestName : public CaseName<gtest_TypeParam_> { \ 18615 typedef CaseName<gtest_TypeParam_> TestFixture; \ 18616 typedef gtest_TypeParam_ TypeParam; \ 18617 virtual void TestBody(); \ 18619 static bool gtest_##TestName##_defined_ GTEST_ATTRIBUTE_UNUSED_ = \ 18620 GTEST_TYPED_TEST_CASE_P_STATE_(CaseName).AddTestName(\ 18621 __FILE__, __LINE__, #CaseName, #TestName); \ 18623 template <typename gtest_TypeParam_> \ 18624 void GTEST_CASE_NAMESPACE_(CaseName)::TestName<gtest_TypeParam_>::TestBody() 18626 # define REGISTER_TYPED_TEST_CASE_P(CaseName, ...) \ 18627 namespace GTEST_CASE_NAMESPACE_(CaseName) { \ 18628 typedef ::testing::internal::Templates<__VA_ARGS__>::type gtest_AllTests_; \ 18630 static const char* const GTEST_REGISTERED_TEST_NAMES_(CaseName) = \ 18631 GTEST_TYPED_TEST_CASE_P_STATE_(CaseName).VerifyRegisteredTestNames(\ 18632 __FILE__, __LINE__, #__VA_ARGS__) 18637 # define INSTANTIATE_TYPED_TEST_CASE_P(Prefix, CaseName, Types) \ 18638 bool gtest_##Prefix##_##CaseName GTEST_ATTRIBUTE_UNUSED_ = \ 18639 ::testing::internal::TypeParameterizedTestCase<CaseName, \ 18640 GTEST_CASE_NAMESPACE_(CaseName)::gtest_AllTests_, \ 18641 ::testing::internal::TypeList< Types >::type>::Register(\ 18642 #Prefix, #CaseName, GTEST_REGISTERED_TEST_NAMES_(CaseName)) 18644 #endif // GTEST_HAS_TYPED_TEST_P 18646 #endif // GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ 18733 class AssertHelper;
18734 class DefaultGlobalTestPartResultReporter;
18735 class ExecDeathTest;
18736 class NoExecDeathTest;
18737 class FinalSuccessChecker;
18738 class GTestFlagSaver;
18739 class StreamingListenerTest;
18740 class TestResultAccessor;
18741 class TestEventListenersAccessor;
18742 class TestEventRepeater;
18743 class UnitTestRecordPropertyTestHelper;
18744 class WindowsDeathTest;
18848 operator bool()
const {
return success_; }
18859 return message_.get() != NULL ? message_->c_str() :
"";
18868 AppendMessage(
Message() << value);
18875 ::std::ostream & (*basic_manipulator)(::std::ostream & stream))
18877 AppendMessage(
Message() << basic_manipulator);
18885 if (message_.get() == NULL)
18888 message_->append(a_message.
GetString().c_str());
18965 static bool HasFatalFailure();
18968 static bool HasNonfatalFailure();
18972 static bool HasFailure() {
return HasFatalFailure() || HasNonfatalFailure(); }
18988 static void RecordProperty(
const std::string & key,
int value);
18995 virtual void SetUp();
18998 virtual void TearDown();
19003 static bool HasSameFixtureClass();
19011 virtual void TestBody() = 0;
19059 key_(a_key), value_(a_value)
19066 return key_.c_str();
19072 return value_.c_str();
19078 value_ = new_value;
19105 int total_part_count()
const;
19108 int test_property_count()
const;
19114 bool Failed()
const;
19117 bool HasFatalFailure()
const;
19120 bool HasNonfatalFailure()
const;
19140 friend class internal::ExecDeathTest;
19143 friend class internal::WindowsDeathTest;
19148 return test_part_results_;
19154 return test_properties_;
19166 void RecordProperty(
const std::string & xml_element,
19172 static bool ValidateTestProperty(
const std::string & xml_element,
19176 void AddTestPartResult(
const TestPartResult & test_part_result);
19185 void ClearTestPartResults();
19235 if (type_param_.get() != NULL)
19236 {
return type_param_->c_str(); }
19245 if (value_param_.get() != NULL)
19246 {
return value_param_->c_str(); }
19275 return matches_filter_;
19282 #if GTEST_HAS_DEATH_TEST 19283 friend class internal::DefaultDeathTestFactory;
19284 #endif // GTEST_HAS_DEATH_TEST 19288 friend class internal::StreamingListenerTest;
19290 const char * test_case_name,
19292 const char * type_param,
19293 const char * value_param,
19303 const char * a_type_param,
19304 const char * a_value_param,
19312 return result_.increment_death_test_count();
19366 TestCase(
const char *
name,
const char * a_type_param,
19380 if (type_param_.get() != NULL)
19381 {
return type_param_->c_str(); }
19390 int successful_test_count()
const;
19393 int failed_test_count()
const;
19396 int reportable_disabled_test_count()
const;
19399 int disabled_test_count()
const;
19402 int reportable_test_count()
const;
19405 int test_to_run_count()
const;
19408 int total_test_count()
const;
19414 bool Failed()
const {
return failed_test_count() > 0; }
19421 const TestInfo * GetTestInfo(
int i)
const;
19437 return test_info_list_;
19442 TestInfo * GetMutableTestInfo(
int i);
19449 void AddTestInfo(
TestInfo * test_info);
19452 void ClearResult();
19512 void UnshuffleTests();
19582 virtual void OnTestProgramStart(
const UnitTest & unit_test) = 0;
19587 virtual void OnTestIterationStart(
const UnitTest & unit_test,
19588 int iteration) = 0;
19591 virtual void OnEnvironmentsSetUpStart(
const UnitTest & unit_test) = 0;
19594 virtual void OnEnvironmentsSetUpEnd(
const UnitTest & unit_test) = 0;
19597 virtual void OnTestCaseStart(
const TestCase & test_case) = 0;
19600 virtual void OnTestStart(
const TestInfo & test_info) = 0;
19603 virtual void OnTestPartResult(
const TestPartResult & test_part_result) = 0;
19606 virtual void OnTestEnd(
const TestInfo & test_info) = 0;
19609 virtual void OnTestCaseEnd(
const TestCase & test_case) = 0;
19612 virtual void OnEnvironmentsTearDownStart(
const UnitTest & unit_test) = 0;
19615 virtual void OnEnvironmentsTearDownEnd(
const UnitTest & unit_test) = 0;
19618 virtual void OnTestIterationEnd(
const UnitTest & unit_test,
19619 int iteration) = 0;
19622 virtual void OnTestProgramEnd(
const UnitTest & unit_test) = 0;
19674 return default_result_printer_;
19686 return default_xml_generator_;
19693 friend class internal::NoExecDeathTest;
19717 bool EventForwardingEnabled()
const;
19718 void SuppressEventForwarding();
19759 const char * original_working_dir()
const;
19763 const TestCase * current_test_case()
const 19768 const TestInfo * current_test_info()
const 19772 int random_seed()
const;
19774 #if GTEST_HAS_PARAM_TEST 19781 #endif // GTEST_HAS_PARAM_TEST 19784 int successful_test_case_count()
const;
19787 int failed_test_case_count()
const;
19790 int total_test_case_count()
const;
19794 int test_case_to_run_count()
const;
19797 int successful_test_count()
const;
19800 int failed_test_count()
const;
19803 int reportable_disabled_test_count()
const;
19806 int disabled_test_count()
const;
19809 int reportable_test_count()
const;
19812 int total_test_count()
const;
19815 int test_to_run_count()
const;
19819 TimeInMillis start_timestamp()
const;
19822 TimeInMillis elapsed_time()
const;
19825 bool Passed()
const;
19829 bool Failed()
const;
19833 const TestCase * GetTestCase(
int i)
const;
19837 const TestResult & ad_hoc_test_result()
const;
19860 const char * file_name,
19875 TestCase * GetMutableTestCase(
int i);
19886 friend class internal::StreamingListenerTest;
19906 void PopGTestTrace()
19907 GTEST_LOCK_EXCLUDED_(mutex_);
19911 mutable internal::Mutex mutex_;
19917 internal::UnitTestImpl * impl_;
19943 return UnitTest::GetInstance()->AddEnvironment(env);
19979 template <
typename ToPr
int,
typename OtherOperand>
19990 template <
typename ToPr
int,
size_t N,
typename OtherOperand>
20003 #define GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(CharType) \ 20004 template <typename OtherOperand> \ 20005 class FormatForComparison<CharType*, OtherOperand> { \ 20007 static ::std::string Format(CharType* value) { \ 20008 return ::testing::PrintToString(static_cast<const void*>(value)); \ 20017 #undef GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_ 20022 #define GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(CharType, OtherStringType) \ 20024 class FormatForComparison<CharType*, OtherStringType> { \ 20026 static ::std::string Format(CharType* value) { \ 20027 return ::testing::PrintToString(value); \ 20034 #if GTEST_HAS_GLOBAL_STRING 20039 #if GTEST_HAS_GLOBAL_WSTRING 20044 #if GTEST_HAS_STD_WSTRING 20049 #undef GTEST_IMPL_FORMAT_C_STRING_AS_STRING_ 20059 template <
typename T1,
typename T2>
20061 const T1 & value,
const T2 & )
20067 template <
typename T1,
typename T2>
20069 const char * actual_expression,
20070 const T1 & expected,
20074 # pragma warning(push) // Saves the current warning state. 20075 # pragma warning(disable:4389) // Temporarily disables warning on 20079 if (expected == actual)
20085 # pragma warning(pop) // Restores the warning state. 20099 const char * actual_expression,
20100 BiggestInt expected,
20101 BiggestInt actual);
20107 template <
bool lhs_is_null_literal>
20112 template <
typename T1,
typename T2>
20114 const char * actual_expression,
20115 const T1 & expected,
20118 return CmpHelperEQ(expected_expression, actual_expression, expected,
20129 const char * actual_expression,
20130 BiggestInt expected,
20133 return CmpHelperEQ(expected_expression, actual_expression, expected,
20148 template <
typename T1,
typename T2>
20150 const char * expected_expression,
20151 const char * actual_expression,
20152 const T1 & expected,
20161 return CmpHelperEQ(expected_expression, actual_expression, expected,
20167 template <
typename T>
20169 const char * expected_expression,
20170 const char * actual_expression,
20181 return CmpHelperEQ(expected_expression, actual_expression,
20182 static_cast<T *>(NULL), actual);
20196 #define GTEST_IMPL_CMP_HELPER_(op_name, op)\ 20197 template <typename T1, typename T2>\ 20198 AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \ 20199 const T1& val1, const T2& val2) {\ 20200 if (val1 op val2) {\ 20201 return AssertionSuccess();\ 20203 return AssertionFailure() \ 20204 << "Expected: (" << expr1 << ") " #op " (" << expr2\ 20205 << "), actual: " << FormatForComparisonFailureMessage(val1, val2)\ 20206 << " vs " << FormatForComparisonFailureMessage(val2, val1);\ 20209 GTEST_API_ AssertionResult CmpHelper##op_name(\ 20210 const char* expr1, const char* expr2, BiggestInt val1, BiggestInt val2) 20225 #undef GTEST_IMPL_CMP_HELPER_ 20231 const char * actual_expression,
20232 const char * expected,
20233 const char * actual);
20239 const char * actual_expression,
20240 const char * expected,
20241 const char * actual);
20247 const char * s2_expression,
20255 const char * s2_expression,
20264 const char * actual_expression,
20265 const wchar_t * expected,
20266 const wchar_t * actual);
20272 const char * s2_expression,
20273 const wchar_t * s1,
20274 const wchar_t * s2);
20287 const char * needle_expr,
const char * haystack_expr,
20288 const char * needle,
const char * haystack);
20290 const char * needle_expr,
const char * haystack_expr,
20291 const wchar_t * needle,
const wchar_t * haystack);
20293 const char * needle_expr,
const char * haystack_expr,
20294 const char * needle,
const char * haystack);
20296 const char * needle_expr,
const char * haystack_expr,
20297 const wchar_t * needle,
const wchar_t * haystack);
20299 const char * needle_expr,
const char * haystack_expr,
20302 const char * needle_expr,
const char * haystack_expr,
20305 #if GTEST_HAS_STD_WSTRING 20307 const char * needle_expr,
const char * haystack_expr,
20310 const char * needle_expr,
const char * haystack_expr,
20312 #endif // GTEST_HAS_STD_WSTRING 20324 template <
typename RawType>
20326 const char * actual_expression,
20332 if (lhs.AlmostEquals(rhs))
20337 ::std::stringstream expected_ss;
20338 expected_ss << std::setprecision(std::numeric_limits<RawType>::digits10 + 2)
20341 ::std::stringstream actual_ss;
20342 actual_ss << std::setprecision(std::numeric_limits<RawType>::digits10 + 2)
20356 const char * expr2,
20357 const char * abs_error_expr,
20371 const char * message);
20376 void operator=(
const Message & message)
const;
20386 const char * srcfile,
20389 : type(t), file(srcfile), line(line_num), message(msg) { }
20407 #if GTEST_HAS_PARAM_TEST 20442 template <
typename T>
20457 <<
"GetParam() can only be called inside a value-parameterized test " 20458 <<
"-- did you intend to write TEST_P instead of TEST_F?";
20459 return *parameter_;
20467 parameter_ = parameter;
20477 template <
typename T>
20483 template <
typename T>
20488 #endif // GTEST_HAS_PARAM_TEST 20510 #define ADD_FAILURE() GTEST_NONFATAL_FAILURE_("Failed") 20514 #define ADD_FAILURE_AT(file, line) \ 20515 GTEST_MESSAGE_AT_(file, line, "Failed", \ 20516 ::testing::TestPartResult::kNonFatalFailure) 20519 #define GTEST_FAIL() GTEST_FATAL_FAILURE_("Failed") 20523 #if !GTEST_DONT_DEFINE_FAIL 20524 # define FAIL() GTEST_FAIL() 20528 #define GTEST_SUCCEED() GTEST_SUCCESS_("Succeeded") 20532 #if !GTEST_DONT_DEFINE_SUCCEED 20533 # define SUCCEED() GTEST_SUCCEED() 20545 #define EXPECT_THROW(statement, expected_exception) \ 20546 GTEST_TEST_THROW_(statement, expected_exception, GTEST_NONFATAL_FAILURE_) 20547 #define EXPECT_NO_THROW(statement) \ 20548 GTEST_TEST_NO_THROW_(statement, GTEST_NONFATAL_FAILURE_) 20549 #define EXPECT_ANY_THROW(statement) \ 20550 GTEST_TEST_ANY_THROW_(statement, GTEST_NONFATAL_FAILURE_) 20551 #define ASSERT_THROW(statement, expected_exception) \ 20552 GTEST_TEST_THROW_(statement, expected_exception, GTEST_FATAL_FAILURE_) 20553 #define ASSERT_NO_THROW(statement) \ 20554 GTEST_TEST_NO_THROW_(statement, GTEST_FATAL_FAILURE_) 20555 #define ASSERT_ANY_THROW(statement) \ 20556 GTEST_TEST_ANY_THROW_(statement, GTEST_FATAL_FAILURE_) 20561 #define EXPECT_TRUE(condition) \ 20562 GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \ 20563 GTEST_NONFATAL_FAILURE_) 20564 #define EXPECT_FALSE(condition) \ 20565 GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \ 20566 GTEST_NONFATAL_FAILURE_) 20567 #define ASSERT_TRUE(condition) \ 20568 GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \ 20569 GTEST_FATAL_FAILURE_) 20570 #define ASSERT_FALSE(condition) \ 20571 GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \ 20572 GTEST_FATAL_FAILURE_) 20610 #ifndef GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_ 20611 #define GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_ 20614 #ifndef GTEST_INCLUDE_GTEST_GTEST_H_ 20615 # error Do not include gtest_pred_impl.h directly. Include gtest.h instead. 20616 #endif // GTEST_INCLUDE_GTEST_GTEST_H_ 20650 #define GTEST_ASSERT_(expression, on_failure) \ 20651 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ 20652 if (const ::testing::AssertionResult gtest_ar = (expression)) \ 20655 on_failure(gtest_ar.failure_message()) 20660 template <
typename Pred,
20670 << e1 <<
") evaluates to false, where" 20671 <<
"\n" << e1 <<
" evaluates to " << v1;
20676 #define GTEST_PRED_FORMAT1_(pred_format, v1, on_failure)\ 20677 GTEST_ASSERT_(pred_format(#v1, v1), \ 20682 #define GTEST_PRED1_(pred, v1, on_failure)\ 20683 GTEST_ASSERT_(::testing::AssertPred1Helper(#pred, \ 20689 #define EXPECT_PRED_FORMAT1(pred_format, v1) \ 20690 GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_) 20691 #define EXPECT_PRED1(pred, v1) \ 20692 GTEST_PRED1_(pred, v1, GTEST_NONFATAL_FAILURE_) 20693 #define ASSERT_PRED_FORMAT1(pred_format, v1) \ 20694 GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_) 20695 #define ASSERT_PRED1(pred, v1) \ 20696 GTEST_PRED1_(pred, v1, GTEST_FATAL_FAILURE_) 20702 template <
typename Pred,
20716 << e2 <<
") evaluates to false, where" 20717 <<
"\n" << e1 <<
" evaluates to " << v1
20718 <<
"\n" << e2 <<
" evaluates to " << v2;
20723 #define GTEST_PRED_FORMAT2_(pred_format, v1, v2, on_failure)\ 20724 GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), \ 20729 #define GTEST_PRED2_(pred, v1, v2, on_failure)\ 20730 GTEST_ASSERT_(::testing::AssertPred2Helper(#pred, \ 20738 #define EXPECT_PRED_FORMAT2(pred_format, v1, v2) \ 20739 GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_NONFATAL_FAILURE_) 20740 #define EXPECT_PRED2(pred, v1, v2) \ 20741 GTEST_PRED2_(pred, v1, v2, GTEST_NONFATAL_FAILURE_) 20742 #define ASSERT_PRED_FORMAT2(pred_format, v1, v2) \ 20743 GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_) 20744 #define ASSERT_PRED2(pred, v1, v2) \ 20745 GTEST_PRED2_(pred, v1, v2, GTEST_FATAL_FAILURE_) 20751 template <
typename Pred,
20769 << e3 <<
") evaluates to false, where" 20770 <<
"\n" << e1 <<
" evaluates to " << v1
20771 <<
"\n" << e2 <<
" evaluates to " << v2
20772 <<
"\n" << e3 <<
" evaluates to " << v3;
20777 #define GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, on_failure)\ 20778 GTEST_ASSERT_(pred_format(#v1, #v2, #v3, v1, v2, v3), \ 20783 #define GTEST_PRED3_(pred, v1, v2, v3, on_failure)\ 20784 GTEST_ASSERT_(::testing::AssertPred3Helper(#pred, \ 20794 #define EXPECT_PRED_FORMAT3(pred_format, v1, v2, v3) \ 20795 GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, GTEST_NONFATAL_FAILURE_) 20796 #define EXPECT_PRED3(pred, v1, v2, v3) \ 20797 GTEST_PRED3_(pred, v1, v2, v3, GTEST_NONFATAL_FAILURE_) 20798 #define ASSERT_PRED_FORMAT3(pred_format, v1, v2, v3) \ 20799 GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, GTEST_FATAL_FAILURE_) 20800 #define ASSERT_PRED3(pred, v1, v2, v3) \ 20801 GTEST_PRED3_(pred, v1, v2, v3, GTEST_FATAL_FAILURE_) 20807 template <
typename Pred,
20829 << e4 <<
") evaluates to false, where" 20830 <<
"\n" << e1 <<
" evaluates to " << v1
20831 <<
"\n" << e2 <<
" evaluates to " << v2
20832 <<
"\n" << e3 <<
" evaluates to " << v3
20833 <<
"\n" << e4 <<
" evaluates to " << v4;
20838 #define GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, on_failure)\ 20839 GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, v1, v2, v3, v4), \ 20844 #define GTEST_PRED4_(pred, v1, v2, v3, v4, on_failure)\ 20845 GTEST_ASSERT_(::testing::AssertPred4Helper(#pred, \ 20857 #define EXPECT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \ 20858 GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, GTEST_NONFATAL_FAILURE_) 20859 #define EXPECT_PRED4(pred, v1, v2, v3, v4) \ 20860 GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_NONFATAL_FAILURE_) 20861 #define ASSERT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \ 20862 GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, GTEST_FATAL_FAILURE_) 20863 #define ASSERT_PRED4(pred, v1, v2, v3, v4) \ 20864 GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_FATAL_FAILURE_) 20870 template <
typename Pred,
20896 << e5 <<
") evaluates to false, where" 20897 <<
"\n" << e1 <<
" evaluates to " << v1
20898 <<
"\n" << e2 <<
" evaluates to " << v2
20899 <<
"\n" << e3 <<
" evaluates to " << v3
20900 <<
"\n" << e4 <<
" evaluates to " << v4
20901 <<
"\n" << e5 <<
" evaluates to " << v5;
20906 #define GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, on_failure)\ 20907 GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, #v5, v1, v2, v3, v4, v5), \ 20912 #define GTEST_PRED5_(pred, v1, v2, v3, v4, v5, on_failure)\ 20913 GTEST_ASSERT_(::testing::AssertPred5Helper(#pred, \ 20927 #define EXPECT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \ 20928 GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, GTEST_NONFATAL_FAILURE_) 20929 #define EXPECT_PRED5(pred, v1, v2, v3, v4, v5) \ 20930 GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_NONFATAL_FAILURE_) 20931 #define ASSERT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \ 20932 GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_) 20933 #define ASSERT_PRED5(pred, v1, v2, v3, v4, v5) \ 20934 GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_) 20938 #endif // GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_ 20986 #define EXPECT_EQ(expected, actual) \ 20987 EXPECT_PRED_FORMAT2(::testing::internal:: \ 20988 EqHelper<GTEST_IS_NULL_LITERAL_(expected)>::Compare, \ 20990 #define EXPECT_NE(expected, actual) \ 20991 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperNE, expected, actual) 20992 #define EXPECT_LE(val1, val2) \ 20993 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperLE, val1, val2) 20994 #define EXPECT_LT(val1, val2) \ 20995 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperLT, val1, val2) 20996 #define EXPECT_GE(val1, val2) \ 20997 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGE, val1, val2) 20998 #define EXPECT_GT(val1, val2) \ 20999 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2) 21001 #define GTEST_ASSERT_EQ(expected, actual) \ 21002 ASSERT_PRED_FORMAT2(::testing::internal:: \ 21003 EqHelper<GTEST_IS_NULL_LITERAL_(expected)>::Compare, \ 21005 #define GTEST_ASSERT_NE(val1, val2) \ 21006 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperNE, val1, val2) 21007 #define GTEST_ASSERT_LE(val1, val2) \ 21008 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperLE, val1, val2) 21009 #define GTEST_ASSERT_LT(val1, val2) \ 21010 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperLT, val1, val2) 21011 #define GTEST_ASSERT_GE(val1, val2) \ 21012 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperGE, val1, val2) 21013 #define GTEST_ASSERT_GT(val1, val2) \ 21014 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2) 21019 #if !GTEST_DONT_DEFINE_ASSERT_EQ 21020 # define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2) 21023 #if !GTEST_DONT_DEFINE_ASSERT_NE 21024 # define ASSERT_NE(val1, val2) GTEST_ASSERT_NE(val1, val2) 21027 #if !GTEST_DONT_DEFINE_ASSERT_LE 21028 # define ASSERT_LE(val1, val2) GTEST_ASSERT_LE(val1, val2) 21031 #if !GTEST_DONT_DEFINE_ASSERT_LT 21032 # define ASSERT_LT(val1, val2) GTEST_ASSERT_LT(val1, val2) 21035 #if !GTEST_DONT_DEFINE_ASSERT_GE 21036 # define ASSERT_GE(val1, val2) GTEST_ASSERT_GE(val1, val2) 21039 #if !GTEST_DONT_DEFINE_ASSERT_GT 21040 # define ASSERT_GT(val1, val2) GTEST_ASSERT_GT(val1, val2) 21059 #define EXPECT_STREQ(expected, actual) \ 21060 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTREQ, expected, actual) 21061 #define EXPECT_STRNE(s1, s2) \ 21062 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2) 21063 #define EXPECT_STRCASEEQ(expected, actual) \ 21064 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, expected, actual) 21065 #define EXPECT_STRCASENE(s1, s2)\ 21066 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2) 21068 #define ASSERT_STREQ(expected, actual) \ 21069 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTREQ, expected, actual) 21070 #define ASSERT_STRNE(s1, s2) \ 21071 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2) 21072 #define ASSERT_STRCASEEQ(expected, actual) \ 21073 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, expected, actual) 21074 #define ASSERT_STRCASENE(s1, s2)\ 21075 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2) 21091 #define EXPECT_FLOAT_EQ(expected, actual)\ 21092 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<float>, \ 21095 #define EXPECT_DOUBLE_EQ(expected, actual)\ 21096 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<double>, \ 21099 #define ASSERT_FLOAT_EQ(expected, actual)\ 21100 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<float>, \ 21103 #define ASSERT_DOUBLE_EQ(expected, actual)\ 21104 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<double>, \ 21107 #define EXPECT_NEAR(val1, val2, abs_error)\ 21108 EXPECT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \ 21109 val1, val2, abs_error) 21111 #define ASSERT_NEAR(val1, val2, abs_error)\ 21112 ASSERT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \ 21113 val1, val2, abs_error) 21123 float val1,
float val2);
21125 double val1,
double val2);
21128 #if GTEST_OS_WINDOWS 21139 # define EXPECT_HRESULT_SUCCEEDED(expr) \ 21140 EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr)) 21142 # define ASSERT_HRESULT_SUCCEEDED(expr) \ 21143 ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr)) 21145 # define EXPECT_HRESULT_FAILED(expr) \ 21146 EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr)) 21148 # define ASSERT_HRESULT_FAILED(expr) \ 21149 ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr)) 21151 #endif // GTEST_OS_WINDOWS 21163 #define ASSERT_NO_FATAL_FAILURE(statement) \ 21164 GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_FATAL_FAILURE_) 21165 #define EXPECT_NO_FATAL_FAILURE(statement) \ 21166 GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_NONFATAL_FAILURE_) 21179 #define SCOPED_TRACE(message) \ 21180 ::testing::internal::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)(\ 21181 __FILE__, __LINE__, ::testing::Message() << (message)) 21213 template <
typename T1,
typename T2>
21245 #define GTEST_TEST(test_case_name, test_name)\ 21246 GTEST_TEST_(test_case_name, test_name, \ 21247 ::testing::Test, ::testing::internal::GetTestTypeId()) 21251 #if !GTEST_DONT_DEFINE_TEST 21252 # define TEST(test_case_name, test_name) GTEST_TEST(test_case_name, test_name) 21281 #define TEST_F(test_fixture, test_name)\ 21282 GTEST_TEST_(test_fixture, test_name, test_fixture, \ 21283 ::testing::internal::GetTypeId<test_fixture>()) 21299 return ::testing::UnitTest::GetInstance()->Run();
21302 #endif // GTEST_INCLUDE_GTEST_GTEST_H_
const char kDeathTestUseFork[]
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(2, Tuple)) ConstField(const Tuple &t)
const ParamGenerator< T9 >::iterator begin9_
static void Print(const T &value,::std::ostream *os)
::std::vector< std::pair< string, GeneratorCreationFunc * > > InstantiationContainer
const ParamGenerator< T2 >::iterator begin2_
ValueArray20(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20)
const ParamGenerator< T2 >::iterator end2_
CartesianProductHolder10(const Generator1 &g1, const Generator2 &g2, const Generator3 &g3, const Generator4 &g4, const Generator5 &g5, const Generator6 &g6, const Generator7 &g7, const Generator8 &g8, const Generator9 &g9, const Generator10 &g10)
Iterator(const Iterator &other)
UnitTestImpl * GetUnitTestImpl()
internal::SetUpTestCaseFunc SetUpTestCaseFunc
::std::tr1::tuple< T1, T2, T3, T4, T5, T6, T7, T8 > ParamType
const char * type_param() const
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(8, Tuple)) Field(Tuple &t)
const ParamGenerator< T7 > g7_
ValueArray34(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34)
TypeWithSize< 8 >::Int Int64
bool IsTrue(bool condition)
ValueArray46(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46)
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(9, Tuple)) Field(Tuple &t)
::std::vector< T > ContainerType
bool has_new_fatal_failure() const
bool fatally_failed() const
bool operator==(linked_ptr< U > const &ptr) const
void ReportFailureInUnknownLocation(TestPartResult::Type result_type, const std::string &message)
::std::vector< linked_ptr< TestInfo > > TestInfoContainer
std::string GetCapturedStdout()
std::string GetCapturedStderr()
bool operator==(const NativeArray &rhs) const
virtual void OnTestProgramStart(const UnitTest &)
virtual void OnEnvironmentsSetUpEnd(const UnitTest &)
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(3, Tuple)) ConstField(const Tuple &t)
Iterator(const ParamGeneratorInterface< ParamType > *base, const ParamGenerator< T1 > &g1, const typename ParamGenerator< T1 >::iterator ¤t1, const ParamGenerator< T2 > &g2, const typename ParamGenerator< T2 >::iterator ¤t2, const ParamGenerator< T3 > &g3, const typename ParamGenerator< T3 >::iterator ¤t3, const ParamGenerator< T4 > &g4, const typename ParamGenerator< T4 >::iterator ¤t4, const ParamGenerator< T5 > &g5, const typename ParamGenerator< T5 >::iterator ¤t5, const ParamGenerator< T6 > &g6, const typename ParamGenerator< T6 >::iterator ¤t6, const ParamGenerator< T7 > &g7, const typename ParamGenerator< T7 >::iterator ¤t7, const ParamGenerator< T8 > &g8, const typename ParamGenerator< T8 >::iterator ¤t8, const ParamGenerator< T9 > &g9, const typename ParamGenerator< T9 >::iterator ¤t9)
const T1 const T2 const T3 const T4 const T5 const T6 const T7 & f7
int death_test_count() const
bool param(const std::string ¶m_name, T ¶m_val, const T &default_val)
virtual ~ParamIteratorInterface()
::std::tr1::tuple< T1, T2, T3, T4 > ParamType
static AssertionResult Compare(const char *expected_expression, const char *actual_expression, Secret *, T *actual)
static bool FullMatch(const ::std::string &str, const RE &re)
const ParamGenerator< T1 >::iterator begin1_
ValueArray50(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48, T49 v49, T50 v50)
ParamGenerator< T3 >::iterator current3_
void ComputeCurrentValue()
static Bits DistanceBetweenSignAndMagnitudeNumbers(const Bits &sam1, const Bits &sam2)
virtual ParamIteratorInterface< ParamType > * Begin() const
virtual const ParamGeneratorInterface< T > * BaseGenerator() const
const ParamGenerator< T7 >::iterator end7_
#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type)
void(* TearDownTestCaseFunc)()
char * StrDup(const char *src)
const ParamGenerator< T2 >::iterator end2_
static void SetUpTestCase()
const char * summary() const
const ParamGenerator< T2 > g2_
linked_ptr(linked_ptr< U > const &ptr)
const T1 const T2 const T3 & f3
Bits exponent_bits() const
const ParamGenerator< T2 >::iterator end2_
virtual const string & GetTestCaseName() const
tuple & operator=(const tuple &)
const ParamGenerator< T8 >::iterator end8_
bool operator==(T *p) const
TYPED_TEST_CASE_P(TypeParamTest)
virtual ParamIteratorInterface< ParamType > * End() const
const ParamGenerator< T8 >::iterator end8_
const ParamGenerator< T5 >::iterator end5_
const ParamGenerator< T2 >::iterator end2_
TestCase::ParamType ParamType
AssertionResult AssertionFailure()
const ParamGenerator< T3 >::iterator begin3_
virtual ~TestFactoryBase()
const ParamGenerator< T6 > g6_
virtual const ParamGeneratorInterface< ParamType > * BaseGenerator() const
static RawType Infinity()
const ParamGenerator< T3 >::iterator begin3_
void operator<<(const testing::internal::Secret &, int)
const ParamGenerator< T4 >::iterator begin4_
const std::vector< TestProperty > & test_properties() const
virtual ~RangeGenerator()
AssertionResult AssertPred2Helper(const char *pred_text, const char *e1, const char *e2, Pred pred, const T1 &v1, const T2 &v2)
void PrintRawArrayTo(const T a[], size_t count,::std::ostream *os)
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(1, Tuple)) ConstField(const Tuple &t)
Iterator::value_type value_type
const ParamGenerator< T5 >::iterator begin5_
const ParamGenerator< T7 >::iterator end7_
const ParamGenerator< T8 > g8_
const ParamGenerator< T1 >::iterator begin1_
Iterator(const Iterator &other)
linked_ptr(linked_ptr const &ptr)
Iterator(const ParamGeneratorInterface< T > *base, T value, int index, IncrementT step)
const ParamGenerator< T2 >::iterator begin2_
ParamGenerator< T6 >::iterator current6_
const ParamGenerator< T8 > g8_
const ParamGenerator< T10 > g10_
Environment * AddGlobalTestEnvironment(Environment *env)
virtual const ParamGeneratorInterface< ParamType > * BaseGenerator() const
virtual ~TestEventListener()
static const ParamType * parameter_
GTEST_API_ void PrintWideStringTo(const ::std::wstring &s,::std::ostream *os)
const ParamGenerator< T1 >::iterator end1_
static void Print(wchar_t *str,::std::ostream *os)
linked_ptr_internal const * next_
bool operator==(const ParamIterator &other) const
ValueArray43(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43)
virtual ParamIteratorInterface< ParamType > * Clone() const
const ParamGenerator< T3 >::iterator end3_
internal::EqMatcher< T > Eq(T x)
static void Print(const T &value,::std::ostream *os)
const ParamGenerator< T3 >::iterator begin3_
static AssertionResult Compare(const char *expected_expression, const char *actual_expression, BiggestInt expected, BiggestInt actual)
const std::vector< TestInfo * > & test_info_list() const
static bool TestFailed(const TestInfo *test_info)
GTEST_API_ void PrintStringTo(const ::std::string &s,::std::ostream *os)
static RawType ReinterpretBits(const Bits bits)
::std::string PrintToString(const T &value)
const ContainerType container_
TypeWithSize< 4 >::Int Int32
ParamGenerator< T2 >::iterator current2_
FILE * FOpen(const char *path, const char *mode)
AssertionResult CmpHelperFloatingPointEQ(const char *expected_expression, const char *actual_expression, RawType expected, RawType actual)
Iterator(const Iterator &other)
const T * pointer() const
virtual bool Equals(const ParamIteratorInterface< ParamType > &other) const
static bool TestReportableDisabled(const TestInfo *test_info)
const ParamGenerator< T3 >::iterator begin3_
const char * message() const
const internal::UnitTestImpl * impl() const
CartesianProductHolder8(const Generator1 &g1, const Generator2 &g2, const Generator3 &g3, const Generator4 &g4, const Generator5 &g5, const Generator6 &g6, const Generator7 &g7, const Generator8 &g8)
Derived * CheckedDowncastToActualType(Base *base)
static void Print(const T(&value)[N],::std::ostream *os)
static void ClearTestResult(TestInfo *test_info)
ParamGenerator< T2 >::iterator current2_
::std::tr1::tuple< T1, T2, T3, T4, T5, T6 > ParamType
ParamGenerator< T2 >::iterator current2_
virtual ParamIteratorInterface< ParamType > * Clone() const
TYPED_TEST_P(TypeParamTest, TestA)
#define GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(CharType)
ParamGenerator< T4 >::iterator current4_
internal::Mutex test_properites_mutex_
virtual void OnTestCaseEnd(const TestCase &)
void UniversalTersePrint(const T &value,::std::ostream *os)
bool BoolFromGTestEnv(const char *flag, bool default_value)
virtual ParamIteratorInterface< ParamType > * End() const
const std::vector< TestPartResult > & test_part_results() const
IsNotContainer IsContainerTest(long)
ValueArray21(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21)
const ParamGenerator< T5 > g5_
const Element * const_iterator
Iterator(const ParamGeneratorInterface< ParamType > *base, const ParamGenerator< T1 > &g1, const typename ParamGenerator< T1 >::iterator ¤t1, const ParamGenerator< T2 > &g2, const typename ParamGenerator< T2 >::iterator ¤t2, const ParamGenerator< T3 > &g3, const typename ParamGenerator< T3 >::iterator ¤t3, const ParamGenerator< T4 > &g4, const typename ParamGenerator< T4 >::iterator ¤t4, const ParamGenerator< T5 > &g5, const typename ParamGenerator< T5 >::iterator ¤t5, const ParamGenerator< T6 > &g6, const typename ParamGenerator< T6 >::iterator ¤t6)
GTEST_API_ int g_init_gtest_count
ParamGenerator< T5 >::iterator current5_
GTEST_API_::std::string FormatFileLocation(const char *file, int line)
int increment_death_test_count()
ValueArray30(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30)
const ParamGenerator< T4 >::iterator end4_
bool has_new_fatal_failure_
const ParamGenerator< T1 >::iterator begin1_
AssertionResult CmpHelperSTRCASENE(const char *s1_expression, const char *s2_expression, const char *s1, const char *s2)
TypeWithSize< 4 >::UInt UInt32
void copy(linked_ptr< U > const *ptr)
ValueArray17(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17)
FloatingPoint(const RawType &x)
void ComputeCurrentValue()
const ParamGenerator< T6 >::iterator begin6_
bool_constant< bool_value > type
CartesianProductGenerator5(const ParamGenerator< T1 > &g1, const ParamGenerator< T2 > &g2, const ParamGenerator< T3 > &g3, const ParamGenerator< T4 > &g4, const ParamGenerator< T5 > &g5)
const string test_case_base_name
ValueArray28(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28)
const ParamGenerator< T6 >::iterator begin6_
ValueArray27(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27)
ValueArray48(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48)
void DefaultPrintNonContainerTo(const T &value,::std::ostream *os)
const ParamGenerator< T4 >::iterator begin4_
TimeInMillis elapsed_time_
TestPartResult::Type const type
Iterator(const Iterator &other)
const ParamGenerator< T2 >::iterator end2_
static AssertionResult Compare(const char *expected_expression, const char *actual_expression, const T1 &expected, const T2 &actual, typename EnableIf< !is_pointer< T2 >::value >::type *=0)
bool ParseInt32(const Message &src_text, const char *str, Int32 *value)
RE(const ::std::string ®ex)
void(* SetUpTestCaseFunc)()
const ParamGenerator< T5 >::iterator end5_
ParamGenerator< T2 >::iterator current2_
std::vector< TestInfo * > & test_info_list()
#define GTEST_0_TUPLE_(T)
ValueArray2(T1 v1, T2 v2)
const T1 const T2 const T3 const T4 const T5 const T6 const T7 const T8 const T9 & f9
const ParamGenerator< T5 > g5_
std::string StringStreamToString(::std::stringstream *ss)
ParameterizedTestCaseInfoBase()
ParamGenerator< T6 >::iterator current6_
const ParamGenerator< T1 >::iterator begin1_
CartesianProductGenerator9(const ParamGenerator< T1 > &g1, const ParamGenerator< T2 > &g2, const ParamGenerator< T3 > &g3, const ParamGenerator< T4 > &g4, const ParamGenerator< T5 > &g5, const ParamGenerator< T6 > &g6, const ParamGenerator< T7 > &g7, const ParamGenerator< T8 > &g8, const ParamGenerator< T9 > &g9)
std::vector< TestInfo * > test_info_list_
virtual const ParamGeneratorInterface< ParamType > * BaseGenerator() const
const ParamGeneratorInterface< T > *const base_
virtual ~TestPartResultReporterInterface()
const ParamGenerator< T7 >::iterator end7_
FILE * FReopen(const char *path, const char *mode, FILE *stream)
void set_elapsed_time(TimeInMillis elapsed)
int Stat(const char *path, StatStruct *buf)
const ParamGeneratorInterface< ParamType > *const base_
static void Print(const T(&a)[N],::std::ostream *os)
const_iterator begin() const
virtual ParamIteratorInterface< ParamType > * End() const
TestEventListener * default_xml_generator() const
AssertionResult DoubleNearPredFormat(const char *expr1, const char *expr2, const char *abs_error_expr, double val1, double val2, double abs_error)
const ParamGenerator< T3 >::iterator end3_
virtual void OnTestPartResult(const TestPartResult &)
#define GTEST_DECLARE_bool_(name)
bool SkipPrefix(const char *prefix, const char **pstr)
static void SetParam(const ParamType *parameter)
CartesianProductHolder5(const Generator1 &g1, const Generator2 &g2, const Generator3 &g3, const Generator4 &g4, const Generator5 &g5)
int ChDir(const char *dir)
TypeWithSize< 8 >::UInt UInt64
~ParameterizedTestCaseRegistry()
ValueArray24(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24)
void ComputeCurrentValue()
ParamGenerator< T1 >::iterator current1_
virtual const ParamType * Current() const
ValueArray49(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48, T49 v49)
virtual ParamIteratorInterface< ParamType > * Clone() const
scoped_ptr< ParamIteratorInterface< T > > impl_
const ParamGenerator< T6 >::iterator begin6_
const ParamGenerator< T6 >::iterator end6_
bool operator!=(T *p) const
GTEST_DECLARE_TUPLE_AS_FRIEND_ tuple & CopyFrom(const GTEST_10_TUPLE_(U)&t)
ParamGenerator< T6 >::iterator current6_
REGISTER_TYPED_TEST_CASE_P(TypeParamTest, TestA, TestB)
virtual const ParamGeneratorInterface< ParamType > * BaseGenerator() const
virtual TypeId GetTestCaseTypeId() const
virtual ParamIteratorInterface< T > * End() const
internal::TearDownTestCaseFunc TearDownTestCaseFunc
const ParamGenerator< T7 >::iterator end7_
static void Print(const T &value,::std::ostream *os)
const ParamGenerator< T1 >::iterator end1_
RelationToSource relation_to_source_
ParamGenerator(const ParamGenerator &other)
#define GTEST_DECLARE_STATIC_MUTEX_(mutex)
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(4, Tuple)) ConstField(const Tuple &t)
TestPartResult(Type a_type, const char *a_file_name, int a_line_number, const char *a_message)
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(9, Tuple)) ConstField(const Tuple &t)
const ParamGenerator< T2 >::iterator begin2_
const ParamGenerator< T3 > g3_
TestInfo * MakeAndRegisterTestInfo(const char *test_case_name, const char *name, const char *type_param, const char *value_param, TypeId fixture_class_id, SetUpTestCaseFunc set_up_tc, TearDownTestCaseFunc tear_down_tc, TestFactoryBase *factory)
Iterator(const Iterator &other)
static void Print(const char *str,::std::ostream *os)
const ParamGenerator< T6 > g6_
const ParamGenerator< T1 > g1_
#define EXPECT_TRUE(condition)
RangeGenerator(T begin, T end, IncrementT step)
std::string FormatForComparisonFailureMessage(const T1 &value, const T2 &)
const internal::scoped_ptr< ::std::stringstream > ss_
ValueArray5(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5)
ValueArray39(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39)
static bool Eq(const Tuple1 &, const Tuple2 &)
const ParamGenerator< T4 >::iterator begin4_
static bool PartialMatch(const ::std::string &str, const RE &re)
virtual bool Equals(const ParamIteratorInterface< T > &other) const
ValuesInIteratorRangeGenerator(ForwardIterator begin, ForwardIterator end)
#define GTEST_IMPL_CMP_HELPER_(op_name, op)
#define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator)
const ParamGenerator< T5 > g5_
const ParamGenerator< T8 >::iterator begin8_
ValueArray13(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13)
virtual ParamIteratorInterface< ParamType > * Clone() const
const ParamGenerator< T2 >::iterator end2_
ParameterizedTestCaseInfo(const char *name)
#define GTEST_DECLARE_TUPLE_AS_FRIEND_
const ParamGenerator< T1 >::iterator end1_
const ParamGenerator< T7 > g7_
FilePath & operator=(const FilePath &rhs)
const ParamGenerator< T6 >::iterator begin6_
TYPED_TEST_CASE(TypedTest, MyTypes)
Message(const Message &msg)
static void TersePrintPrefixToStrings(const Tuple &t, Strings *strings)
void ReportInvalidTestCaseType(const char *test_case_name, const char *file, int line)
const ParamGenerator< T4 >::iterator end4_
ValueArray36(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36)
virtual const T * Current() const
int AddTestCaseInstantiation(const string &instantiation_name, GeneratorCreationFunc *func, const char *, int)
const ParamGenerator< T1 > g1_
virtual void OnEnvironmentsTearDownEnd(const UnitTest &)
virtual bool Equals(const ParamIteratorInterface< ParamType > &other) const
const ParamGenerator< T10 >::iterator begin10_
linked_ptr_internal link_
const ParamGenerator< T2 > g2_
ValueArray32(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32)
const ParamGenerator< T3 >::iterator end3_
virtual ParamIteratorInterface< ParamType > * Begin() const
ParamIterator(const ParamIterator &other)
ParamGenerator< T5 >::iterator current5_
static void TersePrintPrefixToStrings(const Tuple &, Strings *)
const ParamGenerator< T1 > g1_
bool_constant< true > true_type
std::string StreamableToString(const T &streamable)
const char * failure_message() const
virtual ParamIteratorInterface< ParamType > * End() const
virtual const ParamGeneratorInterface< T > * BaseGenerator() const
void AppendMessage(const Message &a_message)
INSTANTIATE_TYPED_TEST_CASE_P(My, TypeParamTest, MyTypes)
std::string GetTypeName()
void ComputeCurrentValue()
void SetValue(const std::string &new_value)
#define TEST_F(test_fixture, test_name)
ValueArray44(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44)
virtual ParamIteratorInterface< ParamType > * Begin() const
const T1 const T2 const T3 const T4 & f4
internal::TimeInMillis TimeInMillis
ParamGenerator< T1 >::iterator current1_
const ParamGenerator< T4 >::iterator begin4_
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(7, Tuple)) ConstField(const Tuple &t)
void DefaultPrintTo(IsNotContainer, false_type, const T &value,::std::ostream *os)
const ParamGenerator< T2 >::iterator begin2_
bool write(ros_opcua_srvs::Write::Request &req, ros_opcua_srvs::Write::Response &res)
virtual bool Equals(const ParamIteratorInterface< ParamType > &other) const
int increment_death_test_count()
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(3, Tuple)) Field(Tuple &t)
const ParamGenerator< T8 > g8_
virtual const T * Current() const
const size_t kProtobufOneLinerMaxLength
Iterator(const Iterator &other)
const ParamGenerator< T3 >::iterator begin3_
const ParamGenerator< T6 >::iterator begin6_
ParamGenerator< T1 >::iterator current1_
ParamGenerator< T1 >::iterator current1_
const char * StringFromGTestEnv(const char *flag, const char *default_value)
const ParamGenerator< T3 > g3_
int Write(int fd, const void *buf, unsigned int count)
const scoped_ptr< TestMetaFactoryBase< ParamType > > test_meta_factory
const internal::TypeId fixture_class_id_
ParamGenerator< T2 >::iterator current2_
virtual ParamIteratorInterface< ParamType > * Clone() const
::std::ostream & GetStream()
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(8, Tuple)) ConstField(const Tuple &t)
#define GTEST_CHECK_POSIX_SUCCESS_(posix_call)
static void PrintPrefixTo(const Tuple &,::std::ostream *)
const ParamGenerator< T1 >::iterator begin1_
#define TEST_P(test_case_name, test_name)
const internal::scoped_ptr< const ::std::string > type_param_
::std::tr1::tuple< T1, T2, T3 > ParamType
const ParamGenerator< T3 >::iterator end3_
const GTestLogSeverity severity_
void Set(const FilePath &rhs)
const ParamGenerator< T2 > g2_
ParamGenerator< T6 >::iterator current6_
ValueArray6(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6)
virtual const ParamGeneratorInterface< ParamType > * BaseGenerator() const
ContainerType::const_iterator iterator_
TestResult ad_hoc_test_result_
static int CalculateEndIndex(const T &begin, const T &end, const IncrementT &step)
ParamGenerator< T4 >::iterator current4_
virtual Setup_should_be_spelled_SetUp * Setup()
const ParamGenerator< T1 >::iterator end1_
const ParamGeneratorInterface< ParamType > *const base_
bool is_reportable() const
const ParamGenerator< T4 > g4_
linked_ptr< T > make_linked_ptr(T *ptr)
const string test_base_name
void CopyArray(const T(&from)[N], U(*to)[N])
void ComputeCurrentValue()
const char * name() const
const ParamGenerator< T9 >::iterator end9_
ValueArray38(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38)
virtual bool Equals(const ParamIteratorInterface< ParamType > &other) const
const ParamGenerator< T6 >::iterator end6_
GTEST_10_TUPLE_(T) make_tuple(const T0 &f0
const ParamGenerator< T5 >::iterator end5_
ValueArray29(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29)
const T1 const T2 const T3 const T4 const T5 const T6 & f6
const ParamGenerator< T5 >::iterator end5_
void join(linked_ptr_internal const *ptr) GTEST_LOCK_EXCLUDED_(g_linked_ptr_mutex)
const ParamGeneratorInterface< ParamType > *const base_
ValueArray3(T1 v1, T2 v2, T3 v3)
std::vector< int > test_indices_
const ParamGenerator< T3 >::iterator begin3_
const char kDeathTestStyleFlag[]
const char * message() const
AssertionResult AssertionSuccess()
virtual ParamIteratorInterface< T > * Begin() const
int RmDir(const char *dir)
const ParamGenerator< T2 > g2_
virtual bool Equals(const ParamIteratorInterface< ParamType > &other) const
const ParamGenerator< T2 >::iterator end2_
const ParamGenerator< T3 >::iterator begin3_
const ParamGenerator< T1 >::iterator begin1_
const ParamGenerator< T5 >::iterator end5_
def Iter(n, format, sep='')
std::string const message
const ParamGenerator< T1 >::iterator end1_
virtual ParamIteratorInterface< ParamType > * End() const
AssertionResult & operator<<(const T &value)
std::vector< TestProperty > test_properties_
string Print(const T &value)
bool operator!=(linked_ptr< U > const &ptr) const
const int kMaxStackTraceDepth
TestClass::ParamType ParamType
const ParamGenerator< T3 >::iterator begin3_
const ParamGenerator< T5 >::iterator begin5_
ValueArray33(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33)
const ParamGenerator< T6 >::iterator end6_
static bool TestPassed(const TestInfo *test_info)
virtual ~CartesianProductGenerator6()
const ParamGenerator< T4 > g4_
virtual ParamIteratorInterface< ParamType > * Begin() const
GTEST_API_ void UniversalPrintArray(const wchar_t *begin, size_t len,::std::ostream *os)
CartesianProductHolder9(const Generator1 &g1, const Generator2 &g2, const Generator3 &g3, const Generator4 &g4, const Generator5 &g5, const Generator6 &g6, const Generator7 &g7, const Generator8 &g8, const Generator9 &g9)
TestInfo(const char *a_test_case_base_name, const char *a_test_base_name, TestMetaFactoryBase< ParamType > *a_test_meta_factory)
linked_ptr< const ParamGeneratorInterface< T > > impl_
ParamIterator operator++(int)
std::string GetCurrentOsStackTraceExceptTop(UnitTest *, int skip_count)
ptrdiff_t difference_type
GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(k, GTEST_10_TUPLE_(T))) get(const GTEST_10_TUPLE_(T)&t)
virtual ~ParameterizedTestCaseInfoBase()
int Read(int fd, void *buf, unsigned int count)
ValueArray26(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26)
const std::string & string() const
ParamGenerator< T4 >::iterator current4_
bool CaseInsensitiveCStringEquals(const char *lhs, const char *rhs)
linked_ptr & operator=(linked_ptr< U > const &ptr)
const ParamGenerator< T7 >::iterator begin7_
ValueArray11(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11)
virtual ParamIteratorInterface< ParamType > * Clone() const
virtual ParamIteratorInterface< ParamType > * Begin() const
const char * file_name() const
virtual ParamIteratorInterface< ParamType > * End() const
TestEventListener * default_result_printer_
::std::tr1::tuple< T1, T2, T3, T4, T5, T6, T7 > ParamType
tuple & operator=(const tuple &t)
virtual ~ParamGeneratorInterface()
void UniversalPrint(const T &value,::std::ostream *os)
#define GTEST_REMOVE_REFERENCE_AND_CONST_(T)
bool AlmostEquals(const FloatingPoint &rhs) const
#define GTEST_DISALLOW_ASSIGN_(type)
ThreadLocal(const T &value)
ParamGenerator< T8 >::iterator current8_
virtual const ParamType * Current() const
bool operator==(const GTEST_10_TUPLE_(T)&t, const GTEST_10_TUPLE_(U)&u)
const ParamGeneratorInterface< ParamType > *const base_
virtual ParamIteratorInterface< ParamType > * Begin() const
NativeArray(const NativeArray &rhs)
Iterator(const Iterator &other)
ValueArray25(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25)
virtual ParamIteratorInterface< ParamType > * Clone() const
ValueArray16(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16)
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(0, Tuple)) ConstField(const Tuple &t)
::std::tr1::tuple< T1, T2, T3, T4, T5, T6, T7, T8, T9 > ParamType
virtual ParamIteratorInterface< ParamType > * Clone() const
int StrCaseCmp(const char *s1, const char *s2)
Test::SetUpTestCaseFunc set_up_tc_
virtual Setup_should_be_spelled_SetUp * Setup()
ParamGenerator< T1 >::iterator current1_
ParamIterator< T > iterator
virtual ~CartesianProductGenerator4()
void Init(const Element *array, size_t a_size, RelationToSource relation)
CartesianProductGenerator7(const ParamGenerator< T1 > &g1, const ParamGenerator< T2 > &g2, const ParamGenerator< T3 > &g3, const ParamGenerator< T4 > &g4, const ParamGenerator< T5 > &g5, const ParamGenerator< T6 > &g6, const ParamGenerator< T7 > &g7)
CartesianProductGenerator10(const ParamGenerator< T1 > &g1, const ParamGenerator< T2 > &g2, const ParamGenerator< T3 > &g3, const ParamGenerator< T4 > &g4, const ParamGenerator< T5 > &g5, const ParamGenerator< T6 > &g6, const ParamGenerator< T7 > &g7, const ParamGenerator< T8 > &g8, const ParamGenerator< T9 > &g9, const ParamGenerator< T10 > &g10)
const ParamGenerator< T4 >::iterator begin4_
bool depart() GTEST_LOCK_EXCLUDED_(g_linked_ptr_mutex)
const ParamGeneratorInterface< ParamType > *const base_
bool operator!=(const ParamIterator &other) const
virtual void OnTestIterationStart(const UnitTest &, int)
virtual bool Equals(const ParamIteratorInterface< ParamType > &other) const
virtual ParamIteratorInterface< ParamType > * End() const
const ParamGeneratorInterface< ParamType > *const base_
#define GTEST_TUPLE_ELEMENT_(k, Tuple)
bool read(ros_opcua_srvs::Read::Request &req, ros_opcua_srvs::Read::Response &res)
const ParamGenerator< T1 > g1_
GTEST_API_ void PrintBytesInObjectTo(const unsigned char *obj_bytes, size_t count,::std::ostream *os)
PolymorphicMatcher< internal::FieldMatcher< Class, FieldType > > Field(FieldType Class::*field, const FieldMatcher &matcher)
const char * value_param() const
const char * StrNCpy(char *dest, const char *src, size_t n)
const ParamGenerator< T5 > g5_
std::string GetString() const
const ParamGenerator< T4 >::iterator end4_
bool IsDir(const StatStruct &st)
AssertionResult IsSubstring(const char *needle_expr, const char *haystack_expr, const char *needle, const char *haystack)
const ParamGenerator< T3 >::iterator end3_
const ParamGenerator< T4 >::iterator end4_
const char * c_str() const
tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1, GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4, GTEST_BY_REF_(T5) f5, GTEST_BY_REF_(T6) f6, GTEST_BY_REF_(T7) f7, GTEST_BY_REF_(T8) f8, GTEST_BY_REF_(T9) f9)
ValueArray12(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12)
Iterator(const ParamGeneratorInterface< ParamType > *base, const ParamGenerator< T1 > &g1, const typename ParamGenerator< T1 >::iterator ¤t1, const ParamGenerator< T2 > &g2, const typename ParamGenerator< T2 >::iterator ¤t2, const ParamGenerator< T3 > &g3, const typename ParamGenerator< T3 >::iterator ¤t3, const ParamGenerator< T4 > &g4, const typename ParamGenerator< T4 >::iterator ¤t4, const ParamGenerator< T5 > &g5, const typename ParamGenerator< T5 >::iterator ¤t5, const ParamGenerator< T6 > &g6, const typename ParamGenerator< T6 >::iterator ¤t6, const ParamGenerator< T7 > &g7, const typename ParamGenerator< T7 >::iterator ¤t7)
const ParamGenerator< T1 >::iterator end1_
TestEventListener * default_xml_generator_
const internal::scoped_ptr< const ::std::string > type_param_
testing::Types< VeryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooogName, int *, MyArray< bool, 42 > > MyTypes
const ParamGenerator< T2 > g2_
AssertionResult CmpHelperSTRCASEEQ(const char *expected_expression, const char *actual_expression, const char *expected, const char *actual)
const ParamGenerator< T3 >::iterator end3_
const T1 const T2 const T3 const T4 const T5 const T6 const T7 const T8 & f8
virtual const ParamType * Current() const
const ParamGenerator< T2 >::iterator begin2_
ParamGenerator< T1 >::iterator current1_
Iterator(const Iterator &other)
ParamGenerator< T7 >::iterator current7_
const ParamGenerator< T2 > g2_
virtual bool Equals(const ParamIteratorInterface< ParamType > &other) const
internal::TestFactoryBase *const factory_
ParamGenerator< T3 >::iterator current3_
const ParamGenerator< T3 > g3_
AssertHelperData(TestPartResult::Type t, const char *srcfile, int line_num, const char *msg)
CartesianProductHolder7(const Generator1 &g1, const Generator2 &g2, const Generator3 &g3, const Generator4 &g4, const Generator5 &g5, const Generator6 &g6, const Generator7 &g7)
ParamGenerator< T3 >::iterator current3_
static Bits SignAndMagnitudeToBiased(const Bits &sam)
virtual ~WithParamInterface()
const char * test_case_name() const
const ParamGenerator< T5 >::iterator begin5_
const ParamGenerator< T5 > g5_
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(6, Tuple)) Field(Tuple &t)
const ParamGenerator< T3 >::iterator end3_
const ParamGenerator< T1 > g1_
const ParamGenerator< T9 >::iterator begin9_
ParamGenerator< T5 >::iterator current5_
Iterator(const ParamGeneratorInterface< ParamType > *base, const ParamGenerator< T1 > &g1, const typename ParamGenerator< T1 >::iterator ¤t1, const ParamGenerator< T2 > &g2, const typename ParamGenerator< T2 >::iterator ¤t2, const ParamGenerator< T3 > &g3, const typename ParamGenerator< T3 >::iterator ¤t3, const ParamGenerator< T4 > &g4, const typename ParamGenerator< T4 >::iterator ¤t4, const ParamGenerator< T5 > &g5, const typename ParamGenerator< T5 >::iterator ¤t5, const ParamGenerator< T6 > &g6, const typename ParamGenerator< T6 >::iterator ¤t6, const ParamGenerator< T7 > &g7, const typename ParamGenerator< T7 >::iterator ¤t7, const ParamGenerator< T8 > &g8, const typename ParamGenerator< T8 >::iterator ¤t8)
CartesianProductHolder6(const Generator1 &g1, const Generator2 &g2, const Generator3 &g3, const Generator4 &g4, const Generator5 &g5, const Generator6 &g6)
static void PrintPrefixTo(const Tuple &t,::std::ostream *os)
static void PrintPrefixTo(const Tuple &t,::std::ostream *os)
const ParamGenerator< T4 > g4_
TestCaseInfoContainer test_case_infos_
const ParamGeneratorInterface< ParamType > *const base_
CartesianProductHolder2(const Generator1 &g1, const Generator2 &g2)
GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(k, GTEST_10_TUPLE_(T))) get(GTEST_10_TUPLE_(T)&t)
virtual ~CartesianProductGenerator5()
ParamGenerator< T10 >::iterator current10_
CartesianProductGenerator4(const ParamGenerator< T1 > &g1, const ParamGenerator< T2 > &g2, const ParamGenerator< T3 > &g3, const ParamGenerator< T4 > &g4)
std::vector< TestPartResult > array_
const ParamGenerator< T3 > g3_
GTEST_API_::std::string FormatCompilerIndependentFileLocation(const char *file, int line)
const char * pattern() const
const ParamGenerator< T4 > g4_
internal::scoped_ptr< ::std::string > message_
AssertionResult CmpHelperSTRNE(const char *s1_expression, const char *s2_expression, const char *s1, const char *s2)
const TestResult & ad_hoc_test_result() const
const char kStackTraceMarker[]
const ParamType parameter_
ValueArray35(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35)
const ParamGenerator< T4 >::iterator end4_
const ParamGenerator< T1 > g1_
const string test_case_name_
FILE * FDOpen(int fd, const char *mode)
virtual void RegisterTests()
const ParamGenerator< T7 > g7_
const ParamGenerator< T8 >::iterator begin8_
virtual void OnEnvironmentsTearDownStart(const UnitTest &)
CartesianProductGenerator6(const ParamGenerator< T1 > &g1, const ParamGenerator< T2 > &g2, const ParamGenerator< T3 > &g3, const ParamGenerator< T4 > &g4, const ParamGenerator< T5 > &g5, const ParamGenerator< T6 > &g6)
internal::CartesianProductHolder10< Generator1, Generator2, Generator3, Generator4, Generator5, Generator6, Generator7, Generator8, Generator9, Generator10 > Combine(const Generator1 &g1, const Generator2 &g2, const Generator3 &g3, const Generator4 &g4, const Generator5 &g5, const Generator6 &g6, const Generator7 &g7, const Generator8 &g8, const Generator9 &g9, const Generator10 &g10)
const ParamGenerator< T8 >::iterator end8_
std::string AppendUserMessage(const std::string >est_msg, const Message &user_msg)
const ParamGenerator< T6 > g6_
const ParamGenerator< T3 > g3_
const ParamGenerator< T1 > g1_
AssertHelperData *const data_
ValueArray8(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8)
ParamGenerator< T2 >::iterator current2_
const ParamGenerator< T1 >::iterator begin1_
virtual ~CartesianProductGenerator3()
scoped_ptr< const T > value_
const ParamGenerator< T4 >::iterator end4_
Iterator(const Iterator &other)
AssertionResult & operator<<(::std::ostream &(*basic_manipulator)(::std::ostream &stream))
void AddTestPattern(const char *test_case_name, const char *test_base_name, TestMetaFactoryBase< ParamType > *meta_factory)
Test::TearDownTestCaseFunc tear_down_tc_
internal::ParamGenerator< typename Container::value_type > ValuesIn(const Container &container)
ValueArray14(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14)
virtual Test * CreateTest()
ValueArray42(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, T42 v42)
ParamGenerator< T7 >::iterator current7_
std::vector< TestPartResult > test_part_results_
const ParamGenerator< T4 > g4_
Strings UniversalTersePrintTupleFieldsToStrings(const Tuple &value)
ValueArray19(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19)
internal::UnitTestImpl * impl()
bool IsXDigit(wchar_t ch)
virtual void OnTestCaseStart(const TestCase &)
ValueArray47(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47)
virtual void OnTestProgramEnd(const UnitTest &)
ValueArray9(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9)
ParamGenerator< T4 >::iterator current4_
const char kInternalRunDeathTestFlag[]
#define GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(CharType, OtherStringType)
const ParamGenerator< T2 >::iterator begin2_
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(5, Tuple)) Field(Tuple &t)
ParamIterator(ParamIteratorInterface< T > *impl)
static void ClearTestCaseResult(TestCase *test_case)
Bits fraction_bits() const
internal::TestEventRepeater * repeater_
virtual const ParamGeneratorInterface< T > * BaseGenerator() const =0
void ComputeCurrentValue()
ParamGenerator< T3 >::iterator current3_
virtual ~CartesianProductGenerator8()
static bool TestDisabled(const TestInfo *test_info)
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(0, Tuple)) Field(Tuple &t)
virtual ParamIteratorInterface< T > * Begin() const
Iterator(const ParamGeneratorInterface< ParamType > *base, const ParamGenerator< T1 > &g1, const typename ParamGenerator< T1 >::iterator ¤t1, const ParamGenerator< T2 > &g2, const typename ParamGenerator< T2 >::iterator ¤t2, const ParamGenerator< T3 > &g3, const typename ParamGenerator< T3 >::iterator ¤t3, const ParamGenerator< T4 > &g4, const typename ParamGenerator< T4 >::iterator ¤t4, const ParamGenerator< T5 > &g5, const typename ParamGenerator< T5 >::iterator ¤t5)
ValueArray4(T1 v1, T2 v2, T3 v3, T4 v4)
AssertionResult EqFailure(const char *expected_expression, const char *actual_expression, const std::string &expected_value, const std::string &actual_value, bool ignoring_case)
virtual bool Equals(const ParamIteratorInterface< T > &other) const
virtual const ParamGeneratorInterface< ParamType > * BaseGenerator() const
const ParamGenerator< T4 >::iterator begin4_
const ParamGenerator< T4 >::iterator end4_
const ParamGenerator< T2 >::iterator end2_
const Bits & bits() const
const ParamGenerator< T7 > g7_
const ParamGenerator< T6 >::iterator end6_
AssertionResult CmpHelperEQ(const char *expected_expression, const char *actual_expression, const T1 &expected, const T2 &actual)
const char * StrError(int errnum)
const T * operator->() const
const ParamGenerator< T6 > g6_
TYPED_TEST(TypedTest, TestA)
ParameterizedTestFactory(ParamType parameter)
TestProperty(const std::string &a_key, const std::string &a_value)
const ParamGenerator< T4 >::iterator begin4_
static void Print(char *str,::std::ostream *os)
ParamGenerator< T9 >::iterator current9_
static bool TestReportable(const TestInfo *test_info)
CartesianProductGenerator8(const ParamGenerator< T1 > &g1, const ParamGenerator< T2 > &g2, const ParamGenerator< T3 > &g3, const ParamGenerator< T4 > &g4, const ParamGenerator< T5 > &g5, const ParamGenerator< T6 > &g6, const ParamGenerator< T7 > &g7, const ParamGenerator< T8 > &g8)
const ParamGenerator< T1 >::iterator end1_
const ParamGenerator< T10 >::iterator end10_
ParamGenerator< T4 >::iterator current4_
virtual void OnTestIterationEnd(const UnitTest &, int)
std::string GetBoolAssertionFailureMessage(const AssertionResult &assertion_result, const char *expression_text, const char *actual_predicate_value, const char *expected_predicate_value)
Iterator(const Iterator &other)
const ParamGenerator< T2 >::iterator begin2_
void RunTearDownTestCase()
virtual const ParamType * Current() const
::std::tr1::tuple< long, int > Tuple2
ParamGenerator & operator=(const ParamGenerator &other)
ParamGenerator< T3 >::iterator current3_
::std::vector< string > Strings
TypeWithSize< sizeof(RawType)>::UInt Bits
ParamGenerator< T3 >::iterator current3_
const ParamGenerator< T5 >::iterator end5_
internal::ParamGenerator< bool > Bool()
ParamGenerator< T8 >::iterator current8_
TimeInMillis elapsed_time_
const_iterator end() const
void PrintTo(const ::std::pair< T1, T2 > &value,::std::ostream *os)
virtual bool Equals(const ParamIteratorInterface< ParamType > &other) const
virtual const ParamGeneratorInterface< ParamType > * BaseGenerator() const
ParamGenerator< T1 >::iterator current1_
static void Print(const wchar_t *str,::std::ostream *os)
bool_constant< false > false_type
ParamGenerator< T1 >::iterator current1_
const T1 const T2 const T3 const T4 const T5 & f5
const ParamGenerator< T7 >::iterator begin7_
ParamGenerator< T2 >::iterator current2_
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(1, Tuple)) Field(Tuple &t)
virtual ParamIteratorInterface< T > * End() const
char(& IsNullLiteralHelper(...))[2]
::std::vector< ParameterizedTestCaseInfoBase * > TestCaseInfoContainer
bool StaticAssertTypeEq()
virtual void OnEnvironmentsSetUpStart(const UnitTest &)
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(6, Tuple)) ConstField(const Tuple &t)
void PrintTupleTo(const T &t,::std::ostream *os)
InstantiationContainer instantiations_
ParamGenerator< T5 >::iterator current5_
bool operator!=(const GTEST_10_TUPLE_(T)&t, const GTEST_10_TUPLE_(U)&u)
AssertionResult DoubleLE(const char *expr1, const char *expr2, double val1, double val2)
void set_should_run(bool should)
virtual ParamIteratorInterface< T > * Clone() const
ParamGenerator< T9 >::iterator current9_
void InitGoogleTest(int *argc, char **argv)
const char * name() const
ParamGenerator< T5 >::iterator current5_
ValueArray40(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40)
Int32 Int32FromGTestEnv(const char *flag, Int32 default_value)
const ParamGenerator< T4 > g4_
ValueArray22(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22)
TimeInMillis elapsed_time() const
Iterator(const ParamGeneratorInterface< T > *base, typename ContainerType::const_iterator iterator)
tuple & operator=(const GTEST_10_TUPLE_(U)&t)
FMT_API int fprintf(std::FILE *f, CStringRef format, ArgList args)
virtual ~ValuesInIteratorRangeGenerator()
const ParamGenerator< T9 > g9_
const ParamGenerator< T1 >::iterator begin1_
ValueArray31(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31)
Iterator(const ParamGeneratorInterface< ParamType > *base, const ParamGenerator< T1 > &g1, const typename ParamGenerator< T1 >::iterator ¤t1, const ParamGenerator< T2 > &g2, const typename ParamGenerator< T2 >::iterator ¤t2, const ParamGenerator< T3 > &g3, const typename ParamGenerator< T3 >::iterator ¤t3)
const ParamGenerator< T2 >::iterator end2_
const ParamGenerator< T4 > g4_
virtual ~CartesianProductGenerator2()
const ParamGenerator< T3 > g3_
ConstCharPtr(const char *str)
const TestResult * result() const
const ParamGenerator< T8 >::iterator begin8_
ParamGenerator< T4 >::iterator current4_
AssertionResult AssertPred1Helper(const char *pred_text, const char *e1, Pred pred, const T1 &v1)
#define GTEST_MUST_USE_RESULT_
AssertionResult IsNotSubstring(const char *needle_expr, const char *haystack_expr, const char *needle, const char *haystack)
::std::tr1::tuple< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 > ParamType
ParameterizedTestCaseRegistry()
ParamGenerator< T2 >::iterator current2_
ParamGenerator< T3 >::iterator current3_
const internal::scoped_ptr< const ::std::string > value_param_
ValueArray37(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37)
void ComputeCurrentValue()
virtual ~CartesianProductGenerator7()
const ParamGenerator< T5 >::iterator begin5_
TestEventListener * default_result_printer() const
const ParamGenerator< T3 > g3_
virtual const ParamType * Current() const
ValueArray23(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23)
virtual ParamIteratorInterface< ParamType > * End() const
AssertionResult CmpHelperSTREQ(const char *expected_expression, const char *actual_expression, const char *expected, const char *actual)
ParamGenerator< T4 >::iterator current4_
Iterator(const ParamGeneratorInterface< ParamType > *base, const ParamGenerator< T1 > &g1, const typename ParamGenerator< T1 >::iterator ¤t1, const ParamGenerator< T2 > &g2, const typename ParamGenerator< T2 >::iterator ¤t2)
const ParamGenerator< T2 > g2_
virtual ParamIteratorInterface * Clone() const =0
Iterator(const ParamGeneratorInterface< ParamType > *base, const ParamGenerator< T1 > &g1, const typename ParamGenerator< T1 >::iterator ¤t1, const ParamGenerator< T2 > &g2, const typename ParamGenerator< T2 >::iterator ¤t2, const ParamGenerator< T3 > &g3, const typename ParamGenerator< T3 >::iterator ¤t3, const ParamGenerator< T4 > &g4, const typename ParamGenerator< T4 >::iterator ¤t4)
const internal::GTestFlagSaver *const gtest_flag_saver_
const ParamGenerator< T2 > g2_
virtual ~CartesianProductGenerator9()
ValueArray45(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45)
Iter ArrayAwareFind(Iter begin, Iter end, const Element &elem)
const ParamGenerator< T9 > g9_
const ParamGenerator< T1 >::iterator end1_
const char * type_param() const
const T & operator*() const
ParamGenerator(ParamGeneratorInterface< T > *impl)
::std::tr1::tuple< T1, T2 > ParamType
virtual ParamIteratorInterface< ParamType > * Begin() const
AssertionResult AssertPred5Helper(const char *pred_text, const char *e1, const char *e2, const char *e3, const char *e4, const char *e5, Pred pred, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5)
static void Print(const T &value,::std::ostream *os)
#define GTEST_DECLARE_string_(name)
ParameterizedTestCaseInfo< TestCase > * GetTestCasePatternHolder(const char *test_case_name, const char *file, int line)
TypeWithSize< 8 >::Int TimeInMillis
FilePath(const std::string &pathname)
virtual bool Equals(const ParamIteratorInterface< ParamType > &other) const
ValueArray7(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7)
const ParamGenerator< T2 >::iterator begin2_
bool nonfatally_failed() const
virtual const ParamGeneratorInterface< ParamType > * BaseGenerator() const
ParamGenerator< T2 >::iterator current2_
virtual const ParamType * Current() const
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(4, Tuple)) Field(Tuple &t)
virtual void OnTestStart(const TestInfo &)
const ParamGenerator< T5 >::iterator begin5_
#define GTEST_CHECK_(condition)
const ParamGenerator< T9 >::iterator end9_
const ParamGenerator< T1 >::iterator end1_
const ParamGenerator< T7 >::iterator begin7_
const char * value() const
const ParamGenerator< T7 >::iterator begin7_
AssertionResult(bool success)
virtual Test * CreateTest()
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(5, Tuple)) ConstField(const Tuple &t)
TestPartResultReporterInterface * original_reporter_
const char * GetEnv(const char *name)
const ParamGenerator< T3 >::iterator end3_
#define GTEST_DECLARE_int32_(name)
const BiggestInt kMaxBiggestInt
static bool Eq(const Tuple1 &t1, const Tuple2 &t2)
ValueArray10(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10)
#define GTEST_ATTRIBUTE_UNUSED_
ValueArray41(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41)
const ParamGenerator< T1 >::iterator begin1_
AssertionResult AssertPred3Helper(const char *pred_text, const char *e1, const char *e2, const char *e3, Pred pred, const T1 &v1, const T2 &v2, const T3 &v3)
CartesianProductHolder4(const Generator1 &g1, const Generator2 &g2, const Generator3 &g3, const Generator4 &g4)
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(2, Tuple)) Field(Tuple &t)
FilePath(const FilePath &rhs)
ParamGenerator< T5 >::iterator current5_
virtual ~CartesianProductGenerator10()
bool ArrayEq(const T(&lhs)[N], const U(&rhs)[N])
ParamGenerator< T7 >::iterator current7_
const ParamType & GetParam() const
ParamGenerator< T7 >::iterator current7_
virtual ParamIteratorInterface< ParamType > * Begin() const
ParamGenerator< T3 >::iterator current3_
internal::ValueArray50< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50 > Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48, T49 v49, T50 v50)
virtual ParamIteratorInterface< ParamType > * Begin() const
virtual const ParamGeneratorInterface< ParamType > * BaseGenerator() const
static bool ShouldRunTest(const TestInfo *test_info)
void ComputeCurrentValue()
ValueArray15(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15)
const ParamGenerator< T1 > g1_
AssertionResult AssertPred4Helper(const char *pred_text, const char *e1, const char *e2, const char *e3, const char *e4, Pred pred, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4)
linked_ptr & operator=(linked_ptr const &ptr)
ParamGenerator< T1 >::iterator current1_
static AssertionResult Compare(const char *expected_expression, const char *actual_expression, const T1 &expected, const T2 &actual)
const ParamGeneratorInterface< T > *const base_
const ParamGeneratorInterface< ParamType > *const base_
::std::tr1::tuple< T1, T2, T3, T4, T5 > ParamType
virtual void OnTestEnd(const TestInfo &)
const ParamGenerator< T2 > g2_
Iterator(const ParamGeneratorInterface< ParamType > *base, const ParamGenerator< T1 > &g1, const typename ParamGenerator< T1 >::iterator ¤t1, const ParamGenerator< T2 > &g2, const typename ParamGenerator< T2 >::iterator ¤t2, const ParamGenerator< T3 > &g3, const typename ParamGenerator< T3 >::iterator ¤t3, const ParamGenerator< T4 > &g4, const typename ParamGenerator< T4 >::iterator ¤t4, const ParamGenerator< T5 > &g5, const typename ParamGenerator< T5 >::iterator ¤t5, const ParamGenerator< T6 > &g6, const typename ParamGenerator< T6 >::iterator ¤t6, const ParamGenerator< T7 > &g7, const typename ParamGenerator< T7 >::iterator ¤t7, const ParamGenerator< T8 > &g8, const typename ParamGenerator< T8 >::iterator ¤t8, const ParamGenerator< T9 > &g9, const typename ParamGenerator< T9 >::iterator ¤t9, const ParamGenerator< T10 > &g10, const typename ParamGenerator< T10 >::iterator ¤t10)
static void TersePrintPrefixToStrings(const Tuple &t, Strings *strings)
NativeArray(const Element *array, size_t count, RelationToSource relation)
const ParamGenerator< T6 >::iterator end6_
tuple(const GTEST_10_TUPLE_(U)&t)
CartesianProductHolder3(const Generator1 &g1, const Generator2 &g2, const Generator3 &g3)
ParamGenerator< T6 >::iterator current6_
static void TearDownTestCase()
virtual ParamIteratorInterface< ParamType > * Clone() const
Iterator(const Iterator &other)
virtual ParamIteratorInterface< ParamType > * End() const
ParamIterator & operator=(const ParamIterator &other)
ParamGenerator< T8 >::iterator current8_
virtual ParamIteratorInterface< T > * Clone() const
void ComputeCurrentValue()
const ParamGenerator< T3 > g3_
ValueArray18(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18)
CartesianProductGenerator3(const ParamGenerator< T1 > &g1, const ParamGenerator< T2 > &g2, const ParamGenerator< T3 > &g3)
const ParamGenerator< T2 >::iterator begin2_
const ParamGenerator< T6 > g6_
CartesianProductGenerator2(const ParamGenerator< T1 > &g1, const ParamGenerator< T2 > &g2)
const ParamGenerator< T5 > g5_
virtual const ParamType * Current() const
virtual const ParamType * Current() const
const ParamGenerator< T5 >::iterator begin5_
#define GTEST_LOCK_EXCLUDED_(locks)
AssertionResult FloatLE(const char *expr1, const char *expr2, float val1, float val2)
const ParamGeneratorInterface< ParamType > *const base_
ParamIterator & operator++()
const std::string test_case_name_
const ParamGenerator< T1 > g1_
virtual const ParamType * Current() const
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(7, Tuple)) Field(Tuple &t)
TimeInMillis elapsed_time() const