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__)
326 #define GTEST_OS_CYGWIN 0
327 #define GTEST_OS_SYMBIAN 0
328 #define GTEST_OS_WINDOWS 0
329 #define GTEST_OS_WINDOWS_MOBILE 0
330 #define GTEST_OS_WINDOWS_MINGW 0
331 #define GTEST_OS_WINDOWS_DESKTOP 0
332 #define GTEST_OS_MAC 0
333 #define GTEST_OS_LINUX 0
334 #define GTEST_OS_LINUX_ANDROID 0
335 #define GTEST_OS_ZOS 0
336 #define GTEST_OS_SOLARIS 0
337 #define GTEST_OS_AIX 0
338 #define GTEST_OS_HPUX 0
339 #define GTEST_OS_NACL 0
340 #define GTEST_OS_OPENBSD 0
341 #define GTEST_OS_QNX 0
342 #define GTEST_OS_IOS 0
343 #define GTEST_OS_IOS_SIMULATOR 0
346 # undef GTEST_OS_CYGWIN
347 # define GTEST_OS_CYGWIN 1
348 #elif defined __SYMBIAN32__
349 # undef GTEST_OS_SYMBIAN
350 # define GTEST_OS_SYMBIAN 1
352 # undef GTEST_OS_WINDOWS
353 # define GTEST_OS_WINDOWS 1
355 # undef GTEST_OS_WINDOWS_MOBILE
356 # define GTEST_OS_WINDOWS_MOBILE 1
357 # elif defined(__MINGW__) || defined(__MINGW32__)
358 # undef GTEST_OS_WINDOWS_MINGW
359 # define GTEST_OS_WINDOWS_MINGW 1
361 # undef GTEST_OS_WINDOWS_DESKTOP
362 # define GTEST_OS_WINDOWS_DESKTOP 1
363 # endif // _WIN32_WCE
364 #elif defined __APPLE__
366 # define GTEST_OS_MAC 1
367 # if TARGET_OS_IPHONE
369 # define GTEST_OS_IOS 1
370 # if TARGET_IPHONE_SIMULATOR
371 # undef GTEST_OS_IOS_SIMULATOR
372 # define GTEST_OS_IOS_SIMULATOR 1
375 #elif defined __linux__
376 # undef GTEST_OS_LINUX
377 # define GTEST_OS_LINUX 1
378 # if defined __ANDROID__
379 # undef GTEST_OS_LINUX_ANDROID
380 # define GTEST_OS_LINUX_ANDROID 1
382 #elif defined __MVS__
384 # define GTEST_OS_ZOS 1
385 #elif defined(__sun) && defined(__SVR4)
386 # undef GTEST_OS_SOLARIS
387 # define GTEST_OS_SOLARIS 1
390 # define GTEST_OS_AIX 1
391 #elif defined(__hpux)
392 # undef GTEST_OS_HPUX
393 # define GTEST_OS_HPUX 1
394 #elif defined __native_client__
395 # undef GTEST_OS_NACL
396 # define GTEST_OS_NACL 1
397 #elif defined __OpenBSD__
398 # undef GTEST_OS_OPENBSD
399 # define GTEST_OS_OPENBSD 1
400 #elif defined __QNX__
402 # define GTEST_OS_QNX 1
405 #ifndef GTEST_LANG_CXX11
410 # if defined __GXX_EXPERIMENTAL_CXX0X__ || __cplusplus >= 201103L
412 # define GTEST_LANG_CXX11 1
414 # define GTEST_LANG_CXX11 0
421 #if !GTEST_OS_WINDOWS
426 # include <strings.h>
427 #elif !GTEST_OS_WINDOWS_MOBILE
432 #if GTEST_OS_LINUX_ANDROID
434 # include <android/api-level.h>
438 #ifndef GTEST_HAS_POSIX_RE
439 # if GTEST_OS_LINUX_ANDROID
441 # define GTEST_HAS_POSIX_RE (__ANDROID_API__ >= 8)
443 # define GTEST_HAS_POSIX_RE (!GTEST_OS_WINDOWS)
447 #if GTEST_HAS_POSIX_RE
455 # define GTEST_USES_POSIX_RE 1
456 # define GTEST_USES_SIMPLE_RE 0
458 #elif GTEST_OS_WINDOWS
462 # define GTEST_USES_SIMPLE_RE 1
463 # define GTEST_USES_POSIX_RE 0
469 # define GTEST_USES_SIMPLE_RE 1
470 # define GTEST_USES_POSIX_RE 0
472 #endif // GTEST_HAS_POSIX_RE
474 #ifndef GTEST_HAS_EXCEPTIONS
477 # if defined(_MSC_VER) || defined(__BORLANDC__)
481 # ifndef _HAS_EXCEPTIONS
482 # define _HAS_EXCEPTIONS 1
483 # endif // _HAS_EXCEPTIONS
484 # define GTEST_HAS_EXCEPTIONS _HAS_EXCEPTIONS
485 # elif defined(__GNUC__) && __EXCEPTIONS
487 # define GTEST_HAS_EXCEPTIONS 1
488 # elif defined(__SUNPRO_CC)
492 # define GTEST_HAS_EXCEPTIONS 1
493 # elif defined(__IBMCPP__) && __EXCEPTIONS
495 # define GTEST_HAS_EXCEPTIONS 1
496 # elif defined(__HP_aCC)
499 # define GTEST_HAS_EXCEPTIONS 1
503 # define GTEST_HAS_EXCEPTIONS 0
504 # endif // defined(_MSC_VER) || defined(__BORLANDC__)
505 #endif // GTEST_HAS_EXCEPTIONS
507 #if !defined(GTEST_HAS_STD_STRING)
510 # define GTEST_HAS_STD_STRING 1
511 #elif !GTEST_HAS_STD_STRING
513 # error "Google Test cannot be used where ::std::string isn't available."
514 #endif // !defined(GTEST_HAS_STD_STRING)
516 #ifndef GTEST_HAS_GLOBAL_STRING
520 # define GTEST_HAS_GLOBAL_STRING 0
522 #endif // GTEST_HAS_GLOBAL_STRING
524 #ifndef GTEST_HAS_STD_WSTRING
533 # define GTEST_HAS_STD_WSTRING \
534 (!(GTEST_OS_LINUX_ANDROID || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS))
536 #endif // GTEST_HAS_STD_WSTRING
538 #ifndef GTEST_HAS_GLOBAL_WSTRING
541 # define GTEST_HAS_GLOBAL_WSTRING \
542 (GTEST_HAS_STD_WSTRING && GTEST_HAS_GLOBAL_STRING)
543 #endif // GTEST_HAS_GLOBAL_WSTRING
546 #ifndef GTEST_HAS_RTTI
552 # ifdef _CPPRTTI // MSVC defines this macro iff RTTI is enabled.
553 # define GTEST_HAS_RTTI 1
555 # define GTEST_HAS_RTTI 0
559 # elif defined(__GNUC__) && (GTEST_GCC_VER_ >= 40302)
566 # if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR) && \
567 !defined(__EXCEPTIONS)
568 # define GTEST_HAS_RTTI 0
570 # define GTEST_HAS_RTTI 1
571 # endif // GTEST_OS_LINUX_ANDROID && _STLPORT_MAJOR && !__EXCEPTIONS
573 # define GTEST_HAS_RTTI 0
574 # endif // __GXX_RTTI
579 # elif defined(__clang__)
581 # define GTEST_HAS_RTTI __has_feature(cxx_rtti)
585 # elif defined(__IBMCPP__) && (__IBMCPP__ >= 900)
588 # define GTEST_HAS_RTTI 1
590 # define GTEST_HAS_RTTI 0
596 # define GTEST_HAS_RTTI 1
600 #endif // GTEST_HAS_RTTI
609 #ifndef GTEST_HAS_PTHREAD
615 # define GTEST_HAS_PTHREAD (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX \
617 #endif // GTEST_HAS_PTHREAD
619 #if GTEST_HAS_PTHREAD
622 # include <pthread.h>
631 #ifndef GTEST_HAS_TR1_TUPLE
632 # if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR)
634 # define GTEST_HAS_TR1_TUPLE 0
637 # define GTEST_HAS_TR1_TUPLE 1
639 #endif // GTEST_HAS_TR1_TUPLE
643 #ifndef GTEST_USE_OWN_TR1_TUPLE
656 # if (defined(__GNUC__) && !defined(__CUDACC__) && (GTEST_GCC_VER_ >= 40000) \
657 && !GTEST_OS_QNX && !defined(_LIBCPP_VERSION)) && !defined(_STLPORT_MAJOR) \
658 || (defined(_MSC_VER) && _MSC_VER >= 1600)
659 # define GTEST_ENV_HAS_TR1_TUPLE_ 1
661 # define GTEST_ENV_HAS_TR1_TUPLE_ 0
667 # if GTEST_LANG_CXX11 && (!defined(__GLIBCXX__) || __GLIBCXX__ > 20110325)
668 # define GTEST_ENV_HAS_STD_TUPLE_ 1
670 # define GTEST_ENV_HAS_STD_TUPLE_ 0
673 # if GTEST_ENV_HAS_TR1_TUPLE_ || GTEST_ENV_HAS_STD_TUPLE_
674 # define GTEST_USE_OWN_TR1_TUPLE 0
676 # define GTEST_USE_OWN_TR1_TUPLE 1
677 # undef GTEST_HAS_TR1_TUPLE
678 # define GTEST_HAS_TR1_TUPLE 1
681 #endif // GTEST_USE_OWN_TR1_TUPLE
686 #if GTEST_HAS_TR1_TUPLE
688 # if GTEST_USE_OWN_TR1_TUPLE
726 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
727 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
736 #if defined(__SYMBIAN32__) || (defined(__SUNPRO_CC) && __SUNPRO_CC < 0x590)
737 # define GTEST_DECLARE_TUPLE_AS_FRIEND_ public:
739 # define GTEST_DECLARE_TUPLE_AS_FRIEND_ \
740 template <GTEST_10_TYPENAMES_(U)> friend class tuple; \
745 #define GTEST_0_TUPLE_(T) tuple<>
746 #define GTEST_1_TUPLE_(T) tuple<T##0, void, void, void, void, void, void, \
748 #define GTEST_2_TUPLE_(T) tuple<T##0, T##1, void, void, void, void, void, \
750 #define GTEST_3_TUPLE_(T) tuple<T##0, T##1, T##2, void, void, void, void, \
752 #define GTEST_4_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, void, void, void, \
754 #define GTEST_5_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, void, void, \
756 #define GTEST_6_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, void, \
758 #define GTEST_7_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \
760 #define GTEST_8_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \
762 #define GTEST_9_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \
764 #define GTEST_10_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \
768 #define GTEST_0_TYPENAMES_(T)
769 #define GTEST_1_TYPENAMES_(T) typename T##0
770 #define GTEST_2_TYPENAMES_(T) typename T##0, typename T##1
771 #define GTEST_3_TYPENAMES_(T) typename T##0, typename T##1, typename T##2
772 #define GTEST_4_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
774 #define GTEST_5_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
775 typename T##3, typename T##4
776 #define GTEST_6_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
777 typename T##3, typename T##4, typename T##5
778 #define GTEST_7_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
779 typename T##3, typename T##4, typename T##5, typename T##6
780 #define GTEST_8_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
781 typename T##3, typename T##4, typename T##5, typename T##6, typename T##7
782 #define GTEST_9_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
783 typename T##3, typename T##4, typename T##5, typename T##6, \
784 typename T##7, typename T##8
785 #define GTEST_10_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
786 typename T##3, typename T##4, typename T##5, typename T##6, \
787 typename T##7, typename T##8, typename T##9
795 template <
typename T0 =
void,
typename T1 =
void,
typename T2 =
void,
796 typename T3 =
void,
typename T4 =
void,
typename T5 =
void,
797 typename T6 =
void,
typename T7 =
void,
typename T8 =
void,
803 namespace gtest_internal {
806 template <
typename T>
808 template <
typename T>
812 #define GTEST_BY_REF_(T) typename ::std::tr1::gtest_internal::ByRef<T>::type
816 template <
typename T>
818 template <
typename T>
822 #define GTEST_ADD_REF_(T) typename ::std::tr1::gtest_internal::AddRef<T>::type
825 template <
int k>
class Get;
829 template <
bool kIndexVal
id,
int kIndex,
class Tuple>
832 template <GTEST_10_TYPENAMES_(T)>
837 template <GTEST_10_TYPENAMES_(T)>
842 template <GTEST_10_TYPENAMES_(T)>
847 template <GTEST_10_TYPENAMES_(T)>
852 template <GTEST_10_TYPENAMES_(T)>
857 template <GTEST_10_TYPENAMES_(T)>
862 template <GTEST_10_TYPENAMES_(T)>
867 template <GTEST_10_TYPENAMES_(T)>
872 template <GTEST_10_TYPENAMES_(T)>
877 template <GTEST_10_TYPENAMES_(T)>
892 template <GTEST_1_TYPENAMES_(T)>
893 class GTEST_1_TUPLE_(T) {
901 tuple(
const tuple&
t) : f0_(t.
f0_) {}
903 template <GTEST_1_TYPENAMES_(U)>
906 tuple& operator=(
const tuple& t) {
return CopyFrom(t); }
908 template <GTEST_1_TYPENAMES_(U)>
913 GTEST_DECLARE_TUPLE_AS_FRIEND_
915 template <GTEST_1_TYPENAMES_(U)>
924 template <GTEST_2_TYPENAMES_(T)>
925 class GTEST_2_TUPLE_(T) {
929 tuple() : f0_(), f1_() {}
934 tuple(
const tuple&
t) : f0_(t.
f0_), f1_(t.
f1_) {}
936 template <GTEST_2_TYPENAMES_(U)>
938 template <
typename U0,
typename U1>
939 tuple(const ::std::pair<U0, U1>&
p) : f0_(p.first), f1_(p.second) {}
941 tuple& operator=(
const tuple& t) {
return CopyFrom(t); }
943 template <GTEST_2_TYPENAMES_(U)>
947 template <
typename U0,
typename U1>
948 tuple& operator=(const ::std::pair<U0, U1>& p) {
954 GTEST_DECLARE_TUPLE_AS_FRIEND_
956 template <GTEST_2_TYPENAMES_(U)>
967 template <GTEST_3_TYPENAMES_(T)>
968 class GTEST_3_TUPLE_(T) {
972 tuple() : f0_(), f1_(), f2_() {}
977 tuple(
const tuple&
t) : f0_(t.
f0_), f1_(t.
f1_), f2_(t.
f2_) {}
979 template <GTEST_3_TYPENAMES_(U)>
980 tuple(
const GTEST_3_TUPLE_(
U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_) {}
982 tuple& operator=(
const tuple& t) {
return CopyFrom(t); }
984 template <GTEST_3_TYPENAMES_(U)>
989 GTEST_DECLARE_TUPLE_AS_FRIEND_
991 template <GTEST_3_TYPENAMES_(U)>
1004 template <GTEST_4_TYPENAMES_(T)>
1005 class GTEST_4_TUPLE_(T) {
1009 tuple() : f0_(), f1_(), f2_(), f3_() {}
1015 tuple(
const tuple&
t) : f0_(t.
f0_), f1_(t.
f1_), f2_(t.
f2_), f3_(t.
f3_) {}
1017 template <GTEST_4_TYPENAMES_(U)>
1018 tuple(
const GTEST_4_TUPLE_(
U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
1021 tuple& operator=(
const tuple& t) {
return CopyFrom(t); }
1023 template <GTEST_4_TYPENAMES_(U)>
1028 GTEST_DECLARE_TUPLE_AS_FRIEND_
1030 template <GTEST_4_TYPENAMES_(U)>
1045 template <GTEST_5_TYPENAMES_(T)>
1046 class GTEST_5_TUPLE_(T) {
1050 tuple() : f0_(), f1_(), f2_(), f3_(), f4_() {}
1054 GTEST_BY_REF_(T4)
f4) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4) {}
1056 tuple(
const tuple&
t) : f0_(t.
f0_), f1_(t.
f1_), f2_(t.
f2_), f3_(t.
f3_),
1059 template <GTEST_5_TYPENAMES_(U)>
1060 tuple(
const GTEST_5_TUPLE_(
U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
1061 f3_(t.f3_), f4_(t.f4_) {}
1063 tuple& operator=(
const tuple& t) {
return CopyFrom(t); }
1065 template <GTEST_5_TYPENAMES_(U)>
1070 GTEST_DECLARE_TUPLE_AS_FRIEND_
1072 template <GTEST_5_TYPENAMES_(U)>
1089 template <GTEST_6_TYPENAMES_(T)>
1090 class GTEST_6_TUPLE_(T) {
1094 tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_() {}
1101 tuple(
const tuple&
t) : f0_(t.
f0_), f1_(t.
f1_), f2_(t.
f2_), f3_(t.
f3_),
1102 f4_(t.
f4_), f5_(t.
f5_) {}
1104 template <GTEST_6_TYPENAMES_(U)>
1105 tuple(
const GTEST_6_TUPLE_(
U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
1106 f3_(t.f3_), f4_(t.f4_), f5_(t.f5_) {}
1108 tuple& operator=(
const tuple& t) {
return CopyFrom(t); }
1110 template <GTEST_6_TYPENAMES_(U)>
1115 GTEST_DECLARE_TUPLE_AS_FRIEND_
1117 template <GTEST_6_TYPENAMES_(U)>
1136 template <GTEST_7_TYPENAMES_(T)>
1137 class GTEST_7_TUPLE_(T) {
1141 tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_() {}
1146 f3_(f3), f4_(f4), f5_(f5), f6_(f6) {}
1148 tuple(
const tuple&
t) : f0_(t.
f0_), f1_(t.
f1_), f2_(t.
f2_), f3_(t.
f3_),
1151 template <GTEST_7_TYPENAMES_(U)>
1152 tuple(
const GTEST_7_TUPLE_(
U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
1153 f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_) {}
1155 tuple& operator=(
const tuple& t) {
return CopyFrom(t); }
1157 template <GTEST_7_TYPENAMES_(U)>
1162 GTEST_DECLARE_TUPLE_AS_FRIEND_
1164 template <GTEST_7_TYPENAMES_(U)>
1185 template <GTEST_8_TYPENAMES_(T)>
1186 class GTEST_8_TUPLE_(T) {
1190 tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_() {}
1196 f5_(f5), f6_(f6), f7_(f7) {}
1198 tuple(
const tuple&
t) : f0_(t.
f0_), f1_(t.
f1_), f2_(t.
f2_), f3_(t.
f3_),
1201 template <GTEST_8_TYPENAMES_(U)>
1202 tuple(
const GTEST_8_TUPLE_(
U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
1203 f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_) {}
1205 tuple& operator=(
const tuple& t) {
return CopyFrom(t); }
1207 template <GTEST_8_TYPENAMES_(U)>
1212 GTEST_DECLARE_TUPLE_AS_FRIEND_
1214 template <GTEST_8_TYPENAMES_(U)>
1237 template <GTEST_9_TYPENAMES_(T)>
1238 class GTEST_9_TUPLE_(T) {
1242 tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_(), f8_() {}
1248 f5_(f5), f6_(f6), f7_(f7), f8_(f8) {}
1250 tuple(
const tuple&
t) : f0_(t.
f0_), f1_(t.
f1_), f2_(t.
f2_), f3_(t.
f3_),
1253 template <GTEST_9_TYPENAMES_(U)>
1254 tuple(
const GTEST_9_TUPLE_(
U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
1255 f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_) {}
1257 tuple& operator=(
const tuple& t) {
return CopyFrom(t); }
1259 template <GTEST_9_TYPENAMES_(U)>
1264 GTEST_DECLARE_TUPLE_AS_FRIEND_
1266 template <GTEST_9_TYPENAMES_(U)>
1291 template <GTEST_10_TYPENAMES_(T)>
1296 tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_(), f8_(),
1303 f3_(f3), f4_(f4), f5_(f5), f6_(f6), f7_(f7), f8_(f8), f9_(f9) {}
1305 tuple(
const tuple&
t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_),
1306 f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_), f9_(t.f9_) {}
1308 template <GTEST_10_TYPENAMES_(U)>
1310 f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_),
1315 template <GTEST_10_TYPENAMES_(U)>
1320 GTEST_DECLARE_TUPLE_AS_FRIEND_
1322 template <GTEST_10_TYPENAMES_(U)>
1357 template <GTEST_1_TYPENAMES_(T)>
1362 template <GTEST_2_TYPENAMES_(T)>
1367 template <GTEST_3_TYPENAMES_(T)>
1372 template <GTEST_4_TYPENAMES_(T)>
1378 template <GTEST_5_TYPENAMES_(T)>
1380 const T3& f3, const T4& f4) {
1384 template <GTEST_6_TYPENAMES_(T)>
1386 const T3& f3, const T4& f4, const T5& f5) {
1390 template <GTEST_7_TYPENAMES_(T)>
1392 const T3& f3, const T4& f4, const T5& f5, const T6& f6) {
1396 template <GTEST_8_TYPENAMES_(T)>
1398 const T3& f3, const T4& f4, const T5& f5, const T6& f6, const T7& f7) {
1402 template <GTEST_9_TYPENAMES_(T)>
1404 const T3& f3, const T4& f4, const T5& f5, const T6& f6, const T7& f7,
1409 template <GTEST_10_TYPENAMES_(T)>
1411 const T3& f3, const T4& f4, const T5& f5, const T6& f6, const T7& f7,
1412 const T8& f8, const T9&
f9) {
1420 template <GTEST_0_TYPENAMES_(T)>
1425 template <GTEST_1_TYPENAMES_(T)>
1430 template <GTEST_2_TYPENAMES_(T)>
1435 template <GTEST_3_TYPENAMES_(T)>
1440 template <GTEST_4_TYPENAMES_(T)>
1445 template <GTEST_5_TYPENAMES_(T)>
1450 template <GTEST_6_TYPENAMES_(T)>
1455 template <GTEST_7_TYPENAMES_(T)>
1460 template <GTEST_8_TYPENAMES_(T)>
1465 template <GTEST_9_TYPENAMES_(T)>
1470 template <GTEST_10_TYPENAMES_(T)>
1475 template <
int k,
class Tuple>
1481 #define GTEST_TUPLE_ELEMENT_(k, Tuple) typename tuple_element<k, Tuple >::type
1485 namespace gtest_internal {
1490 template <
class Tuple>
1492 Field(Tuple&
t) {
return t.f0_; }
1494 template <
class Tuple>
1496 ConstField(const Tuple&
t) {
return t.f0_; }
1502 template <
class Tuple>
1504 Field(Tuple&
t) {
return t.f1_; }
1506 template <
class Tuple>
1508 ConstField(const Tuple&
t) {
return t.f1_; }
1514 template <
class Tuple>
1516 Field(Tuple&
t) {
return t.f2_; }
1518 template <
class Tuple>
1520 ConstField(const Tuple&
t) {
return t.f2_; }
1526 template <
class Tuple>
1528 Field(Tuple&
t) {
return t.f3_; }
1530 template <
class Tuple>
1532 ConstField(const Tuple&
t) {
return t.f3_; }
1538 template <
class Tuple>
1540 Field(Tuple&
t) {
return t.f4_; }
1542 template <
class Tuple>
1544 ConstField(const Tuple&
t) {
return t.f4_; }
1550 template <
class Tuple>
1552 Field(Tuple&
t) {
return t.f5_; }
1554 template <
class Tuple>
1556 ConstField(const Tuple&
t) {
return t.f5_; }
1562 template <
class Tuple>
1564 Field(Tuple&
t) {
return t.f6_; }
1566 template <
class Tuple>
1568 ConstField(const Tuple&
t) {
return t.f6_; }
1574 template <
class Tuple>
1576 Field(Tuple&
t) {
return t.f7_; }
1578 template <
class Tuple>
1580 ConstField(const Tuple&
t) {
return t.f7_; }
1586 template <
class Tuple>
1588 Field(Tuple&
t) {
return t.f8_; }
1590 template <
class Tuple>
1592 ConstField(const Tuple&
t) {
return t.f8_; }
1598 template <
class Tuple>
1600 Field(Tuple&
t) {
return t.f9_; }
1602 template <
class Tuple>
1604 ConstField(const Tuple&
t) {
return t.f9_; }
1609 template <
int k, GTEST_10_TYPENAMES_(T)>
1615 template <
int k, GTEST_10_TYPENAMES_(T)>
1625 namespace gtest_internal {
1631 template <
int kSize1,
int kSize2>
1636 template <
class Tuple1,
class Tuple2>
1637 static bool Eq(
const Tuple1& ,
const Tuple2& ) {
1644 template <
class Tuple1,
class Tuple2>
1645 static bool Eq(
const Tuple1& t1,
const Tuple2& t2) {
1647 ::std::tr1::get<
k - 1>(t1) == ::std::tr1::get<k - 1>(t2);
1653 template <GTEST_10_TYPENAMES_(T), GTEST_10_TYPENAMES_(U)>
1661 template <GTEST_10_TYPENAMES_(T), GTEST_10_TYPENAMES_(U)>
1671 #undef GTEST_0_TUPLE_
1672 #undef GTEST_1_TUPLE_
1673 #undef GTEST_2_TUPLE_
1674 #undef GTEST_3_TUPLE_
1675 #undef GTEST_4_TUPLE_
1676 #undef GTEST_5_TUPLE_
1677 #undef GTEST_6_TUPLE_
1678 #undef GTEST_7_TUPLE_
1679 #undef GTEST_8_TUPLE_
1680 #undef GTEST_9_TUPLE_
1681 #undef GTEST_10_TUPLE_
1683 #undef GTEST_0_TYPENAMES_
1684 #undef GTEST_1_TYPENAMES_
1685 #undef GTEST_2_TYPENAMES_
1686 #undef GTEST_3_TYPENAMES_
1687 #undef GTEST_4_TYPENAMES_
1688 #undef GTEST_5_TYPENAMES_
1689 #undef GTEST_6_TYPENAMES_
1690 #undef GTEST_7_TYPENAMES_
1691 #undef GTEST_8_TYPENAMES_
1692 #undef GTEST_9_TYPENAMES_
1693 #undef GTEST_10_TYPENAMES_
1695 #undef GTEST_DECLARE_TUPLE_AS_FRIEND_
1696 #undef GTEST_BY_REF_
1697 #undef GTEST_ADD_REF_
1698 #undef GTEST_TUPLE_ELEMENT_
1700 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
1701 # elif GTEST_ENV_HAS_STD_TUPLE_
1712 using ::std::tuple_element;
1713 using ::std::tuple_size;
1717 # elif GTEST_OS_SYMBIAN
1724 # ifdef BOOST_HAS_TR1_TUPLE
1725 # undef BOOST_HAS_TR1_TUPLE
1726 # endif // BOOST_HAS_TR1_TUPLE
1730 # define BOOST_TR1_DETAIL_CONFIG_HPP_INCLUDED
1733 # elif defined(__GNUC__) && (GTEST_GCC_VER_ >= 40000)
1737 # if !GTEST_HAS_RTTI && GTEST_GCC_VER_ < 40302
1743 # define _TR1_FUNCTIONAL 1
1744 # include <tr1/tuple>
1745 # undef _TR1_FUNCTIONAL // Allows the user to #include
1748 # include <tr1/tuple>
1749 # endif // !GTEST_HAS_RTTI && GTEST_GCC_VER_ < 40302
1755 # endif // GTEST_USE_OWN_TR1_TUPLE
1757 #endif // GTEST_HAS_TR1_TUPLE
1763 #ifndef GTEST_HAS_CLONE
1766 # if GTEST_OS_LINUX && !defined(__ia64__)
1767 # if GTEST_OS_LINUX_ANDROID
1769 # if (defined(__arm__) || defined(__mips__)) && __ANDROID_API__ >= 9
1770 # define GTEST_HAS_CLONE 1
1772 # define GTEST_HAS_CLONE 0
1775 # define GTEST_HAS_CLONE 1
1778 # define GTEST_HAS_CLONE 0
1779 # endif // GTEST_OS_LINUX && !defined(__ia64__)
1781 #endif // GTEST_HAS_CLONE
1785 #ifndef GTEST_HAS_STREAM_REDIRECTION
1788 # if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_SYMBIAN
1789 # define GTEST_HAS_STREAM_REDIRECTION 0
1791 # define GTEST_HAS_STREAM_REDIRECTION 1
1792 # endif // !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_SYMBIAN
1793 #endif // GTEST_HAS_STREAM_REDIRECTION
1799 #if (GTEST_OS_LINUX || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \
1800 (GTEST_OS_MAC && !GTEST_OS_IOS) || GTEST_OS_IOS_SIMULATOR || \
1801 (GTEST_OS_WINDOWS_DESKTOP && _MSC_VER >= 1400) || \
1802 GTEST_OS_WINDOWS_MINGW || GTEST_OS_AIX || GTEST_OS_HPUX || \
1803 GTEST_OS_OPENBSD || GTEST_OS_QNX)
1804 # define GTEST_HAS_DEATH_TEST 1
1807 # define GTEST_HAS_DEATH_TEST 0
1813 #define GTEST_HAS_PARAM_TEST 1
1819 #if defined(__GNUC__) || (_MSC_VER >= 1400) || defined(__SUNPRO_CC) || \
1820 defined(__IBMCPP__) || defined(__HP_aCC)
1821 # define GTEST_HAS_TYPED_TEST 1
1822 # define GTEST_HAS_TYPED_TEST_P 1
1829 #if GTEST_HAS_PARAM_TEST && GTEST_HAS_TR1_TUPLE && !defined(__SUNPRO_CC)
1830 # define GTEST_HAS_COMBINE 1
1834 #define GTEST_WIDE_STRING_USES_UTF16_ \
1835 (GTEST_OS_WINDOWS || GTEST_OS_CYGWIN || GTEST_OS_SYMBIAN || GTEST_OS_AIX)
1839 # define GTEST_CAN_STREAM_RESULTS_ 1
1841 # define GTEST_CAN_STREAM_RESULTS_ 0
1854 #ifdef __INTEL_COMPILER
1855 # define GTEST_AMBIGUOUS_ELSE_BLOCKER_
1857 # define GTEST_AMBIGUOUS_ELSE_BLOCKER_ switch (0) case 0: default: // NOLINT
1871 #if defined(__GNUC__) && !defined(COMPILER_ICC)
1872 # define GTEST_ATTRIBUTE_UNUSED_ __attribute__ ((unused))
1874 # define GTEST_ATTRIBUTE_UNUSED_
1879 #define GTEST_DISALLOW_ASSIGN_(type)\
1880 void operator=(type const &)
1884 #define GTEST_DISALLOW_COPY_AND_ASSIGN_(type)\
1885 type(type const &);\
1886 GTEST_DISALLOW_ASSIGN_(type)
1893 #if defined(__GNUC__) && (GTEST_GCC_VER_ >= 30400) && !defined(COMPILER_ICC)
1894 # define GTEST_MUST_USE_RESULT_ __attribute__ ((warn_unused_result))
1896 # define GTEST_MUST_USE_RESULT_
1897 #endif // __GNUC__ && (GTEST_GCC_VER_ >= 30400) && !COMPILER_ICC
1902 #ifndef GTEST_HAS_SEH
1905 # if defined(_MSC_VER) || defined(__BORLANDC__)
1907 # define GTEST_HAS_SEH 1
1910 # define GTEST_HAS_SEH 0
1913 #endif // GTEST_HAS_SEH
1917 # if GTEST_LINKED_AS_SHARED_LIBRARY
1918 # define GTEST_API_ __declspec(dllimport)
1919 # elif GTEST_CREATE_SHARED_LIBRARY
1920 # define GTEST_API_ __declspec(dllexport)
1931 # define GTEST_NO_INLINE_ __attribute__((noinline))
1933 # define GTEST_NO_INLINE_
1937 #if defined(__GLIBCXX__) || defined(_LIBCPP_VERSION)
1938 # define GTEST_HAS_CXXABI_H_ 1
1940 # define GTEST_HAS_CXXABI_H_ 0
1947 namespace internal {
1973 #define GTEST_COMPILE_ASSERT_(expr, msg) \
1974 typedef ::testing::internal::CompileAssert<(static_cast<bool>(expr))> \
1975 msg[static_cast<bool>(expr) ? 1 : -1] GTEST_ATTRIBUTE_UNUSED_
2021 template <
typename T1,
typename T2>
2024 template <
typename T>
2027 #if GTEST_HAS_GLOBAL_STRING
2030 typedef ::std::string
string;
2031 #endif // GTEST_HAS_GLOBAL_STRING
2033 #if GTEST_HAS_GLOBAL_WSTRING
2035 #elif GTEST_HAS_STD_WSTRING
2037 #endif // GTEST_HAS_GLOBAL_WSTRING
2047 template <
typename T>
2057 T*
get()
const {
return ptr_; }
2060 T*
const ptr = ptr_;
2091 RE(const ::std::string& regex) { Init(regex.c_str()); }
2093 #if GTEST_HAS_GLOBAL_STRING
2095 RE(const ::string& regex) { Init(regex.c_str()); }
2097 #endif // GTEST_HAS_GLOBAL_STRING
2099 RE(
const char* regex) { Init(regex); }
2113 return FullMatch(str.c_str(), re);
2116 return PartialMatch(str.c_str(), re);
2119 #if GTEST_HAS_GLOBAL_STRING
2122 return FullMatch(str.c_str(), re);
2125 return PartialMatch(str.c_str(), re);
2128 #endif // GTEST_HAS_GLOBAL_STRING
2130 static bool FullMatch(
const char*
str,
const RE& re);
2131 static bool PartialMatch(
const char*
str,
const RE& re);
2134 void Init(
const char* regex);
2139 const char* pattern_;
2142 #if GTEST_USES_POSIX_RE
2144 regex_t full_regex_;
2145 regex_t partial_regex_;
2147 #else // GTEST_USES_SIMPLE_RE
2149 const char* full_pattern_;
2153 GTEST_DISALLOW_ASSIGN_(
RE);
2194 GTEST_DISALLOW_COPY_AND_ASSIGN_(
GTestLog);
2197 #define GTEST_LOG_(severity) \
2198 ::testing::internal::GTestLog(::testing::internal::GTEST_##severity, \
2199 __FILE__, __LINE__).GetStream()
2218 #define GTEST_CHECK_(condition) \
2219 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
2220 if (::testing::internal::IsTrue(condition)) \
2223 GTEST_LOG_(FATAL) << "Condition " #condition " failed. "
2230 #define GTEST_CHECK_POSIX_SUCCESS_(posix_call) \
2231 if (const int gtest_error = (posix_call)) \
2232 GTEST_LOG_(FATAL) << #posix_call << "failed with error " \
2255 template<
typename To>
2279 template<
typename To,
typename From>
2287 ::testing::internal::ImplicitCast_<From*>(to);
2292 GTEST_CHECK_(f == NULL || dynamic_cast<To>(f) != NULL);
2294 return static_cast<To
>(f);
2302 template <
class Derived,
class Base>
2305 GTEST_CHECK_(
typeid(*base) ==
typeid(Derived));
2306 return dynamic_cast<Derived*
>(base);
2308 return static_cast<Derived*
>(base);
2312 #if GTEST_HAS_STREAM_REDIRECTION
2325 #endif // GTEST_HAS_STREAM_REDIRECTION
2328 #if GTEST_HAS_DEATH_TEST
2335 extern ::std::vector<testing::internal::string>
g_argvs;
2337 #endif // GTEST_HAS_DEATH_TEST
2341 #if GTEST_HAS_PTHREAD
2347 const timespec time = {
2351 nanosleep(&time, NULL);
2363 GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, NULL));
2366 pthread_mutex_destroy(&mutex_);
2372 pthread_mutex_lock(&mutex_);
2374 pthread_mutex_unlock(&mutex_);
2381 pthread_mutex_lock(&mutex_);
2382 const bool notified = notified_;
2383 pthread_mutex_unlock(&mutex_);
2391 pthread_mutex_t mutex_;
2405 virtual void Run() = 0;
2431 template <
typename T>
2440 thread_can_start_(thread_can_start),
2445 GTEST_CHECK_POSIX_SUCCESS_(
2452 GTEST_CHECK_POSIX_SUCCESS_(pthread_join(thread_, 0));
2458 if (thread_can_start_ != NULL)
2459 thread_can_start_->WaitForNotification();
2464 const UserThreadFunc func_;
2498 GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_lock(&mutex_));
2499 owner_ = pthread_self();
2510 GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_unlock(&mutex_));
2516 GTEST_CHECK_(has_owner_ && pthread_equal(owner_, pthread_self()))
2517 <<
"The current thread is not holding the mutex @" <<
this;
2538 # define GTEST_DECLARE_STATIC_MUTEX_(mutex) \
2539 extern ::testing::internal::MutexBase mutex
2547 # define GTEST_DEFINE_STATIC_MUTEX_(mutex) \
2548 ::testing::internal::MutexBase mutex = { PTHREAD_MUTEX_INITIALIZER, false }
2555 GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, NULL));
2559 GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_destroy(&mutex_));
2563 GTEST_DISALLOW_COPY_AND_ASSIGN_(
Mutex);
2572 : mutex_(mutex) { mutex_->Lock(); }
2630 template <
typename T>
2644 GTEST_CHECK_POSIX_SUCCESS_(pthread_key_delete(key_));
2648 const T*
pointer()
const {
return GetOrCreateValue(); }
2656 explicit ValueHolder(
const T&
value) : value_(value) {}
2662 GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolder);
2665 static pthread_key_t CreateKey() {
2669 GTEST_CHECK_POSIX_SUCCESS_(
2674 T* GetOrCreateValue()
const {
2675 ThreadLocalValueHolderBase*
const holder =
2676 static_cast<ThreadLocalValueHolderBase*
>(pthread_getspecific(key_));
2677 if (holder != NULL) {
2678 return CheckedDowncastToActualType<ValueHolder>(holder)->
pointer();
2681 ValueHolder*
const new_holder =
new ValueHolder(default_);
2682 ThreadLocalValueHolderBase*
const holder_base = new_holder;
2683 GTEST_CHECK_POSIX_SUCCESS_(pthread_setspecific(key_, holder_base));
2684 return new_holder->pointer();
2688 const pthread_key_t key_;
2691 GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocal);
2694 # define GTEST_IS_THREADSAFE 1
2696 #else // GTEST_HAS_PTHREAD
2711 # define GTEST_DECLARE_STATIC_MUTEX_(mutex) \
2712 extern ::testing::internal::Mutex mutex
2714 # define GTEST_DEFINE_STATIC_MUTEX_(mutex) ::testing::internal::Mutex mutex
2716 class GTestMutexLock {
2723 template <
typename T>
2730 const T&
get()
const {
return value_; }
2738 # define GTEST_IS_THREADSAFE 0
2740 #endif // GTEST_HAS_PTHREAD
2752 #if defined(__SYMBIAN32__) || defined(__IBMCPP__) || defined(__SUNPRO_CC)
2755 # define GTEST_ELLIPSIS_NEEDS_POD_ 1
2757 # define GTEST_CAN_COMPARE_NULL 1
2764 #if defined(__SYMBIAN32__) || defined(__IBMCPP__)
2765 # define GTEST_NEEDS_IS_POINTER_ 1
2768 template <
bool bool_value>
2778 template <
typename T>
2781 template <
typename T>
2784 template <
typename Iterator>
2789 template <
typename T>
2794 template <
typename T>
2799 #if GTEST_OS_WINDOWS
2800 # define GTEST_PATH_SEP_ "\\"
2801 # define GTEST_HAS_ALT_PATH_SEP_ 1
2805 # define GTEST_PATH_SEP_ "/"
2806 # define GTEST_HAS_ALT_PATH_SEP_ 0
2808 #endif // GTEST_OS_WINDOWS
2818 return isalpha(static_cast<unsigned char>(ch)) != 0;
2821 return isalnum(static_cast<unsigned char>(ch)) != 0;
2824 return isdigit(static_cast<unsigned char>(ch)) != 0;
2827 return islower(static_cast<unsigned char>(ch)) != 0;
2830 return isspace(static_cast<unsigned char>(ch)) != 0;
2833 return isupper(static_cast<unsigned char>(ch)) != 0;
2836 return isxdigit(static_cast<unsigned char>(ch)) != 0;
2839 const unsigned char low_byte =
static_cast<unsigned char>(ch);
2840 return ch == low_byte && isxdigit(low_byte) != 0;
2844 return static_cast<char>(tolower(static_cast<unsigned char>(ch)));
2847 return static_cast<char>(toupper(static_cast<unsigned char>(ch)));
2860 #if GTEST_OS_WINDOWS
2864 # ifdef __BORLANDC__
2865 inline int IsATTY(
int fd) {
return isatty(fd); }
2867 return stricmp(s1, s2);
2869 inline char*
StrDup(
const char*
src) {
return strdup(src); }
2870 # else // !__BORLANDC__
2871 # if GTEST_OS_WINDOWS_MOBILE
2872 inline int IsATTY(
int ) {
return 0; }
2874 inline int IsATTY(
int fd) {
return _isatty(fd); }
2875 # endif // GTEST_OS_WINDOWS_MOBILE
2876 inline int StrCaseCmp(
const char* s1,
const char* s2) {
2877 return _stricmp(s1, s2);
2879 inline char*
StrDup(
const char*
src) {
return _strdup(src); }
2880 # endif // __BORLANDC__
2882 # if GTEST_OS_WINDOWS_MOBILE
2883 inline int FileNo(FILE* file) {
return reinterpret_cast<int>(_fileno(file)); }
2887 inline int FileNo(FILE* file) {
return _fileno(file); }
2889 inline int RmDir(
const char* dir) {
return _rmdir(dir); }
2891 return (_S_IFDIR & st.st_mode) != 0;
2893 # endif // GTEST_OS_WINDOWS_MOBILE
2899 inline int FileNo(FILE* file) {
return fileno(file); }
2900 inline int IsATTY(
int fd) {
return isatty(fd); }
2901 inline int Stat(
const char* path,
StatStruct* buf) {
return stat(path, buf); }
2902 inline int StrCaseCmp(
const char* s1,
const char* s2) {
2903 return strcasecmp(s1, s2);
2905 inline char*
StrDup(
const char*
src) {
return strdup(src); }
2906 inline int RmDir(
const char* dir) {
return rmdir(dir); }
2907 inline bool IsDir(
const StatStruct& st) {
return S_ISDIR(st.st_mode); }
2909 #endif // GTEST_OS_WINDOWS
2915 # pragma warning(push)
2916 # pragma warning(disable:4996)
2920 return strncpy(dest, src, n);
2927 #if !GTEST_OS_WINDOWS_MOBILE
2928 inline int ChDir(
const char* dir) {
return chdir(dir); }
2931 return fopen(path, mode);
2933 #if !GTEST_OS_WINDOWS_MOBILE
2934 inline FILE *
FReopen(
const char* path,
const char*
mode, FILE* stream) {
2935 return freopen(path, mode, stream);
2937 inline FILE*
FDOpen(
int fd,
const char*
mode) {
return fdopen(fd, mode); }
2939 inline int FClose(FILE* fp) {
return fclose(fp); }
2940 #if !GTEST_OS_WINDOWS_MOBILE
2942 return static_cast<int>(
read(fd, buf, count));
2945 return static_cast<int>(
write(fd, buf, count));
2948 inline const char*
StrError(
int errnum) {
return strerror(errnum); }
2951 #if GTEST_OS_WINDOWS_MOBILE
2954 #elif defined(__BORLANDC__) || defined(__SunOS_5_8) || defined(__SunOS_5_9)
2957 const char*
const env = getenv(name);
2958 return (env != NULL && env[0] !=
'\0') ? env : NULL;
2960 return getenv(name);
2965 # pragma warning(pop) // Restores the warning state.
2968 #if GTEST_OS_WINDOWS_MOBILE
2975 #endif // GTEST_OS_WINDOWS_MOBILE
2984 #if defined(_MSC_VER) && _MSC_VER >= 1400 && !GTEST_OS_WINDOWS_MOBILE
2986 # define GTEST_SNPRINTF_(buffer, size, format, ...) \
2987 _snprintf_s(buffer, size, size, format, __VA_ARGS__)
2988 #elif defined(_MSC_VER)
2991 # define GTEST_SNPRINTF_ _snprintf
2993 # define GTEST_SNPRINTF_ snprintf
3024 template <
size_t size>
3048 #if GTEST_OS_WINDOWS
3054 #endif // GTEST_OS_WINDOWS
3067 #define GTEST_FLAG(name) FLAGS_gtest_##name
3070 #define GTEST_DECLARE_bool_(name) GTEST_API_ extern bool GTEST_FLAG(name)
3071 #define GTEST_DECLARE_int32_(name) \
3072 GTEST_API_ extern ::testing::internal::Int32 GTEST_FLAG(name)
3073 #define GTEST_DECLARE_string_(name) \
3074 GTEST_API_ extern ::std::string GTEST_FLAG(name)
3077 #define GTEST_DEFINE_bool_(name, default_val, doc) \
3078 GTEST_API_ bool GTEST_FLAG(name) = (default_val)
3079 #define GTEST_DEFINE_int32_(name, default_val, doc) \
3080 GTEST_API_ ::testing::internal::Int32 GTEST_FLAG(name) = (default_val)
3081 #define GTEST_DEFINE_string_(name, default_val, doc) \
3082 GTEST_API_ ::std::string GTEST_FLAG(name) = (default_val)
3085 #define GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)
3086 #define GTEST_LOCK_EXCLUDED_(locks)
3105 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_
3108 # include <stdlib.h>
3109 # include <sys/types.h>
3110 # include <sys/wait.h>
3111 # include <unistd.h>
3112 #endif // GTEST_OS_LINUX
3114 #if GTEST_HAS_EXCEPTIONS
3115 # include <stdexcept>
3170 #ifndef GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_
3171 #define GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_
3178 void operator<<(
const testing::internal::Secret&,
int);
3212 typedef std::ostream& (*BasicNarrowIoManip)(std::ostream&);
3224 explicit Message(
const char*
str) : ss_(new ::std::stringstream) {
3228 #if GTEST_OS_SYMBIAN
3230 template <
typename T>
3237 template <
typename T>
3253 using ::operator <<;
3271 template <
typename T>
3273 if (pointer == NULL) {
3280 #endif // GTEST_OS_SYMBIAN
3295 return *
this << (b ?
"true" :
"false");
3303 #if GTEST_HAS_STD_WSTRING
3307 #endif // GTEST_HAS_STD_WSTRING
3309 #if GTEST_HAS_GLOBAL_WSTRING
3313 #endif // GTEST_HAS_GLOBAL_WSTRING
3319 std::string GetString()
const;
3323 #if GTEST_OS_SYMBIAN
3328 template <
typename T>
3330 if (pointer == NULL) {
3336 template <
typename T>
3341 using ::operator <<;
3344 #endif // GTEST_OS_SYMBIAN
3347 const internal::scoped_ptr< ::std::stringstream> ss_;
3351 void operator=(
const Message&);
3359 namespace internal {
3365 template <
typename T>
3367 return (
Message() << streamable).GetString();
3373 #endif // GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_
3414 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
3415 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
3427 namespace internal {
3441 static const char* CloneCString(
const char* c_str);
3443 #if GTEST_OS_WINDOWS_MOBILE
3456 static LPCWSTR AnsiToUtf16(
const char* c_str);
3466 static const char* Utf16ToAnsi(LPCWSTR utf16_str);
3474 static bool CStringEquals(
const char* lhs,
const char* rhs);
3480 static std::string ShowWideCString(
const wchar_t* wide_c_str);
3488 static bool WideCStringEquals(
const wchar_t* lhs,
const wchar_t* rhs);
3496 static bool CaseInsensitiveCStringEquals(
const char* lhs,
3511 static bool CaseInsensitiveWideCStringEquals(
const wchar_t* lhs,
3512 const wchar_t* rhs);
3516 static bool EndsWithCaseInsensitive(
3517 const std::string&
str,
const std::string& suffix);
3520 static std::string FormatIntWidth2(
int value);
3523 static std::string FormatHexInt(
int value);
3526 static std::string FormatByte(
unsigned char value);
3539 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
3579 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
3580 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
3584 namespace internal {
3602 explicit FilePath(
const std::string& pathname) : pathname_(pathname) {
3612 pathname_ = rhs.pathname_;
3615 const std::string&
string()
const {
return pathname_; }
3616 const char*
c_str()
const {
return pathname_.c_str(); }
3628 const char* extension);
3646 const char* extension);
3649 bool IsEmpty()
const {
return pathname_.empty(); }
3654 FilePath RemoveTrailingPathSeparator()
const;
3662 FilePath RemoveDirectoryName()
const;
3676 FilePath RemoveExtension(
const char* extension)
const;
3682 bool CreateDirectoriesRecursively()
const;
3688 bool CreateFolder()
const;
3692 bool FileOrDirectoryExists()
const;
3696 bool DirectoryExists()
const;
3701 bool IsDirectory()
const;
3705 bool IsRootDirectory()
const;
3708 bool IsAbsolutePath()
const;
3736 const char* FindLastPathSeparator()
const;
3738 std::string pathname_;
3744 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
3788 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
3789 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
3794 # if GTEST_HAS_CXXABI_H_
3795 # include <cxxabi.h>
3796 # elif defined(__HP_aCC)
3797 # include <acxx_demangle.h>
3798 # endif // GTEST_HASH_CXXABI_H_
3801 namespace internal {
3806 template <
typename T>
3810 const char*
const name =
typeid(
T).
name();
3811 # if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC)
3815 # if GTEST_HAS_CXXABI_H_
3816 using abi::__cxa_demangle;
3817 # endif // GTEST_HAS_CXXABI_H_
3818 char*
const readable_name = __cxa_demangle(name, 0, 0, &status);
3819 const std::string name_str(status == 0 ? readable_name : name);
3820 free(readable_name);
3824 # endif // GTEST_HAS_CXXABI_H_ || __HP_aCC
3830 # endif // GTEST_HAS_RTTI
3833 #if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
3839 template <
typename T1,
typename T2>
3842 template <
typename T>
3865 template <
typename T1>
3870 template <
typename T1,
typename T2>
3876 template <
typename T1,
typename T2,
typename T3>
3882 template <
typename T1,
typename T2,
typename T3,
typename T4>
3888 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
3894 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
3901 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
3902 typename T6,
typename T7>
3908 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
3909 typename T6,
typename T7,
typename T8>
3915 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
3916 typename T6,
typename T7,
typename T8,
typename T9>
3922 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
3923 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
3929 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
3930 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
3937 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
3938 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
3939 typename T11,
typename T12>
3942 typedef Types11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tail;
3945 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
3946 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
3947 typename T11,
typename T12,
typename T13>
3950 typedef Types12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail;
3953 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
3954 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
3955 typename T11,
typename T12,
typename T13,
typename T14>
3958 typedef Types13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Tail;
3961 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
3962 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
3963 typename T11,
typename T12,
typename T13,
typename T14,
typename T15>
3966 typedef Types14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3970 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
3971 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
3972 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
3976 typedef Types15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
3980 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
3981 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
3982 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
3983 typename T16,
typename T17>
3986 typedef Types16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
3990 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
3991 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
3992 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
3993 typename T16,
typename T17,
typename T18>
3996 typedef Types17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4000 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4001 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4002 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4003 typename T16,
typename T17,
typename T18,
typename T19>
4006 typedef Types18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4010 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4011 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4012 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4013 typename T16,
typename T17,
typename T18,
typename T19,
typename T20>
4016 typedef Types19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4020 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4021 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4022 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4023 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4027 typedef Types20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4028 T16, T17, T18, T19, T20, T21>
Tail;
4031 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4032 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4033 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4034 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4035 typename T21,
typename T22>
4038 typedef Types21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4039 T16, T17, T18, T19, T20, T21, T22>
Tail;
4042 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4043 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4044 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4045 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4046 typename T21,
typename T22,
typename T23>
4049 typedef Types22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4050 T16, T17, T18, T19, T20, T21, T22, T23>
Tail;
4053 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4054 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4055 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4056 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4057 typename T21,
typename T22,
typename T23,
typename T24>
4060 typedef Types23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4061 T16, T17, T18, T19, T20, T21, T22, T23, T24>
Tail;
4064 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4065 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4066 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4067 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4068 typename T21,
typename T22,
typename T23,
typename T24,
typename T25>
4071 typedef Types24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4072 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>
Tail;
4075 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4076 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4077 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4078 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4079 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4083 typedef Types25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4084 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26>
Tail;
4087 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4088 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4089 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4090 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4091 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4092 typename T26,
typename T27>
4095 typedef Types26<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4096 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27>
Tail;
4099 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4100 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4101 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4102 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4103 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4104 typename T26,
typename T27,
typename T28>
4107 typedef Types27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4108 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28>
Tail;
4111 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4112 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4113 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4114 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4115 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4116 typename T26,
typename T27,
typename T28,
typename T29>
4119 typedef Types28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4120 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
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,
typename T15,
4127 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4128 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4129 typename T26,
typename T27,
typename T28,
typename T29,
typename T30>
4132 typedef Types29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4133 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4137 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4138 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4139 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4140 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4141 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4142 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4146 typedef Types30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4147 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4151 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4152 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4153 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4154 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4155 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4156 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4157 typename T31,
typename T32>
4160 typedef Types31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4161 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
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,
typename T19,
typename T20,
4169 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4170 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4171 typename T31,
typename T32,
typename T33>
4174 typedef Types32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4175 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4179 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4180 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4181 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4182 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4183 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4184 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4185 typename T31,
typename T32,
typename T33,
typename T34>
4188 typedef Types33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4189 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4193 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4194 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4195 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4196 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4197 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4198 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4199 typename T31,
typename T32,
typename T33,
typename T34,
typename T35>
4202 typedef Types34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4203 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4204 T30, T31, T32, T33, T34, T35>
Tail;
4207 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4208 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4209 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4210 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4211 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4212 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4213 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4217 typedef Types35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4218 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4219 T30, T31, T32, T33, T34, T35, T36>
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,
typename T24,
typename T25,
4227 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4228 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4229 typename T36,
typename T37>
4232 typedef Types36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4233 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4234 T30, T31, T32, T33, T34, T35, T36, T37>
Tail;
4237 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4238 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4239 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4240 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4241 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4242 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4243 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4244 typename T36,
typename T37,
typename T38>
4247 typedef Types37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4248 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4249 T30, T31, T32, T33, T34, T35, T36, T37, T38>
Tail;
4252 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4253 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4254 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4255 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4256 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4257 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4258 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4259 typename T36,
typename T37,
typename T38,
typename T39>
4262 typedef Types38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4263 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4264 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>
Tail;
4267 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4268 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4269 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4270 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4271 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4272 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4273 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4274 typename T36,
typename T37,
typename T38,
typename T39,
typename T40>
4277 typedef Types39<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4278 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4279 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40>
Tail;
4282 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4283 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4284 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4285 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4286 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4287 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4288 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4289 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4293 typedef Types40<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, T29,
4295 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41>
Tail;
4298 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4299 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4300 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4301 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4302 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4303 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4304 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4305 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4306 typename T41,
typename T42>
4309 typedef Types41<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4310 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4311 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42>
Tail;
4314 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4315 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4316 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4317 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4318 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4319 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4320 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4321 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4322 typename T41,
typename T42,
typename T43>
4325 typedef Types42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4326 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4327 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
4331 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4332 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4333 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4334 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4335 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4336 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4337 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4338 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4339 typename T41,
typename T42,
typename T43,
typename T44>
4342 typedef Types43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4343 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4344 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
4348 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4349 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4350 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4351 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4352 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4353 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4354 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4355 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4356 typename T41,
typename T42,
typename T43,
typename T44,
typename T45>
4359 typedef Types44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4360 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4361 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
4365 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4366 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4367 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4368 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4369 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4370 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4371 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4372 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4373 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
4377 typedef Types45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4378 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4379 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
4383 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4384 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4385 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4386 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4387 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4388 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4389 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4390 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4391 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
4392 typename T46,
typename T47>
4395 typedef Types46<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, T36, T37, T38, T39, T40, T41, T42, T43,
4401 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4402 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4403 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4404 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4405 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4406 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4407 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4408 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4409 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
4410 typename T46,
typename T47,
typename T48>
4413 typedef Types47<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4414 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4415 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
4419 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4420 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4421 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4422 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4423 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4424 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4425 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4426 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4427 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
4428 typename T46,
typename T47,
typename T48,
typename T49>
4431 typedef Types48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4432 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4433 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
4434 T44, T45, T46, T47, T48, T49>
Tail;
4437 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4438 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4439 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4440 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4441 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4442 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
4443 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
4444 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
4445 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
4446 typename T46,
typename T47,
typename T48,
typename T49,
typename T50>
4449 typedef Types49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4450 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4451 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
4452 T44, T45, T46, T47, T48, T49, T50>
Tail;
4497 typedef internal::Types50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4498 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
4499 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
4500 T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>
type;
4519 template <
typename T1>
4535 template <
typename T1,
typename T2>
4551 template <
typename T1,
typename T2,
typename T3>
4566 template <
typename T1,
typename T2,
typename T3,
typename T4>
4581 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
4596 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4612 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4613 typename T6,
typename T7>
4628 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4629 typename T6,
typename T7,
typename T8>
4630 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, internal::None,
internal::None,
4643 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4644 typename T6,
typename T7,
typename T8,
typename T9>
4645 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, internal::None,
4658 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4659 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
4660 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, internal::None,
4673 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4674 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4676 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, internal::None,
4687 typedef internal::Types11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> type;
4689 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4690 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4691 typename T11,
typename T12>
4692 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, internal::None,
4703 typedef internal::Types12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
4706 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4707 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4708 typename T11,
typename T12,
typename T13>
4709 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
4720 typedef internal::Types13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4723 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4724 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4725 typename T11,
typename T12,
typename T13,
typename T14>
4726 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
4736 typedef internal::Types14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4739 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4740 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4741 typename T11,
typename T12,
typename T13,
typename T14,
typename T15>
4742 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4752 typedef internal::Types15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4755 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4756 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4757 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4759 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4769 typedef internal::Types16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4772 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4773 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4774 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4775 typename T16,
typename T17>
4776 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4786 typedef internal::Types17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4789 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4790 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4791 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4792 typename T16,
typename T17,
typename T18>
4793 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4803 typedef internal::Types18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4804 T13, T14, T15, T16, T17, T18>
type;
4806 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4807 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4808 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4809 typename T16,
typename T17,
typename T18,
typename T19>
4810 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4819 typedef internal::Types19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4820 T13, T14, T15, T16, T17, T18, T19>
type;
4822 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4823 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4824 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4825 typename T16,
typename T17,
typename T18,
typename T19,
typename T20>
4826 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4835 typedef internal::Types20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4836 T13, T14, T15, T16, T17, T18, T19, T20>
type;
4838 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4839 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4840 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4841 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4843 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4852 typedef internal::Types21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4853 T13, T14, T15, T16, T17, T18, T19, T20, T21>
type;
4855 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4856 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4857 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4858 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4859 typename T21,
typename T22>
4860 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4861 T16, T17, T18, T19, T20, T21, T22, internal::None,
internal::None,
4869 typedef internal::Types22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4870 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>
type;
4872 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4873 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4874 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4875 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4876 typename T21,
typename T22,
typename T23>
4877 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4878 T16, T17, T18, T19, T20, T21, T22, T23, internal::None,
internal::None,
4886 typedef internal::Types23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4887 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>
type;
4889 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4890 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4891 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4892 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4893 typename T21,
typename T22,
typename T23,
typename T24>
4894 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4895 T16, T17, T18, T19, T20, T21, T22, T23, T24, internal::None,
4903 typedef internal::Types24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4904 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>
type;
4906 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4907 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4908 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4909 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4910 typename T21,
typename T22,
typename T23,
typename T24,
typename T25>
4911 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4912 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, internal::None,
4919 typedef internal::Types25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4920 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>
type;
4922 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4923 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4924 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4925 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4926 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4928 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4929 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, internal::None,
4936 typedef internal::Types26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4937 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
4940 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4941 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4942 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4943 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4944 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4945 typename T26,
typename T27>
4946 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4947 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, internal::None,
4954 typedef internal::Types27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4955 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
4958 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4959 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4960 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4961 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4962 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4963 typename T26,
typename T27,
typename T28>
4964 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4965 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
4972 typedef internal::Types28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4973 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
4976 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4977 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4978 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4979 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4980 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4981 typename T26,
typename T27,
typename T28,
typename T29>
4982 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
4983 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
4990 typedef internal::Types29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
4991 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
4994 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
4995 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
4996 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
4997 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
4998 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
4999 typename T26,
typename T27,
typename T28,
typename T29,
typename T30>
5000 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5001 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5007 typedef internal::Types30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5008 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5011 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5012 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5013 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5014 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5015 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5016 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5018 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5019 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5025 typedef internal::Types31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5026 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5029 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5030 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5031 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5032 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5033 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5034 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5035 typename T31,
typename T32>
5036 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5037 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5043 typedef internal::Types32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5044 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5045 T27, T28, T29, T30, T31, T32>
type;
5047 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5048 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5049 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5050 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5051 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5052 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5053 typename T31,
typename T32,
typename T33>
5054 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5055 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5061 typedef internal::Types33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5062 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5063 T27, T28, T29, T30, T31, T32, T33>
type;
5065 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5066 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5067 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5068 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5069 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5070 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5071 typename T31,
typename T32,
typename T33,
typename T34>
5072 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5073 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5079 typedef internal::Types34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5080 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5081 T27, T28, T29, T30, T31, T32, T33, T34>
type;
5083 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5084 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5085 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5086 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5087 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5088 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5089 typename T31,
typename T32,
typename T33,
typename T34,
typename T35>
5090 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5091 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5096 typedef internal::Types35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5097 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5098 T27, T28, T29, T30, T31, T32, T33, T34, T35>
type;
5100 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5101 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5102 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5103 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5104 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5105 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5106 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5108 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5109 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5114 typedef internal::Types36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5115 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5116 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36>
type;
5118 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5119 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5120 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5121 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5122 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5123 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5124 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5125 typename T36,
typename T37>
5126 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5127 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5128 T31, T32, T33, T34, T35, T36, T37, internal::None,
internal::None,
5132 typedef internal::Types37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5133 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5134 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37>
type;
5136 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5137 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5138 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5139 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5140 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5141 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5142 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5143 typename T36,
typename T37,
typename T38>
5144 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5145 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5146 T31, T32, T33, T34, T35, T36, T37, T38, internal::None,
internal::None,
5150 typedef internal::Types38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5151 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5152 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>
type;
5154 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5155 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5156 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5157 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5158 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5159 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5160 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5161 typename T36,
typename T37,
typename T38,
typename T39>
5162 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5163 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5164 T31, T32, T33, T34, T35, T36, T37, T38, T39, internal::None,
5168 typedef internal::Types39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5169 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5170 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>
type;
5172 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5173 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5174 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5175 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5176 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5177 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5178 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5179 typename T36,
typename T37,
typename T38,
typename T39,
typename T40>
5180 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5181 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5182 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, internal::None,
5186 typedef internal::Types40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5187 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5188 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
5191 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5192 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5193 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5194 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5195 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5196 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5197 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5198 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5200 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5201 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5202 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, internal::None,
5205 typedef internal::Types41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5206 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5207 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5210 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5211 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5212 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5213 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5214 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5215 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5216 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5217 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5218 typename T41,
typename T42>
5219 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5220 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5221 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, internal::None,
5224 typedef internal::Types42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5225 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5226 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5229 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5230 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5231 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5232 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5233 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5234 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5235 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5236 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5237 typename T41,
typename T42,
typename T43>
5238 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5239 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5240 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
5243 typedef internal::Types43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5244 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5245 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5248 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5249 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5250 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5251 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5252 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5253 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5254 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5255 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5256 typename T41,
typename T42,
typename T43,
typename T44>
5257 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5258 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5259 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
5262 typedef internal::Types44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5263 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5264 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5267 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5268 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5269 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5270 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5271 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5272 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5273 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5274 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5275 typename T41,
typename T42,
typename T43,
typename T44,
typename T45>
5276 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
5277 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
5278 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
5281 typedef internal::Types45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5282 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5283 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5286 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5287 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5288 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5289 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5290 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5291 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5292 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5293 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5294 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
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, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
5300 typedef internal::Types46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5301 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5302 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5303 T41, T42, T43, T44, T45, T46>
type;
5305 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5306 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5307 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5308 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5309 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5310 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5311 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5312 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5313 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
5314 typename T46,
typename T47>
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, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
5319 typedef internal::Types47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5320 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5321 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5322 T41, T42, T43, T44, T45, T46, T47>
type;
5324 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5325 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5326 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5327 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5328 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5329 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5330 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5331 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5332 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
5333 typename T46,
typename T47,
typename T48>
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, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
5338 typedef internal::Types48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5339 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5340 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5341 T41, T42, T43, T44, T45, T46, T47, T48>
type;
5343 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
5344 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
5345 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
5346 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
5347 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
5348 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
5349 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
5350 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
5351 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
5352 typename T46,
typename T47,
typename T48,
typename T49>
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, T37, T38, T39, T40, T41, T42, T43, T44, T45,
5356 T46, T47, T48, T49, internal::None> {
5357 typedef internal::Types49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
5358 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
5359 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
5360 T41, T42, T43, T44, T45, T46, T47, T48, T49>
type;
5363 namespace internal {
5365 # define GTEST_TEMPLATE_ template <typename T> class
5375 template <GTEST_TEMPLATE_ Tmpl>
5377 template <
typename T>
5383 # define GTEST_BIND_(TmplSel, T) \
5384 TmplSel::template Bind<T>::type
5390 template <
typename T>
5405 template <GTEST_TEMPLATE_ T1>
5410 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2>
5416 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3>
5422 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5429 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5430 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5>
5436 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5437 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6>
5443 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5444 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5451 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5452 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5453 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8>
5459 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5460 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5461 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9>
5467 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5468 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5469 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5470 GTEST_TEMPLATE_ T10>
5476 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5477 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5478 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5479 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11>
5485 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5486 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5487 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5488 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12>
5491 typedef Templates11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tail;
5494 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5495 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5496 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5497 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5498 GTEST_TEMPLATE_ T13>
5501 typedef Templates12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail;
5504 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5505 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5506 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5507 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5508 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14>
5511 typedef Templates13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
5515 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5516 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5517 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5518 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5519 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15>
5522 typedef Templates14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5526 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5527 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5528 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5529 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5530 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5531 GTEST_TEMPLATE_ T16>
5534 typedef Templates15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5538 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5539 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5540 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5541 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5542 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5543 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17>
5546 typedef Templates16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5550 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5551 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5552 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5553 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5554 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5555 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18>
5558 typedef Templates17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5562 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5563 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5564 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5565 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5566 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5567 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5568 GTEST_TEMPLATE_ T19>
5571 typedef Templates18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5575 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5576 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5577 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5578 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5579 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5580 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5581 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20>
5584 typedef Templates19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5585 T15, T16, T17, T18, T19, T20>
Tail;
5588 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5589 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5590 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5591 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5592 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5593 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5594 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21>
5597 typedef Templates20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5598 T15, T16, T17, T18, T19, T20, T21>
Tail;
5601 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5602 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5603 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5604 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5605 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5606 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5607 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5608 GTEST_TEMPLATE_ T22>
5611 typedef Templates21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5612 T15, T16, T17, T18, T19, T20, T21, T22>
Tail;
5615 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5616 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5617 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5618 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5619 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5620 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5621 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5622 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23>
5625 typedef Templates22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5626 T15, T16, T17, T18, T19, T20, T21, T22, T23>
Tail;
5629 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5630 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5631 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5632 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5633 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5634 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5635 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5636 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24>
5639 typedef Templates23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5640 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>
Tail;
5643 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5644 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5645 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5646 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5647 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5648 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5649 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5650 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5651 GTEST_TEMPLATE_ T25>
5654 typedef Templates24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5655 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>
Tail;
5658 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5659 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5660 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5661 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5662 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5663 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5664 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5665 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5666 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26>
5669 typedef Templates25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5670 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26>
Tail;
5673 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5674 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5675 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5676 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5677 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5678 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5679 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5680 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5681 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27>
5684 typedef Templates26<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5685 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27>
Tail;
5688 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5689 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5690 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5691 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5692 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5693 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5694 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5695 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5696 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
5697 GTEST_TEMPLATE_ T28>
5700 typedef Templates27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5701 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
5705 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5706 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5707 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5708 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5709 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5710 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5711 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5712 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5713 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
5714 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29>
5717 typedef Templates28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5718 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
5722 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5723 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5724 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5725 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5726 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5727 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5728 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5729 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5730 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
5731 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30>
5734 typedef Templates29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5735 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
5739 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5740 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5741 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5742 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5743 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5744 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5745 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5746 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5747 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
5748 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
5749 GTEST_TEMPLATE_ T31>
5752 typedef Templates30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5753 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
5757 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5758 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5759 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5760 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5761 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5762 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5763 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5764 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5765 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
5766 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
5767 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32>
5770 typedef Templates31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5771 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
5775 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5776 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5777 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5778 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5779 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5780 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5781 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5782 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5783 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
5784 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
5785 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33>
5788 typedef Templates32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5789 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
5793 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5794 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5795 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5796 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5797 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5798 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5799 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5800 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5801 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
5802 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
5803 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
5804 GTEST_TEMPLATE_ T34>
5807 typedef Templates33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5808 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
5809 T29, T30, T31, T32, T33, T34>
Tail;
5812 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5813 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5814 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5815 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5816 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5817 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5818 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5819 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5820 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
5821 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
5822 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
5823 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35>
5826 typedef Templates34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5827 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
5828 T29, T30, T31, T32, T33, T34, T35>
Tail;
5831 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5832 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5833 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5834 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5835 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5836 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5837 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5838 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5839 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
5840 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
5841 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
5842 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36>
5845 typedef Templates35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5846 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
5847 T29, T30, T31, T32, T33, T34, T35, T36>
Tail;
5850 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5851 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5852 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5853 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5854 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5855 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5856 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5857 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5858 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
5859 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
5860 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
5861 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
5862 GTEST_TEMPLATE_ T37>
5865 typedef Templates36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5866 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
5867 T29, T30, T31, T32, T33, T34, T35, T36, T37>
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,
5877 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5878 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
5879 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
5880 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
5881 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
5882 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38>
5885 typedef Templates37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5886 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
5887 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>
Tail;
5890 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5891 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5892 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5893 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5894 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5895 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5896 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5897 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5898 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
5899 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
5900 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
5901 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
5902 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39>
5905 typedef Templates38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5906 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
5907 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>
Tail;
5910 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5911 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5912 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5913 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5914 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5915 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5916 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5917 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5918 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
5919 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
5920 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
5921 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
5922 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
5923 GTEST_TEMPLATE_ T40>
5926 typedef Templates39<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5927 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
5928 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40>
Tail;
5931 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5932 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5933 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5934 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5935 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5936 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5937 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5938 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5939 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
5940 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
5941 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
5942 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
5943 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
5944 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41>
5947 typedef Templates40<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5948 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
5949 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41>
Tail;
5952 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5953 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5954 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5955 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5956 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5957 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5958 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5959 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5960 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
5961 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
5962 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
5963 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
5964 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
5965 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42>
5968 typedef Templates41<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5969 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
5970 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
5974 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5975 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5976 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
5977 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
5978 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
5979 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
5980 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
5981 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
5982 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
5983 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
5984 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
5985 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
5986 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
5987 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
5988 GTEST_TEMPLATE_ T43>
5991 typedef Templates42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
5992 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
5993 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
5997 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5998 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
5999 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6000 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6001 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6002 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6003 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6004 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6005 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6006 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6007 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6008 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6009 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6010 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6011 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44>
6014 typedef Templates43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6015 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6016 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
6020 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6021 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6022 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6023 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6024 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6025 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6026 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6027 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6028 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6029 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6030 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6031 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6032 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6033 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6034 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45>
6037 typedef Templates44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6038 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6039 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
6043 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6044 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6045 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6046 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6047 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6048 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6049 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6050 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6051 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6052 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6053 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6054 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6055 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6056 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6057 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
6058 GTEST_TEMPLATE_ T46>
6061 typedef Templates45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6062 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6063 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
6067 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6068 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6069 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6070 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6071 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6072 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6073 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6074 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6075 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6076 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6077 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6078 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6079 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6080 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6081 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
6082 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47>
6085 typedef Templates46<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6086 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6087 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
6091 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6092 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6093 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6094 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6095 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6096 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6097 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6098 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6099 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6100 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6101 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6102 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6103 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6104 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6105 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
6106 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48>
6109 typedef Templates47<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6110 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6111 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
6112 T43, T44, T45, T46, T47, T48>
Tail;
6115 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6116 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6117 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6118 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6119 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6120 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6121 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6122 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6123 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6124 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6125 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6126 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6127 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6128 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6129 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
6130 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
6131 GTEST_TEMPLATE_ T49>
6134 typedef Templates48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6135 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6136 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
6137 T43, T44, T45, T46, T47, T48, T49>
Tail;
6140 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6141 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6142 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6143 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6144 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6145 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6146 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6147 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6148 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6149 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6150 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6151 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6152 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6153 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6154 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
6155 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
6156 GTEST_TEMPLATE_ T49, GTEST_TEMPLATE_ T50>
6159 typedef Templates49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6160 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6161 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
6162 T43, T44, T45, T46, T47, T48, T49, T50>
Tail;
6179 template <GTEST_TEMPLATE_ T1 =
NoneT, GTEST_TEMPLATE_ T2 =
NoneT,
6180 GTEST_TEMPLATE_ T3 =
NoneT, GTEST_TEMPLATE_ T4 =
NoneT,
6181 GTEST_TEMPLATE_ T5 =
NoneT, GTEST_TEMPLATE_ T6 =
NoneT,
6182 GTEST_TEMPLATE_ T7 =
NoneT, GTEST_TEMPLATE_ T8 =
NoneT,
6183 GTEST_TEMPLATE_ T9 =
NoneT, GTEST_TEMPLATE_ T10 =
NoneT,
6184 GTEST_TEMPLATE_ T11 =
NoneT, GTEST_TEMPLATE_ T12 =
NoneT,
6185 GTEST_TEMPLATE_ T13 =
NoneT, GTEST_TEMPLATE_ T14 =
NoneT,
6186 GTEST_TEMPLATE_ T15 =
NoneT, GTEST_TEMPLATE_ T16 =
NoneT,
6187 GTEST_TEMPLATE_ T17 =
NoneT, GTEST_TEMPLATE_ T18 =
NoneT,
6188 GTEST_TEMPLATE_ T19 =
NoneT, GTEST_TEMPLATE_ T20 =
NoneT,
6189 GTEST_TEMPLATE_ T21 =
NoneT, GTEST_TEMPLATE_ T22 =
NoneT,
6190 GTEST_TEMPLATE_ T23 =
NoneT, GTEST_TEMPLATE_ T24 =
NoneT,
6191 GTEST_TEMPLATE_ T25 =
NoneT, GTEST_TEMPLATE_ T26 =
NoneT,
6192 GTEST_TEMPLATE_ T27 =
NoneT, GTEST_TEMPLATE_ T28 =
NoneT,
6193 GTEST_TEMPLATE_ T29 =
NoneT, GTEST_TEMPLATE_ T30 =
NoneT,
6194 GTEST_TEMPLATE_ T31 =
NoneT, GTEST_TEMPLATE_ T32 =
NoneT,
6195 GTEST_TEMPLATE_ T33 =
NoneT, GTEST_TEMPLATE_ T34 =
NoneT,
6196 GTEST_TEMPLATE_ T35 =
NoneT, GTEST_TEMPLATE_ T36 =
NoneT,
6197 GTEST_TEMPLATE_ T37 =
NoneT, GTEST_TEMPLATE_ T38 =
NoneT,
6198 GTEST_TEMPLATE_ T39 =
NoneT, GTEST_TEMPLATE_ T40 =
NoneT,
6199 GTEST_TEMPLATE_ T41 =
NoneT, GTEST_TEMPLATE_ T42 =
NoneT,
6200 GTEST_TEMPLATE_ T43 =
NoneT, GTEST_TEMPLATE_ T44 =
NoneT,
6201 GTEST_TEMPLATE_ T45 =
NoneT, GTEST_TEMPLATE_ T46 =
NoneT,
6202 GTEST_TEMPLATE_ T47 =
NoneT, GTEST_TEMPLATE_ T48 =
NoneT,
6203 GTEST_TEMPLATE_ T49 =
NoneT, GTEST_TEMPLATE_ T50 =
NoneT>
6205 typedef Templates50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6206 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6207 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
6208 T42, T43, T44, T45, T46, T47, T48, T49, T50>
type;
6213 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6214 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6215 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6216 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6220 template <GTEST_TEMPLATE_ T1>
6222 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6223 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6224 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6225 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6229 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2>
6231 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6232 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6233 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6234 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6238 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3>
6239 struct Templates<T1, T2, T3,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6240 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6241 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6242 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6246 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6248 struct Templates<T1, T2, T3, T4,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6249 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6250 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6251 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6255 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6256 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5>
6257 struct Templates<T1, T2, T3, T4, T5,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6258 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6259 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6260 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6264 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6265 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6>
6266 struct Templates<T1, T2, T3, T4, T5, T6,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6267 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6268 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6269 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6273 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6274 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6276 struct Templates<T1, T2, T3, T4, T5, T6, T7,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6277 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6278 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6279 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6283 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6284 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6285 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8>
6286 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8,
NoneT,
NoneT,
NoneT,
NoneT,
6287 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6288 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6289 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6293 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6294 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6295 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9>
6296 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9,
NoneT,
NoneT,
NoneT,
6297 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6298 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6299 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6303 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6304 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6305 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6306 GTEST_TEMPLATE_ T10>
6307 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
NoneT,
NoneT,
NoneT,
6308 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6309 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6310 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6314 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6315 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6316 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6317 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11>
6318 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
NoneT,
NoneT,
6319 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6320 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6321 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6323 typedef Templates11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> type;
6325 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6326 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6327 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6328 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12>
6329 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
NoneT,
6330 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6331 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6332 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6334 typedef Templates12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> type;
6336 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6337 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6338 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6339 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6340 GTEST_TEMPLATE_ T13>
6341 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
NoneT,
6342 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6343 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6344 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6346 typedef Templates13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
6349 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6350 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6351 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6352 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6353 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14>
6354 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6355 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6356 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6357 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6359 typedef Templates14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6362 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6363 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6364 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6365 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6366 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15>
6367 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6368 T15,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6369 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6370 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6372 typedef Templates15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
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>
6381 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6382 T15, T16,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6383 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6384 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6386 typedef Templates16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6389 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6390 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6391 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6392 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6393 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6394 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17>
6395 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6396 T15, T16, T17,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6397 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6398 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6400 typedef Templates17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6403 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6404 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6405 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6406 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6407 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6408 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18>
6409 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6410 T15, T16, T17, T18,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6411 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6412 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6414 typedef Templates18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6417 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6418 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6419 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6420 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6421 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6422 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6423 GTEST_TEMPLATE_ T19>
6424 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6425 T15, T16, T17, T18, T19,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6426 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6427 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6429 typedef Templates19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6430 T14, T15, T16, T17, T18, T19>
type;
6432 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6433 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6434 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6435 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6436 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6437 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6438 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20>
6439 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6440 T15, T16, T17, T18, T19, T20,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6441 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6442 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6444 typedef Templates20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6445 T14, T15, T16, T17, T18, T19, T20>
type;
6447 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6448 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6449 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6450 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6451 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6452 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6453 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21>
6454 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6455 T15, T16, T17, T18, T19, T20, T21,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6456 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6457 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6459 typedef Templates21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6460 T14, T15, T16, T17, T18, T19, T20, T21>
type;
6462 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6463 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6464 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6465 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6466 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6467 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6468 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6469 GTEST_TEMPLATE_ T22>
6470 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6471 T15, T16, T17, T18, T19, T20, T21, T22,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6472 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6473 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6475 typedef Templates22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6476 T14, T15, T16, T17, T18, T19, T20, T21, T22>
type;
6478 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6479 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6480 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6481 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6482 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6483 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6484 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6485 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23>
6486 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6487 T15, T16, T17, T18, T19, T20, T21, T22, T23,
NoneT,
NoneT,
NoneT,
NoneT,
6488 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6489 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6491 typedef Templates23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6492 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>
type;
6494 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6495 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6496 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6497 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6498 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6499 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6500 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6501 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24>
6502 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6503 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24,
NoneT,
NoneT,
NoneT,
6504 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6505 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6507 typedef Templates24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6508 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>
type;
6510 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6511 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6512 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6513 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6514 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6515 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6516 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6517 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6518 GTEST_TEMPLATE_ T25>
6519 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6520 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
NoneT,
NoneT,
NoneT,
6521 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6522 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6524 typedef Templates25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6525 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>
type;
6527 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6528 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6529 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6530 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6531 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6532 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6533 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6534 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6535 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26>
6536 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6537 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
NoneT,
NoneT,
6538 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6539 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6541 typedef Templates26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6542 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26>
type;
6544 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6545 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6546 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6547 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6548 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6549 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6550 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6551 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6552 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27>
6553 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6554 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
NoneT,
6555 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6556 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6558 typedef Templates27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6559 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
6562 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6563 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6564 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6565 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6566 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6567 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6568 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6569 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6570 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6571 GTEST_TEMPLATE_ T28>
6572 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6573 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
6574 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6575 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6577 typedef Templates28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6578 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6581 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6582 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6583 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6584 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6585 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6586 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6587 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6588 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6589 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6590 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29>
6591 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6592 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6593 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6594 NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6596 typedef Templates29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6597 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6600 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6601 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6602 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6603 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6604 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6605 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6606 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6607 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6608 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6609 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30>
6610 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6611 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6612 T30,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6614 typedef Templates30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6615 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6618 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6619 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6620 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6621 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6622 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6623 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6624 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6625 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6626 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6627 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6628 GTEST_TEMPLATE_ T31>
6629 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6630 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6631 T30, T31,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6633 typedef Templates31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6634 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6637 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6638 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6639 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6640 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6641 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6642 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6643 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6644 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6645 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6646 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6647 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32>
6648 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6649 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6650 T30, T31, T32,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6652 typedef Templates32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6653 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6656 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6657 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6658 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6659 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6660 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6661 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6662 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6663 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6664 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6665 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6666 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33>
6667 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6668 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6669 T30, T31, T32, T33,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6671 typedef Templates33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6672 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6673 T28, T29, T30, T31, T32, T33>
type;
6675 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6676 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6677 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6678 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6679 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6680 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6681 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6682 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6683 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6684 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6685 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6686 GTEST_TEMPLATE_ T34>
6687 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6688 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6689 T30, T31, T32, T33, T34,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6691 typedef Templates34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6692 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6693 T28, T29, T30, T31, T32, T33, T34>
type;
6695 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6696 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6697 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6698 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6699 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6700 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6701 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6702 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6703 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6704 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6705 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6706 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35>
6707 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6708 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6709 T30, T31, T32, T33, T34, T35,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6711 typedef Templates35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6712 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6713 T28, T29, T30, T31, T32, T33, T34, T35>
type;
6715 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6716 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6717 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6718 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6719 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6720 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6721 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6722 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6723 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6724 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6725 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6726 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36>
6727 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6728 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6729 T30, T31, T32, T33, T34, T35, T36,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6731 typedef Templates36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6732 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6733 T28, T29, T30, T31, T32, T33, T34, T35, T36>
type;
6735 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6736 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6737 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6738 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6739 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6740 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6741 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6742 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6743 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6744 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6745 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6746 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6747 GTEST_TEMPLATE_ T37>
6748 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6749 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6750 T30, T31, T32, T33, T34, T35, T36, T37,
NoneT,
NoneT,
NoneT,
NoneT,
NoneT,
6752 typedef Templates37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6753 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6754 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37>
type;
6756 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6757 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6758 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6759 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6760 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6761 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6762 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6763 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6764 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6765 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6766 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6767 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6768 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38>
6769 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6770 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6771 T30, T31, T32, T33, T34, T35, T36, T37, T38,
NoneT,
NoneT,
NoneT,
NoneT,
6773 typedef Templates38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6774 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6775 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>
type;
6777 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6778 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6779 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6780 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6781 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6782 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6783 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6784 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6785 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6786 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6787 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6788 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6789 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39>
6790 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6791 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6792 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
NoneT,
NoneT,
NoneT,
6794 typedef Templates39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6795 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6796 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>
type;
6798 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6799 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6800 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6801 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6802 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6803 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6804 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6805 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6806 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6807 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6808 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6809 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6810 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6811 GTEST_TEMPLATE_ T40>
6812 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6813 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6814 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
NoneT,
NoneT,
NoneT,
6816 typedef Templates40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6817 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6818 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40>
type;
6820 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6821 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6822 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6823 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6824 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6825 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6826 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6827 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6828 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6829 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6830 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6831 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6832 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6833 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41>
6834 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6835 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6836 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
NoneT,
NoneT,
6838 typedef Templates41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6839 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6840 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
6843 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6844 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6845 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6846 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6847 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6848 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6849 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6850 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6851 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6852 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6853 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6854 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6855 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6856 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42>
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, T26, T27, T28, T29,
6859 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
NoneT,
6861 typedef Templates42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6862 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6863 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
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, GTEST_TEMPLATE_ T27,
6875 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6876 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6877 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6878 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6879 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6880 GTEST_TEMPLATE_ T43>
6881 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6882 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6883 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
6885 typedef Templates43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6886 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6887 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
6890 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6891 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6892 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6893 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6894 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6895 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6896 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6897 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6898 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6899 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6900 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6901 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6902 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6903 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6904 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44>
6905 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6906 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6907 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
6909 typedef Templates44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6910 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6911 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
6914 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6915 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6916 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6917 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6918 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6919 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6920 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6921 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6922 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6923 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6924 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6925 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6926 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6927 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6928 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45>
6929 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6930 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6931 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
6933 typedef Templates45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6934 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6935 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
6938 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6939 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6940 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6941 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6942 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6943 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6944 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6945 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6946 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6947 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6948 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6949 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6950 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6951 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6952 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
6953 GTEST_TEMPLATE_ T46>
6954 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6955 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6956 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
6958 typedef Templates46<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, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
6963 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6964 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6965 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6966 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6967 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6968 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6969 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6970 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6971 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6972 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6973 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6974 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
6975 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
6976 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
6977 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
6978 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47>
6979 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
6980 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
6981 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
6983 typedef Templates47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
6984 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
6985 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
6986 T42, T43, T44, T45, T46, T47>
type;
6988 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6989 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
6990 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
6991 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
6992 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
6993 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
6994 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
6995 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
6996 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
6997 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
6998 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
6999 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
7000 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
7001 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
7002 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
7003 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48>
7004 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7005 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7006 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
7008 typedef Templates48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7009 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7010 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
7011 T42, T43, T44, T45, T46, T47, T48>
type;
7013 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
7014 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
7015 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
7016 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
7017 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
7018 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
7019 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
7020 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
7021 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
7022 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
7023 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
7024 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
7025 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
7026 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
7027 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
7028 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
7029 GTEST_TEMPLATE_ T49>
7030 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
7031 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
7032 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
7033 T45, T46, T47, T48, T49,
NoneT> {
7034 typedef Templates49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7035 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
7036 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
7037 T42, T43, T44, T45, T46, T47, T48, T49>
type;
7044 template <
typename T>
7049 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
7050 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
7051 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
7052 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
7053 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
7054 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
7055 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
7056 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
7057 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
7058 typename T46,
typename T47,
typename T48,
typename T49,
typename T50>
7059 struct TypeList<
Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
7060 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
7061 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
7062 T44, T45, T46, T47, T48, T49, T50> > {
7063 typedef typename Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
7064 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
7065 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
7069 #endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
7074 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
7084 #define GTEST_CONCAT_TOKEN_(foo, bar) GTEST_CONCAT_TOKEN_IMPL_(foo, bar)
7085 #define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo ## bar
7087 class ProtocolMessage;
7088 namespace proto2 {
class Message; }
7094 class AssertionResult;
7098 class TestPartResult;
7101 template <
typename T>
7104 namespace internal {
7138 #ifdef GTEST_ELLIPSIS_NEEDS_POD_
7141 # define GTEST_IS_NULL_LITERAL_(x) false
7143 # define GTEST_IS_NULL_LITERAL_(x) \
7144 (sizeof(::testing::internal::IsNullLiteralHelper(x)) == 1)
7145 #endif // GTEST_ELLIPSIS_NEEDS_POD_
7149 const std::string& gtest_msg,
const Message& user_msg);
7151 #if GTEST_HAS_EXCEPTIONS
7161 # pragma warning(push) // Saves the current warning state.
7162 # pragma warning(disable:4275) // Temporarily disables warning 4275.
7171 # pragma warning(pop) // Restores the warning state.
7174 #endif // GTEST_HAS_EXCEPTIONS
7211 const char* actual_expression,
7212 const std::string& expected_value,
7213 const std::string& actual_value,
7214 bool ignoring_case);
7219 const char* expression_text,
7220 const char* actual_predicate_value,
7221 const char* expected_predicate_value);
7252 template <
typename RawType>
7262 static const size_t kBitCount = 8*
sizeof(RawType);
7265 static const size_t kFractionBitCount =
7266 std::numeric_limits<RawType>::digits - 1;
7269 static const size_t kExponentBitCount = kBitCount - 1 - kFractionBitCount;
7272 static const Bits kSignBitMask =
static_cast<Bits>(1) << (kBitCount - 1);
7275 static const Bits kFractionBitMask =
7276 ~static_cast<
Bits>(0) >> (kExponentBitCount + 1);
7279 static const Bits kExponentBitMask = ~(kSignBitMask | kFractionBitMask);
7293 static const size_t kMaxUlps = 4;
7311 return fp.u_.value_;
7316 return ReinterpretBits(kExponentBitMask);
7320 static RawType Max();
7340 return (exponent_bits() == kExponentBitMask) && (fraction_bits() != 0);
7352 if (is_nan() || rhs.
is_nan())
return false;
7354 return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_)
7360 union FloatingPointUnion {
7380 static Bits SignAndMagnitudeToBiased(
const Bits &sam) {
7381 if (kSignBitMask & sam) {
7386 return kSignBitMask | sam;
7392 static Bits DistanceBetweenSignAndMagnitudeNumbers(
const Bits &sam1,
7394 const Bits biased1 = SignAndMagnitudeToBiased(sam1);
7395 const Bits biased2 = SignAndMagnitudeToBiased(sam2);
7396 return (biased1 >= biased2) ? (biased1 - biased2) : (biased2 - biased1);
7399 FloatingPointUnion u_;
7422 template <
typename T>
7431 template <
typename T>
7437 template <
typename T>
7461 virtual Test* CreateTest() = 0;
7472 template <
class TestClass>
7478 #if GTEST_OS_WINDOWS
7489 #endif // GTEST_OS_WINDOWS
7513 const char* test_case_name,
7515 const char* type_param,
7516 const char* value_param,
7525 GTEST_API_
bool SkipPrefix(
const char* prefix,
const char** pstr);
7527 #if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
7538 const char* test_name) {
7540 fprintf(stderr,
"%s Test %s must be defined before "
7541 "REGISTER_TYPED_TEST_CASE_P(%s, ...).\n",
7546 defined_test_names_.insert(test_name);
7553 const char* VerifyRegisteredTestNames(
7554 const char* file,
int line,
const char* registered_tests);
7558 ::std::set<const char*> defined_test_names_;
7564 const char* comma = strchr(str,
',');
7565 if (comma == NULL) {
7568 while (
IsSpace(*(++comma))) {}
7575 const char* comma = strchr(str,
',');
7576 return comma == NULL ? str : std::string(str, comma);
7586 template <GTEST_TEMPLATE_ Fixture,
class TestSel,
typename Types>
7593 static bool Register(
const char* prefix,
const char* case_name,
7594 const char* test_names,
int index) {
7595 typedef typename Types::Head Type;
7596 typedef Fixture<Type> FixtureClass;
7597 typedef typename GTEST_BIND_(TestSel, Type) TestClass;
7602 (std::string(prefix) + (prefix[0] ==
'\0' ?
"" :
"/") + case_name +
"/"
7605 GetTypeName<Type>().c_str(),
7607 GetTypeId<FixtureClass>(),
7608 TestClass::SetUpTestCase,
7609 TestClass::TearDownTestCase,
7614 ::Register(prefix, case_name, test_names, index + 1);
7619 template <GTEST_TEMPLATE_ Fixture,
class TestSel>
7623 const char* ,
int ) {
7632 template <GTEST_TEMPLATE_ Fixture,
typename Tests,
typename Types>
7635 static bool Register(
const char* prefix,
const char* case_name,
7636 const char* test_names) {
7637 typedef typename Tests::Head Head;
7641 prefix, case_name, test_names, 0);
7650 template <GTEST_TEMPLATE_ Fixture,
typename Types>
7659 #endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
7672 UnitTest* unit_test,
int skip_count);
7688 operator bool()
const {
return true; }
7711 GTEST_DISALLOW_COPY_AND_ASSIGN_(
Random);
7716 template <
typename T1,
typename T2>
7719 template <
typename T>
7726 template <
typename T>
7728 template <
typename T>
7733 #define GTEST_REMOVE_REFERENCE_(T) \
7734 typename ::testing::internal::RemoveReference<T>::type
7739 template <
typename T>
7741 template <
typename T>
7747 template <
typename T,
size_t N>
7752 #if defined(_MSC_VER) && _MSC_VER < 1400
7756 template <
typename T,
size_t N>
7764 #define GTEST_REMOVE_CONST_(T) \
7765 typename ::testing::internal::RemoveConst<T>::type
7768 #define GTEST_REMOVE_REFERENCE_AND_CONST_(T) \
7769 GTEST_REMOVE_CONST_(GTEST_REMOVE_REFERENCE_(T))
7774 template <
typename T>
7776 template <
typename T>
7781 #define GTEST_ADD_REFERENCE_(T) \
7782 typename ::testing::internal::AddReference<T>::type
7793 #define GTEST_REFERENCE_TO_CONST_(T) \
7794 GTEST_ADD_REFERENCE_(const GTEST_REMOVE_REFERENCE_(T))
7799 template <
typename From,
typename To>
7808 static From MakeFrom();
7820 static char Helper(To);
7821 static char (&Helper(...))[2];
7830 # pragma warning(push) // Saves the current warning state.
7831 # pragma warning(disable:4244) // Temporarily disables warning 4244.
7834 sizeof(Helper(ImplicitlyConvertible::MakeFrom())) == 1;
7835 # pragma warning(pop) // Restores the warning state.
7836 #elif defined(__BORLANDC__)
7840 static const bool value = __is_convertible(From, To);
7842 static const bool value =
7843 sizeof(Helper(ImplicitlyConvertible::MakeFrom())) == 1;
7846 template <
typename From,
typename To>
7852 template <
typename T>
7855 ImplicitlyConvertible<const T*, const ::ProtocolMessage*>::value ||
7856 ImplicitlyConvertible<const T*, const ::proto2::Message*>::value> {
7883 typename C::iterator* = NULL,
7884 typename C::const_iterator* = NULL) {
7905 template <
typename T,
typename U>
7909 template <
typename T,
typename U>
7910 inline bool ArrayEq(
const T& lhs,
const U& rhs) {
return lhs == rhs; }
7913 template <
typename T,
typename U,
size_t N>
7921 template <
typename T,
typename U>
7923 for (
size_t i = 0; i !=
size; i++) {
7932 template <
typename Iter,
typename Element>
7934 for (Iter it = begin; it !=
end; ++it) {
7945 template <
typename T,
typename U>
7949 template <
typename T,
typename U>
7953 template <
typename T,
typename U,
size_t N>
7961 template <
typename T,
typename U>
7963 for (
size_t i = 0; i !=
size; i++) {
7984 template <
typename Element>
7994 Init(array, count, relation);
7999 Init(rhs.array_, rhs.size_, rhs.relation_to_source_);
8006 GTEST_REMOVE_REFERENCE_AND_CONST_(Element)>());
8007 if (relation_to_source_ ==
kCopy)
8012 size_t size()
const {
return size_; }
8023 void Init(
const Element* array,
size_t a_size,
RelationToSource relation) {
8027 Element*
const copy =
new Element[a_size];
8032 relation_to_source_ = relation;
8035 const Element* array_;
8039 GTEST_DISALLOW_ASSIGN_(NativeArray);
8045 #define GTEST_MESSAGE_AT_(file, line, message, result_type) \
8046 ::testing::internal::AssertHelper(result_type, file, line, message) \
8047 = ::testing::Message()
8049 #define GTEST_MESSAGE_(message, result_type) \
8050 GTEST_MESSAGE_AT_(__FILE__, __LINE__, message, result_type)
8052 #define GTEST_FATAL_FAILURE_(message) \
8053 return GTEST_MESSAGE_(message, ::testing::TestPartResult::kFatalFailure)
8055 #define GTEST_NONFATAL_FAILURE_(message) \
8056 GTEST_MESSAGE_(message, ::testing::TestPartResult::kNonFatalFailure)
8058 #define GTEST_SUCCESS_(message) \
8059 GTEST_MESSAGE_(message, ::testing::TestPartResult::kSuccess)
8064 #define GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) \
8065 if (::testing::internal::AlwaysTrue()) { statement; }
8067 #define GTEST_TEST_THROW_(statement, expected_exception, fail) \
8068 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
8069 if (::testing::internal::ConstCharPtr gtest_msg = "") { \
8070 bool gtest_caught_expected = false; \
8072 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
8074 catch (expected_exception const&) { \
8075 gtest_caught_expected = true; \
8079 "Expected: " #statement " throws an exception of type " \
8080 #expected_exception ".\n Actual: it throws a different type."; \
8081 goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \
8083 if (!gtest_caught_expected) { \
8085 "Expected: " #statement " throws an exception of type " \
8086 #expected_exception ".\n Actual: it throws nothing."; \
8087 goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \
8090 GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__): \
8091 fail(gtest_msg.value)
8093 #define GTEST_TEST_NO_THROW_(statement, fail) \
8094 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
8095 if (::testing::internal::AlwaysTrue()) { \
8097 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
8100 goto GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__); \
8103 GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__): \
8104 fail("Expected: " #statement " doesn't throw an exception.\n" \
8105 " Actual: it throws.")
8107 #define GTEST_TEST_ANY_THROW_(statement, fail) \
8108 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
8109 if (::testing::internal::AlwaysTrue()) { \
8110 bool gtest_caught_any = false; \
8112 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
8115 gtest_caught_any = true; \
8117 if (!gtest_caught_any) { \
8118 goto GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__); \
8121 GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__): \
8122 fail("Expected: " #statement " throws an exception.\n" \
8123 " Actual: it doesn't.")
8129 #define GTEST_TEST_BOOLEAN_(expression, text, actual, expected, fail) \
8130 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
8131 if (const ::testing::AssertionResult gtest_ar_ = \
8132 ::testing::AssertionResult(expression)) \
8135 fail(::testing::internal::GetBoolAssertionFailureMessage(\
8136 gtest_ar_, text, #actual, #expected).c_str())
8138 #define GTEST_TEST_NO_FATAL_FAILURE_(statement, fail) \
8139 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
8140 if (::testing::internal::AlwaysTrue()) { \
8141 ::testing::internal::HasNewFatalFailureHelper gtest_fatal_failure_checker; \
8142 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
8143 if (gtest_fatal_failure_checker.has_new_fatal_failure()) { \
8144 goto GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__); \
8147 GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__): \
8148 fail("Expected: " #statement " doesn't generate new fatal " \
8149 "failures in the current thread.\n" \
8150 " Actual: it does.")
8153 #define GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \
8154 test_case_name##_##test_name##_Test
8157 #define GTEST_TEST_(test_case_name, test_name, parent_class, parent_id)\
8158 class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) : public parent_class {\
8160 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {}\
8162 virtual void TestBody();\
8163 static ::testing::TestInfo* const test_info_ GTEST_ATTRIBUTE_UNUSED_;\
8164 GTEST_DISALLOW_COPY_AND_ASSIGN_(\
8165 GTEST_TEST_CLASS_NAME_(test_case_name, test_name));\
8168 ::testing::TestInfo* const GTEST_TEST_CLASS_NAME_(test_case_name, test_name)\
8170 ::testing::internal::MakeAndRegisterTestInfo(\
8171 #test_case_name, #test_name, NULL, NULL, \
8173 parent_class::SetUpTestCase, \
8174 parent_class::TearDownTestCase, \
8175 new ::testing::internal::TestFactoryImpl<\
8176 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>);\
8177 void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody()
8179 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_
8217 #ifndef GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_
8218 #define GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_
8256 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_
8257 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_
8263 namespace internal {
8272 #if GTEST_HAS_DEATH_TEST
8297 static bool Create(
const char* statement,
const RE* regex,
8327 virtual TestRole AssumeRole() = 0;
8330 virtual int Wait() = 0;
8339 virtual bool Passed(
bool exit_status_ok) = 0;
8342 virtual void Abort(AbortReason reason) = 0;
8346 static const char* LastMessage();
8348 static void set_last_death_test_message(
const std::string& message);
8352 static std::string last_death_test_message_;
8354 GTEST_DISALLOW_COPY_AND_ASSIGN_(
DeathTest);
8361 virtual bool Create(
const char* statement,
const RE* regex,
8368 virtual bool Create(
const char* statement,
const RE* regex,
8378 # if GTEST_HAS_EXCEPTIONS
8379 # define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \
8381 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
8382 } catch (const ::std::exception& gtest_exception) { \
8385 "\n%s: Caught std::exception-derived exception escaping the " \
8386 "death test statement. Exception message: %s\n", \
8387 ::testing::internal::FormatFileLocation(__FILE__, __LINE__).c_str(), \
8388 gtest_exception.what()); \
8390 death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \
8392 death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \
8396 # define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \
8397 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement)
8403 # define GTEST_DEATH_TEST_(statement, predicate, regex, fail) \
8404 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
8405 if (::testing::internal::AlwaysTrue()) { \
8406 const ::testing::internal::RE& gtest_regex = (regex); \
8407 ::testing::internal::DeathTest* gtest_dt; \
8408 if (!::testing::internal::DeathTest::Create(#statement, >est_regex, \
8409 __FILE__, __LINE__, >est_dt)) { \
8410 goto GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__); \
8412 if (gtest_dt != NULL) { \
8413 ::testing::internal::scoped_ptr< ::testing::internal::DeathTest> \
8414 gtest_dt_ptr(gtest_dt); \
8415 switch (gtest_dt->AssumeRole()) { \
8416 case ::testing::internal::DeathTest::OVERSEE_TEST: \
8417 if (!gtest_dt->Passed(predicate(gtest_dt->Wait()))) { \
8418 goto GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__); \
8421 case ::testing::internal::DeathTest::EXECUTE_TEST: { \
8422 ::testing::internal::DeathTest::ReturnSentinel \
8423 gtest_sentinel(gtest_dt); \
8424 GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, gtest_dt); \
8425 gtest_dt->Abort(::testing::internal::DeathTest::TEST_DID_NOT_DIE); \
8433 GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__): \
8434 fail(::testing::internal::DeathTest::LastMessage())
8442 # define GTEST_EXECUTE_STATEMENT_(statement, regex) \
8443 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
8444 if (::testing::internal::AlwaysTrue()) { \
8445 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
8447 ::testing::Message()
8458 : file_(a_file), line_(a_line), index_(an_index),
8459 write_fd_(a_write_fd) {}
8466 const std::string&
file()
const {
return file_; }
8485 #else // GTEST_HAS_DEATH_TEST
8519 # define GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, terminator) \
8520 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
8521 if (::testing::internal::AlwaysTrue()) { \
8522 GTEST_LOG_(WARNING) \
8523 << "Death tests are not supported on this platform.\n" \
8524 << "Statement '" #statement "' cannot be verified."; \
8525 } else if (::testing::internal::AlwaysFalse()) { \
8526 ::testing::internal::RE::PartialMatch(".*", (regex)); \
8527 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
8530 ::testing::Message()
8532 #endif // GTEST_HAS_DEATH_TEST
8537 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_
8548 #if GTEST_HAS_DEATH_TEST
8550 namespace internal {
8664 # define ASSERT_EXIT(statement, predicate, regex) \
8665 GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_FATAL_FAILURE_)
8669 # define EXPECT_EXIT(statement, predicate, regex) \
8670 GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_NONFATAL_FAILURE_)
8675 # define ASSERT_DEATH(statement, regex) \
8676 ASSERT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex)
8680 # define EXPECT_DEATH(statement, regex) \
8681 EXPECT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex)
8689 bool operator()(
int exit_status)
const;
8694 const int exit_code_;
8697 # if !GTEST_OS_WINDOWS
8703 bool operator()(
int exit_status)
const;
8707 # endif // !GTEST_OS_WINDOWS
8754 # define EXPECT_DEBUG_DEATH(statement, regex) \
8755 GTEST_EXECUTE_STATEMENT_(statement, regex)
8757 # define ASSERT_DEBUG_DEATH(statement, regex) \
8758 GTEST_EXECUTE_STATEMENT_(statement, regex)
8762 # define EXPECT_DEBUG_DEATH(statement, regex) \
8763 EXPECT_DEATH(statement, regex)
8765 # define ASSERT_DEBUG_DEATH(statement, regex) \
8766 ASSERT_DEATH(statement, regex)
8768 # endif // NDEBUG for EXPECT_DEBUG_DEATH
8769 #endif // GTEST_HAS_DEATH_TEST
8776 #if GTEST_HAS_DEATH_TEST
8777 # define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \
8778 EXPECT_DEATH(statement, regex)
8779 # define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \
8780 ASSERT_DEATH(statement, regex)
8782 # define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \
8783 GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, )
8784 # define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \
8785 GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, return)
8790 #endif // GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_
8831 #ifndef GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
8832 #define GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
8861 EXPECT_TRUE(foo.Blah(GetParam()));
8895 Values(
"meeny",
"miny",
"moe"));
8916 const char*
pets[] = {
"cat",
"dog"};
8967 EXPECT_TRUE(foo.Blah(GetParam()));
8973 #if !GTEST_OS_SYMBIAN
9013 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_
9014 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_
9090 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_LINKED_PTR_H_
9091 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_LINKED_PTR_H_
9098 namespace internal {
9130 GTEST_LOCK_EXCLUDED_(g_linked_ptr_mutex) {
9134 while (p->next_ !=
ptr) p = p->next_;
9142 GTEST_LOCK_EXCLUDED_(g_linked_ptr_mutex) {
9145 if (next_ ==
this)
return true;
9147 while (p->next_ !=
this) p = p->next_;
9156 template <
typename T>
9169 assert(&ptr !=
this);
9193 T*
get()
const {
return value_; }
9199 template <
typename U>
9201 return value_ == ptr.
get();
9203 template <
typename U>
9205 return value_ != ptr.
get();
9209 template <
typename U>
9216 if (link_.depart())
delete value_;
9219 void capture(
T*
ptr) {
9224 template <
typename U>
void copy(linked_ptr<U>
const* ptr) {
9225 value_ = ptr->get();
9227 link_.join(&ptr->link_);
9233 template<
typename T>
inline
9235 return ptr == x.
get();
9238 template<
typename T>
inline
9240 return ptr != x.
get();
9246 template <
typename T>
9254 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_LINKED_PTR_H_
9349 #ifndef GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_
9350 #define GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_
9362 namespace internal2 {
9368 ::std::ostream* os);
9383 template <
typename T, TypeKind kTypeKind>
9398 template <
typename T>
9402 const ::testing::internal::string short_str = value.ShortDebugString();
9403 const ::testing::internal::string pretty_str =
9405 short_str : (
"\n" + value.DebugString());
9406 *os << (
"<" + pretty_str +
">");
9410 template <
typename T>
9450 template <
typename Char,
typename CharTraits,
typename T>
9452 ::std::basic_ostream<Char, CharTraits>& os,
const T&
x) {
9465 namespace testing_internal {
9469 template <
typename T>
9482 using namespace ::testing::internal2;
9503 namespace internal {
9512 template <
typename T>
9515 template <
typename T>
9520 template <
typename C>
9523 const C& container, ::std::ostream* os) {
9524 const size_t kMaxCount = 32;
9527 for (
typename C::const_iterator it = container.begin();
9528 it != container.end(); ++it, ++
count) {
9531 if (count == kMaxCount) {
9554 template <
typename T>
9557 T*
p, ::std::ostream* os) {
9578 *os << reinterpret_cast<const void*>(
9586 template <
typename T>
9589 const T&
value, ::std::ostream* os) {
9604 template <
typename T>
9636 GTEST_API_
void PrintTo(
unsigned char c, ::std::ostream* os);
9637 GTEST_API_
void PrintTo(
signed char c, ::std::ostream* os);
9642 PrintTo(static_cast<unsigned char>(c), os);
9647 *os << (x ?
"true" :
"false");
9657 GTEST_API_
void PrintTo(
wchar_t wc, ::std::ostream* os);
9660 GTEST_API_
void PrintTo(
const char*
s, ::std::ostream* os);
9662 PrintTo(ImplicitCast_<const char*>(s), os);
9667 inline void PrintTo(
const signed char*
s, ::std::ostream* os) {
9668 PrintTo(ImplicitCast_<const void*>(s), os);
9670 inline void PrintTo(
signed char*
s, ::std::ostream* os) {
9671 PrintTo(ImplicitCast_<const void*>(s), os);
9673 inline void PrintTo(
const unsigned char*
s, ::std::ostream* os) {
9674 PrintTo(ImplicitCast_<const void*>(s), os);
9676 inline void PrintTo(
unsigned char*
s, ::std::ostream* os) {
9677 PrintTo(ImplicitCast_<const void*>(s), os);
9685 #if !defined(_MSC_VER) || defined(_NATIVE_WCHAR_T_DEFINED)
9687 GTEST_API_
void PrintTo(
const wchar_t*
s, ::std::ostream* os);
9689 PrintTo(ImplicitCast_<const wchar_t*>(s), os);
9698 template <
typename T>
9701 for (
size_t i = 1; i !=
count; i++) {
9708 #if GTEST_HAS_GLOBAL_STRING
9709 GTEST_API_
void PrintStringTo(const ::string&
s, ::std::ostream* os);
9710 inline void PrintTo(const ::string&
s, ::std::ostream* os) {
9713 #endif // GTEST_HAS_GLOBAL_STRING
9715 GTEST_API_
void PrintStringTo(const ::std::string&
s, ::std::ostream* os);
9716 inline void PrintTo(const ::std::string&
s, ::std::ostream* os) {
9721 #if GTEST_HAS_GLOBAL_WSTRING
9726 #endif // GTEST_HAS_GLOBAL_WSTRING
9728 #if GTEST_HAS_STD_WSTRING
9733 #endif // GTEST_HAS_STD_WSTRING
9735 #if GTEST_HAS_TR1_TUPLE
9741 template <
typename T>
9749 inline void PrintTo(const ::std::tr1::tuple<>& t, ::std::ostream* os) {
9753 template <
typename T1>
9754 void PrintTo(const ::std::tr1::tuple<T1>& t, ::std::ostream* os) {
9758 template <
typename T1,
typename T2>
9759 void PrintTo(const ::std::tr1::tuple<T1, T2>& t, ::std::ostream* os) {
9763 template <
typename T1,
typename T2,
typename T3>
9764 void PrintTo(const ::std::tr1::tuple<T1, T2, T3>& t, ::std::ostream* os) {
9768 template <
typename T1,
typename T2,
typename T3,
typename T4>
9769 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4>& t, ::std::ostream* os) {
9773 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
9774 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5>& t,
9775 ::std::ostream* os) {
9779 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
9781 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6>& t,
9782 ::std::ostream* os) {
9786 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
9787 typename T6,
typename T7>
9788 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7>& t,
9789 ::std::ostream* os) {
9793 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
9794 typename T6,
typename T7,
typename T8>
9795 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8>& t,
9796 ::std::ostream* os) {
9800 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
9801 typename T6,
typename T7,
typename T8,
typename T9>
9802 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>& t,
9803 ::std::ostream* os) {
9807 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
9808 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
9810 const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>& t,
9811 ::std::ostream* os) {
9814 #endif // GTEST_HAS_TR1_TUPLE
9817 template <
typename T1,
typename T2>
9830 template <
typename T>
9831 class UniversalPrinter {
9836 # pragma warning(push) // Saves the current warning state.
9837 # pragma warning(disable:4180) // Temporarily disables warning 4180.
9856 # pragma warning(pop) // Restores the warning state.
9862 template <
typename T>
9868 const size_t kThreshold = 18;
9869 const size_t kChunkSize = 8;
9874 if (len <= kThreshold) {
9886 const char* begin,
size_t len, ::std::ostream* os);
9890 const wchar_t* begin,
size_t len, ::std::ostream* os);
9893 template <
typename T,
size_t N>
9898 static void Print(
const T (&
a)[N], ::std::ostream* os) {
9904 template <
typename T>
9910 # pragma warning(push) // Saves the current warning state.
9911 # pragma warning(disable:4180) // Temporarily disables warning 4180.
9917 *os <<
"@" <<
reinterpret_cast<const void*
>(&
value) <<
" ";
9924 # pragma warning(pop) // Restores the warning state.
9932 template <
typename T>
9939 template <
typename T>
9946 template <
typename T,
size_t N>
9956 static void Print(
const char*
str, ::std::ostream* os) {
9972 #if GTEST_HAS_STD_WSTRING
9976 static void Print(
const wchar_t*
str, ::std::ostream* os) {
9994 template <
typename T>
10003 template <
typename T>
10011 #if GTEST_HAS_TR1_TUPLE
10022 template <
size_t N>
10025 template <
typename Tuple>
10030 ::Print(::std::tr1::get<N - 1>(t), os);
10035 template <
typename Tuple>
10038 ::std::stringstream ss;
10040 strings->push_back(ss.str());
10047 template <
typename Tuple>
10050 template <
typename Tuple>
10060 template <
typename Tuple>
10063 Print(::std::tr1::get<0>(t), os);
10066 template <
typename Tuple>
10068 ::std::stringstream ss;
10070 strings->push_back(ss.str());
10076 template <
typename T>
10080 PrintPrefixTo(t, os);
10087 template <
typename Tuple>
10091 TersePrintPrefixToStrings(value, &result);
10094 #endif // GTEST_HAS_TR1_TUPLE
10098 template <
typename T>
10100 ::std::stringstream ss;
10107 #endif // GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_
10109 #if GTEST_HAS_PARAM_TEST
10111 namespace testing {
10112 namespace internal {
10121 const char* file,
int line);
10128 template <
typename T>
10140 virtual void Advance() = 0;
10148 virtual const T* Current()
const = 0;
10158 template <
typename T>
10168 if (
this != &other)
10169 impl_.reset(other.impl_->Clone());
10187 return impl_.get() == other.impl_.get() || impl_->Equals(*other.impl_);
10190 return !(*
this == other);
10201 template <
typename T>
10202 class ParamGeneratorInterface {
10218 template<
typename T>
10219 class ParamGenerator {
10227 impl_ = other.impl_;
10242 template <
typename T,
typename IncrementT>
10246 : begin_(begin), end_(end),
10247 step_(step), end_index_(CalculateEndIndex(begin, end, step)) {}
10251 return new Iterator(
this, begin_, 0, step_);
10254 return new Iterator(
this, end_, end_index_, step_);
10262 : base_(base), value_(value), index_(index), step_(step) {}
10263 virtual ~Iterator() {}
10265 virtual const ParamGeneratorInterface<T>* BaseGenerator()
const {
10268 virtual void Advance() {
10269 value_ = value_ + step_;
10272 virtual ParamIteratorInterface<T>* Clone()
const {
10273 return new Iterator(*
this);
10275 virtual const T* Current()
const {
return &value_; }
10276 virtual bool Equals(
const ParamIteratorInterface<T>& other)
const {
10279 GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
10280 <<
"The program attempted to compare iterators "
10281 <<
"from different generators." << std::endl;
10282 const int other_index =
10283 CheckedDowncastToActualType<const Iterator>(&other)->index_;
10284 return index_ == other_index;
10288 Iterator(
const Iterator& other)
10289 : ParamIteratorInterface<
T>(),
10290 base_(other.base_), value_(other.value_), index_(other.index_),
10291 step_(other.step_) {}
10294 void operator=(
const Iterator& other);
10296 const ParamGeneratorInterface<T>*
const base_;
10299 const IncrementT step_;
10302 static int CalculateEndIndex(
const T& begin,
10304 const IncrementT&
step) {
10306 for (
T i = begin; i <
end; i = i +
step)
10312 void operator=(
const RangeGenerator& other);
10316 const IncrementT step_;
10319 const int end_index_;
10327 template <
typename T>
10330 template <
typename ForwardIterator>
10332 : container_(begin, end) {}
10336 return new Iterator(
this, container_.begin());
10339 return new Iterator(
this, container_.end());
10343 typedef typename ::std::vector<T> ContainerType;
10348 typename ContainerType::const_iterator iterator)
10349 : base_(base), iterator_(iterator) {}
10350 virtual ~Iterator() {}
10352 virtual const ParamGeneratorInterface<T>* BaseGenerator()
const {
10355 virtual void Advance() {
10359 virtual ParamIteratorInterface<T>* Clone()
const {
10360 return new Iterator(*
this);
10369 virtual const T* Current()
const {
10370 if (value_.get() == NULL)
10371 value_.reset(
new T(*iterator_));
10372 return value_.get();
10374 virtual bool Equals(
const ParamIteratorInterface<T>& other)
const {
10377 GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
10378 <<
"The program attempted to compare iterators "
10379 <<
"from different generators." << std::endl;
10380 return iterator_ ==
10381 CheckedDowncastToActualType<const Iterator>(&other)->iterator_;
10385 Iterator(
const Iterator& other)
10388 : ParamIteratorInterface<
T>(),
10389 base_(other.base_),
10390 iterator_(other.iterator_) {}
10392 const ParamGeneratorInterface<T>*
const base_;
10393 typename ContainerType::const_iterator iterator_;
10399 mutable scoped_ptr<const T> value_;
10403 void operator=(
const ValuesInIteratorRangeGenerator& other);
10405 const ContainerType container_;
10412 template <
class TestClass>
10417 parameter_(parameter) {}
10419 TestClass::SetParam(¶meter_);
10420 return new TestClass();
10424 const ParamType parameter_;
10433 template <
class ParamType>
10449 template <
class TestCase>
10480 virtual const string& GetTestCaseName()
const = 0;
10482 virtual TypeId GetTestCaseTypeId()
const = 0;
10487 virtual void RegisterTests() = 0;
10503 template <
class TestCase>
10514 : test_case_name_(name) {}
10527 const char* test_base_name,
10536 GeneratorCreationFunc*
func,
10539 instantiations_.push_back(::std::make_pair(instantiation_name, func));
10548 for (
typename TestInfoContainer::iterator test_it = tests_.begin();
10549 test_it != tests_.end(); ++test_it) {
10551 for (
typename InstantiationContainer::iterator gen_it =
10552 instantiations_.begin(); gen_it != instantiations_.end();
10554 const string& instantiation_name = gen_it->first;
10557 string test_case_name;
10558 if ( !instantiation_name.empty() )
10559 test_case_name = instantiation_name +
"/";
10560 test_case_name += test_info->test_case_base_name;
10565 param_it != generator.end(); ++param_it, ++i) {
10567 test_name_stream << test_info->test_base_name <<
"/" << i;
10569 test_case_name.c_str(),
10573 GetTestCaseTypeId(),
10574 TestCase::SetUpTestCase,
10575 TestCase::TearDownTestCase,
10576 test_info->test_meta_factory->CreateTestFactory(*param_it));
10586 TestInfo(
const char* a_test_case_base_name,
10587 const char* a_test_base_name,
10589 test_case_base_name(a_test_case_base_name),
10590 test_base_name(a_test_base_name),
10591 test_meta_factory(a_test_meta_factory) {}
10593 const string test_case_base_name;
10594 const string test_base_name;
10595 const scoped_ptr<TestMetaFactoryBase<ParamType> > test_meta_factory;
10597 typedef ::std::vector<linked_ptr<TestInfo> > TestInfoContainer;
10600 typedef ::std::vector<std::pair<string, GeneratorCreationFunc*> >
10601 InstantiationContainer;
10603 const string test_case_name_;
10604 TestInfoContainer tests_;
10605 InstantiationContainer instantiations_;
10607 GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestCaseInfo);
10620 for (TestCaseInfoContainer::iterator it = test_case_infos_.begin();
10621 it != test_case_infos_.end(); ++it) {
10628 template <
class TestCase>
10630 const char* test_case_name,
10634 for (TestCaseInfoContainer::iterator it = test_case_infos_.begin();
10635 it != test_case_infos_.end(); ++it) {
10636 if ((*it)->GetTestCaseName() == test_case_name) {
10637 if ((*it)->GetTestCaseTypeId() != GetTypeId<TestCase>()) {
10653 if (typed_test_info == NULL) {
10655 test_case_infos_.push_back(typed_test_info);
10657 return typed_test_info;
10660 for (TestCaseInfoContainer::iterator it = test_case_infos_.begin();
10661 it != test_case_infos_.end(); ++it) {
10662 (*it)->RegisterTests();
10667 typedef ::std::vector<ParameterizedTestCaseInfoBase*> TestCaseInfoContainer;
10669 TestCaseInfoContainer test_case_infos_;
10677 #endif // GTEST_HAS_PARAM_TEST
10679 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_
10725 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
10726 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
10732 #if GTEST_HAS_PARAM_TEST
10734 namespace testing {
10738 template <
typename ForwardIterator>
10739 internal::ParamGenerator<
10740 typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type>
10741 ValuesIn(ForwardIterator begin, ForwardIterator
end);
10743 template <
typename T,
size_t N>
10744 internal::ParamGenerator<T>
ValuesIn(
const T (&array)[N]);
10746 template <
class Container>
10747 internal::ParamGenerator<typename Container::value_type>
ValuesIn(
10748 const Container& container);
10750 namespace internal {
10753 template <
typename T1>
10758 template <
typename T>
10768 template <
typename T1,
typename T2>
10773 template <
typename T>
10775 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_)};
10787 template <
typename T1,
typename T2,
typename T3>
10792 template <
typename T>
10794 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
10795 static_cast<T>(v3_)};
10808 template <
typename T1,
typename T2,
typename T3,
typename T4>
10814 template <
typename T>
10816 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
10817 static_cast<T>(v3_), static_cast<T>(v4_)};
10831 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
10835 v4_(v4), v5_(v5) {}
10837 template <
typename T>
10839 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
10840 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_)};
10855 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
10860 v3_(v3), v4_(v4), v5_(v5), v6_(v6) {}
10862 template <
typename T>
10864 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
10865 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
10866 static_cast<T>(v6_)};
10882 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
10883 typename T6,
typename T7>
10887 v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7) {}
10889 template <
typename T>
10891 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
10892 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
10893 static_cast<T>(v6_),
static_cast<T>(v7_)};
10910 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
10911 typename T6,
typename T7,
typename T8>
10915 T8 v8) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
10918 template <
typename T>
10920 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
10921 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
10922 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_)};
10940 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
10941 typename T6,
typename T7,
typename T8,
typename T9>
10945 T9 v9) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
10946 v8_(v8), v9_(v9) {}
10948 template <
typename T>
10950 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
10951 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
10952 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
10953 static_cast<T>(v9_)};
10972 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
10973 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
10977 T10 v10) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
10978 v8_(v8), v9_(v9), v10_(v10) {}
10980 template <
typename T>
10982 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
10983 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
10984 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
10985 static_cast<T>(v9_), static_cast<T>(v10_)};
11005 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11006 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11011 T10 v10, T11 v11) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
11012 v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11) {}
11014 template <
typename T>
11016 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11017 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11018 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11019 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_)};
11040 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11041 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11042 typename T11,
typename T12>
11046 T10 v10, T11 v11, T12 v12) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
11047 v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12) {}
11049 template <
typename T>
11051 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11052 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11053 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11054 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11055 static_cast<T>(v12_)};
11077 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11078 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11079 typename T11,
typename T12,
typename T13>
11083 T10 v10, T11 v11, T12 v12, T13 v13) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
11084 v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
11085 v12_(v12), v13_(v13) {}
11087 template <
typename T>
11089 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11090 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11091 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11092 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11093 static_cast<T>(v12_),
static_cast<T>(v13_)};
11116 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11117 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11118 typename T11,
typename T12,
typename T13,
typename T14>
11122 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14) : v1_(v1), v2_(v2), v3_(v3),
11123 v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
11124 v11_(v11), v12_(v12), v13_(v13), v14_(v14) {}
11126 template <
typename T>
11128 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11129 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11130 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11131 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11132 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_)};
11156 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11157 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11158 typename T11,
typename T12,
typename T13,
typename T14,
typename T15>
11162 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15) : v1_(v1), v2_(v2),
11163 v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
11164 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15) {}
11166 template <
typename T>
11168 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11169 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11170 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11171 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11172 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
11173 static_cast<T>(v15_)};
11198 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11199 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11200 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11205 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16) : v1_(v1),
11206 v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
11207 v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
11210 template <
typename T>
11212 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11213 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11214 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11215 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11216 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
11217 static_cast<T>(v15_), static_cast<T>(v16_)};
11243 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11244 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11245 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11246 typename T16,
typename T17>
11250 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
11251 T17 v17) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
11252 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
11253 v15_(v15), v16_(v16), v17_(v17) {}
11255 template <
typename T>
11257 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11258 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11259 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11260 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11261 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
11262 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_)};
11289 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11290 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11291 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11292 typename T16,
typename T17,
typename T18>
11296 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
11297 T18 v18) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
11298 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
11299 v15_(v15), v16_(v16), v17_(v17), v18_(v18) {}
11301 template <
typename T>
11303 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11304 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11305 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11306 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11307 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
11308 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
11309 static_cast<T>(v18_)};
11337 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11338 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11339 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11340 typename T16,
typename T17,
typename T18,
typename T19>
11344 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
11345 T18 v18, T19 v19) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
11346 v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13),
11347 v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19) {}
11349 template <
typename T>
11351 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11352 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11353 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11354 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11355 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
11356 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
11357 static_cast<T>(v18_),
static_cast<T>(v19_)};
11386 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11387 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11388 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11389 typename T16,
typename T17,
typename T18,
typename T19,
typename T20>
11393 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
11394 T18 v18, T19 v19, T20 v20) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
11395 v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12),
11396 v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18),
11397 v19_(v19), v20_(v20) {}
11399 template <
typename T>
11401 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11402 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11403 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11404 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11405 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
11406 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
11407 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_)};
11437 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11438 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11439 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11440 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
11445 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
11446 T18 v18, T19 v19, T20 v20, T21 v21) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
11447 v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
11448 v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17),
11449 v18_(v18), v19_(v19), v20_(v20), v21_(v21) {}
11451 template <
typename T>
11453 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11454 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11455 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11456 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11457 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
11458 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
11459 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
11460 static_cast<T>(v21_)};
11491 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11492 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11493 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11494 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
11495 typename T21,
typename T22>
11499 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
11500 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22) : v1_(v1), v2_(v2), v3_(v3),
11501 v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
11502 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
11503 v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22) {}
11505 template <
typename T>
11507 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11508 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11509 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11510 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11511 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
11512 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
11513 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
11514 static_cast<T>(v21_), static_cast<T>(v22_)};
11546 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11547 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11548 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11549 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
11550 typename T21,
typename T22,
typename T23>
11554 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
11555 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23) : v1_(v1), v2_(v2),
11556 v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
11557 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
11558 v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
11561 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_), static_cast<T>(v8_),
11566 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11567 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
11568 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
11569 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
11570 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_)};
11603 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11604 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11605 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11606 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
11607 typename T21,
typename T22,
typename T23,
typename T24>
11611 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
11612 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24) : v1_(v1),
11613 v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
11614 v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
11615 v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21),
11616 v22_(v22), v23_(v23), v24_(v24) {}
11618 template <
typename T>
11620 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11621 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11622 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11623 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11624 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
11625 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
11626 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
11627 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
11628 static_cast<T>(v24_)};
11662 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11663 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11664 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11665 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
11666 typename T21,
typename T22,
typename T23,
typename T24,
typename T25>
11670 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
11671 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
11672 T25 v25) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
11673 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
11674 v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
11675 v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25) {}
11677 template <
typename T>
11679 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11680 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11681 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11682 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11683 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
11684 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
11685 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
11686 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
11687 static_cast<T>(v24_),
static_cast<T>(v25_)};
11722 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11723 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11724 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11725 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
11726 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
11731 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
11732 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
11733 T26 v26) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
11734 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
11735 v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
11736 v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26) {}
11738 template <
typename T>
11740 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11741 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11742 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11743 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11744 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
11745 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
11746 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
11747 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
11748 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_)};
11784 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11785 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11786 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11787 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
11788 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
11789 typename T26,
typename T27>
11793 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
11794 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
11795 T26 v26, T27 v27) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
11796 v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13),
11797 v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19),
11798 v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25),
11799 v26_(v26), v27_(v27) {}
11801 template <
typename T>
11803 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11804 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11805 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11806 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11807 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
11808 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
11809 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
11810 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
11811 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
11812 static_cast<T>(v27_)};
11849 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11850 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11851 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11852 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
11853 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
11854 typename T26,
typename T27,
typename T28>
11858 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
11859 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
11860 T26 v26, T27 v27, T28 v28) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
11861 v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12),
11862 v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18),
11863 v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24),
11864 v25_(v25), v26_(v26), v27_(v27), v28_(v28) {}
11866 template <
typename T>
11868 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11869 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11870 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11871 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11872 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
11873 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
11874 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
11875 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
11876 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
11877 static_cast<T>(v27_), static_cast<T>(v28_)};
11915 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11916 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11917 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11918 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
11919 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
11920 typename T26,
typename T27,
typename T28,
typename T29>
11924 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
11925 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
11926 T26 v26, T27 v27, T28 v28, T29 v29) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
11927 v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
11928 v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17),
11929 v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23),
11930 v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29) {}
11932 template <
typename T>
11934 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
11935 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
11936 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
11937 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
11938 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
11939 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
11940 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
11941 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
11942 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
11943 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_)};
11982 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
11983 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
11984 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
11985 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
11986 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
11987 typename T26,
typename T27,
typename T28,
typename T29,
typename T30>
11991 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
11992 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
11993 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30) : v1_(v1), v2_(v2), v3_(v3),
11994 v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
11995 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
11996 v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
11997 v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
11998 v29_(v29), v30_(v30) {}
12000 template <
typename T>
12002 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
12003 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
12004 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
12005 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
12006 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
12007 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
12008 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
12009 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
12010 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
12011 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
12012 static_cast<T>(v30_)};
12052 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12053 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12054 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12055 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12056 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12057 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
12062 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12063 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12064 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31) : v1_(v1), v2_(v2),
12065 v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
12066 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
12067 v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
12068 v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
12069 v29_(v29), v30_(v30), v31_(v31) {}
12071 template <
typename T>
12073 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
12074 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
12075 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
12076 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
12077 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
12078 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
12079 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
12080 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
12081 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
12082 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
12083 static_cast<T>(v30_),
static_cast<T>(v31_)};
12124 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12125 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12126 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12127 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12128 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12129 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
12130 typename T31,
typename T32>
12134 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12135 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12136 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32) : v1_(v1),
12137 v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
12138 v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
12139 v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21),
12140 v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27),
12141 v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32) {}
12143 template <
typename T>
12145 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
12146 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
12147 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
12148 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
12149 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
12150 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
12151 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
12152 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
12153 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
12154 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
12155 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_)};
12197 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12198 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12199 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12200 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12201 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12202 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
12203 typename T31,
typename T32,
typename T33>
12207 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12208 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12209 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32,
12210 T33 v33) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
12211 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
12212 v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
12213 v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
12214 v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
12217 template <
typename T>
12219 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
12220 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
12221 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
12222 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
12223 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
12224 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
12225 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
12226 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
12227 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
12228 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
12229 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
12230 static_cast<T>(v33_)};
12273 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12274 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12275 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12276 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12277 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12278 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
12279 typename T31,
typename T32,
typename T33,
typename T34>
12283 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12284 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12285 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
12286 T34 v34) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
12287 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
12288 v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
12289 v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
12290 v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
12291 v33_(v33), v34_(v34) {}
12293 template <
typename T>
12295 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
12296 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
12297 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
12298 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
12299 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
12300 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
12301 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
12302 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
12303 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
12304 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
12305 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
12306 static_cast<T>(v33_), static_cast<T>(v34_)};
12350 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12351 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12352 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12353 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12354 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12355 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
12356 typename T31,
typename T32,
typename T33,
typename T34,
typename T35>
12360 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12361 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12362 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
12363 T34 v34, T35 v35) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
12364 v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13),
12365 v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19),
12366 v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25),
12367 v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31),
12368 v32_(v32), v33_(v33), v34_(v34), v35_(v35) {}
12370 template <
typename T>
12372 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
12373 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
12374 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
12375 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
12376 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
12377 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
12378 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
12379 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
12380 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
12381 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
12382 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
12383 static_cast<T>(v33_), static_cast<T>(v34_),
static_cast<T>(v35_)};
12428 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12429 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12430 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12431 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12432 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12433 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
12434 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
12439 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12440 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12441 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
12442 T34 v34, T35 v35, T36 v36) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
12443 v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12),
12444 v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18),
12445 v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24),
12446 v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30),
12447 v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36) {}
12449 template <
typename T>
12451 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
12452 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
12453 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
12454 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
12455 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
12456 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
12457 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
12458 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
12459 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
12460 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
12461 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
12462 static_cast<T>(v33_), static_cast<T>(v34_),
static_cast<T>(v35_),
12463 static_cast<T>(v36_)};
12509 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12510 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12511 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12512 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12513 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12514 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
12515 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
12516 typename T36,
typename T37>
12520 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12521 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12522 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
12523 T34 v34, T35 v35, T36 v36, T37 v37) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
12524 v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
12525 v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17),
12526 v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23),
12527 v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29),
12528 v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35),
12529 v36_(v36), v37_(v37) {}
12531 template <
typename T>
12533 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
12534 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
12535 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
12536 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
12537 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
12538 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
12539 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
12540 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
12541 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
12542 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
12543 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
12544 static_cast<T>(v33_), static_cast<T>(v34_),
static_cast<T>(v35_),
12545 static_cast<T>(v36_),
static_cast<T>(v37_)};
12592 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12593 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12594 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12595 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12596 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12597 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
12598 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
12599 typename T36,
typename T37,
typename T38>
12603 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12604 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12605 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
12606 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38) : v1_(v1), v2_(v2), v3_(v3),
12607 v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
12608 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
12609 v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
12610 v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
12611 v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34),
12612 v35_(v35), v36_(v36), v37_(v37), v38_(v38) {}
12614 template <
typename T>
12616 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
12617 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
12618 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
12619 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
12620 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
12621 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
12622 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
12623 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
12624 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
12625 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
12626 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
12627 static_cast<T>(v33_), static_cast<T>(v34_),
static_cast<T>(v35_),
12628 static_cast<T>(v36_),
static_cast<T>(v37_), static_cast<T>(v38_)};
12676 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12677 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12678 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12679 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12680 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12681 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
12682 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
12683 typename T36,
typename T37,
typename T38,
typename T39>
12687 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12688 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12689 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
12690 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39) : v1_(v1), v2_(v2),
12691 v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
12692 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
12693 v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
12694 v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
12695 v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34),
12696 v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39) {}
12698 template <
typename T>
12700 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
12701 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
12702 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
12703 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
12704 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
12705 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
12706 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
12707 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
12708 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
12709 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
12710 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
12711 static_cast<T>(v33_), static_cast<T>(v34_),
static_cast<T>(v35_),
12712 static_cast<T>(v36_),
static_cast<T>(v37_), static_cast<T>(v38_),
12713 static_cast<T>(v39_)};
12762 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12763 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12764 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12765 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12766 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12767 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
12768 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
12769 typename T36,
typename T37,
typename T38,
typename T39,
typename T40>
12773 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12774 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12775 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
12776 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40) : v1_(v1),
12777 v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
12778 v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
12779 v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21),
12780 v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27),
12781 v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33),
12782 v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39),
12785 template <
typename T>
12787 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
12788 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
12789 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
12790 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
12791 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
12792 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
12793 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
12794 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
12795 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
12796 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
12797 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
12798 static_cast<T>(v33_), static_cast<T>(v34_),
static_cast<T>(v35_),
12799 static_cast<T>(v36_),
static_cast<T>(v37_), static_cast<T>(v38_),
12800 static_cast<T>(v39_), static_cast<T>(v40_)};
12850 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12851 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12852 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12853 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12854 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12855 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
12856 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
12857 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
12862 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12863 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12864 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
12865 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40,
12866 T41 v41) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
12867 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
12868 v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
12869 v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
12870 v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
12871 v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38),
12872 v39_(v39), v40_(v40), v41_(v41) {}
12874 template <
typename T>
12876 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
12877 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
12878 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
12879 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
12880 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
12881 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
12882 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
12883 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
12884 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
12885 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
12886 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
12887 static_cast<T>(v33_), static_cast<T>(v34_),
static_cast<T>(v35_),
12888 static_cast<T>(v36_),
static_cast<T>(v37_), static_cast<T>(v38_),
12889 static_cast<T>(v39_), static_cast<T>(v40_),
static_cast<T>(v41_)};
12940 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
12941 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
12942 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
12943 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
12944 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
12945 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
12946 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
12947 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
12948 typename T41,
typename T42>
12952 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
12953 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
12954 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
12955 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
12956 T42 v42) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
12957 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
12958 v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
12959 v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
12960 v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
12961 v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38),
12962 v39_(v39), v40_(v40), v41_(v41), v42_(v42) {}
12964 template <
typename T>
12966 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
12967 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
12968 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
12969 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
12970 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
12971 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
12972 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
12973 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
12974 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
12975 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
12976 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
12977 static_cast<T>(v33_), static_cast<T>(v34_),
static_cast<T>(v35_),
12978 static_cast<T>(v36_),
static_cast<T>(v37_), static_cast<T>(v38_),
12979 static_cast<T>(v39_), static_cast<T>(v40_),
static_cast<T>(v41_),
12980 static_cast<T>(v42_)};
13032 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13033 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13034 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13035 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13036 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13037 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13038 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
13039 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
13040 typename T41,
typename T42,
typename T43>
13044 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13045 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13046 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13047 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
13048 T42 v42, T43 v43) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
13049 v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13),
13050 v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19),
13051 v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25),
13052 v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31),
13053 v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37),
13054 v38_(v38), v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43) {}
13056 template <
typename T>
13058 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
13059 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
13060 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
13061 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
13062 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
13063 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
13064 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
13065 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
13066 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
13067 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
13068 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
13069 static_cast<T>(v33_), static_cast<T>(v34_),
static_cast<T>(v35_),
13070 static_cast<T>(v36_),
static_cast<T>(v37_), static_cast<T>(v38_),
13071 static_cast<T>(v39_), static_cast<T>(v40_),
static_cast<T>(v41_),
13072 static_cast<T>(v42_),
static_cast<T>(v43_)};
13125 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13126 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13127 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13128 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13129 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13130 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13131 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
13132 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
13133 typename T41,
typename T42,
typename T43,
typename T44>
13137 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13138 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13139 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13140 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
13141 T42 v42, T43 v43, T44 v44) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
13142 v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12),
13143 v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18),
13144 v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24),
13145 v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30),
13146 v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36),
13147 v37_(v37), v38_(v38), v39_(v39), v40_(v40), v41_(v41), v42_(v42),
13148 v43_(v43), v44_(v44) {}
13150 template <
typename T>
13152 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
13153 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
13154 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
13155 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
13156 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
13157 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
13158 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
13159 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
13160 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
13161 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
13162 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
13163 static_cast<T>(v33_), static_cast<T>(v34_),
static_cast<T>(v35_),
13164 static_cast<T>(v36_),
static_cast<T>(v37_), static_cast<T>(v38_),
13165 static_cast<T>(v39_), static_cast<T>(v40_),
static_cast<T>(v41_),
13166 static_cast<T>(v42_),
static_cast<T>(v43_), static_cast<T>(v44_)};
13220 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13221 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13222 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13223 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13224 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13225 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13226 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
13227 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
13228 typename T41,
typename T42,
typename T43,
typename T44,
typename T45>
13232 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13233 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13234 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13235 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
13236 T42 v42, T43 v43, T44 v44, T45 v45) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
13237 v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
13238 v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17),
13239 v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23),
13240 v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29),
13241 v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35),
13242 v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40), v41_(v41),
13243 v42_(v42), v43_(v43), v44_(v44), v45_(v45) {}
13245 template <
typename T>
13247 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
13248 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
13249 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
13250 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
13251 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
13252 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
13253 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
13254 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
13255 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
13256 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
13257 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
13258 static_cast<T>(v33_), static_cast<T>(v34_),
static_cast<T>(v35_),
13259 static_cast<T>(v36_),
static_cast<T>(v37_), static_cast<T>(v38_),
13260 static_cast<T>(v39_), static_cast<T>(v40_),
static_cast<T>(v41_),
13261 static_cast<T>(v42_),
static_cast<T>(v43_), static_cast<T>(v44_),
13262 static_cast<T>(v45_)};
13317 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13318 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13319 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13320 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13321 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13322 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13323 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
13324 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
13325 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
13330 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13331 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13332 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13333 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
13334 T42 v42, T43 v43, T44 v44, T45 v45, T46 v46) : v1_(v1), v2_(v2), v3_(v3),
13335 v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
13336 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
13337 v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
13338 v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
13339 v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34),
13340 v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40),
13341 v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45), v46_(v46) {}
13343 template <
typename T>
13345 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
13346 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
13347 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
13348 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
13349 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
13350 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
13351 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
13352 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
13353 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
13354 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
13355 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
13356 static_cast<T>(v33_), static_cast<T>(v34_),
static_cast<T>(v35_),
13357 static_cast<T>(v36_),
static_cast<T>(v37_), static_cast<T>(v38_),
13358 static_cast<T>(v39_), static_cast<T>(v40_),
static_cast<T>(v41_),
13359 static_cast<T>(v42_),
static_cast<T>(v43_), static_cast<T>(v44_),
13360 static_cast<T>(v45_), static_cast<T>(v46_)};
13416 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13417 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13418 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13419 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13420 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13421 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13422 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
13423 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
13424 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
13425 typename T46,
typename T47>
13429 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13430 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13431 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13432 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
13433 T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47) : v1_(v1), v2_(v2),
13434 v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
13435 v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
13436 v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
13437 v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
13438 v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34),
13439 v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40),
13440 v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45), v46_(v46),
13443 template <
typename T>
13445 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
13446 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
13447 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
13448 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
13449 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
13450 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
13451 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
13452 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
13453 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
13454 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
13455 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
13456 static_cast<T>(v33_), static_cast<T>(v34_),
static_cast<T>(v35_),
13457 static_cast<T>(v36_),
static_cast<T>(v37_), static_cast<T>(v38_),
13458 static_cast<T>(v39_), static_cast<T>(v40_),
static_cast<T>(v41_),
13459 static_cast<T>(v42_),
static_cast<T>(v43_), static_cast<T>(v44_),
13460 static_cast<T>(v45_), static_cast<T>(v46_),
static_cast<T>(v47_)};
13517 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13518 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13519 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13520 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13521 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13522 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13523 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
13524 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
13525 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
13526 typename T46,
typename T47,
typename T48>
13530 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13531 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13532 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13533 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
13534 T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48) : v1_(v1),
13535 v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
13536 v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
13537 v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21),
13538 v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27),
13539 v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33),
13540 v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39),
13541 v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45),
13542 v46_(v46), v47_(v47), v48_(v48) {}
13544 template <
typename T>
13546 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
13547 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
13548 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
13549 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
13550 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
13551 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
13552 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
13553 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
13554 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
13555 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
13556 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
13557 static_cast<T>(v33_), static_cast<T>(v34_),
static_cast<T>(v35_),
13558 static_cast<T>(v36_),
static_cast<T>(v37_), static_cast<T>(v38_),
13559 static_cast<T>(v39_), static_cast<T>(v40_),
static_cast<T>(v41_),
13560 static_cast<T>(v42_),
static_cast<T>(v43_), static_cast<T>(v44_),
13561 static_cast<T>(v45_), static_cast<T>(v46_),
static_cast<T>(v47_),
13562 static_cast<T>(v48_)};
13620 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13621 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13622 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13623 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13624 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13625 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13626 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
13627 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
13628 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
13629 typename T46,
typename T47,
typename T48,
typename T49>
13633 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13634 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13635 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13636 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
13637 T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48,
13638 T49 v49) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
13639 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
13640 v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
13641 v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
13642 v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
13643 v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38),
13644 v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44),
13645 v45_(v45), v46_(v46), v47_(v47), v48_(v48), v49_(v49) {}
13647 template <
typename T>
13649 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
13650 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
13651 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
13652 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
13653 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
13654 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
13655 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
13656 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
13657 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
13658 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
13659 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
13660 static_cast<T>(v33_), static_cast<T>(v34_),
static_cast<T>(v35_),
13661 static_cast<T>(v36_),
static_cast<T>(v37_), static_cast<T>(v38_),
13662 static_cast<T>(v39_), static_cast<T>(v40_),
static_cast<T>(v41_),
13663 static_cast<T>(v42_),
static_cast<T>(v43_), static_cast<T>(v44_),
13664 static_cast<T>(v45_), static_cast<T>(v46_),
static_cast<T>(v47_),
13665 static_cast<T>(v48_),
static_cast<T>(v49_)};
13724 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13725 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
13726 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
13727 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
13728 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
13729 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
13730 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
13731 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
13732 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
13733 typename T46,
typename T47,
typename T48,
typename T49,
typename T50>
13737 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
13738 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
13739 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
13740 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
13741 T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48, T49 v49,
13742 T50 v50) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
13743 v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
13744 v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
13745 v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
13746 v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
13747 v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38),
13748 v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44),
13749 v45_(v45), v46_(v46), v47_(v47), v48_(v48), v49_(v49), v50_(v50) {}
13751 template <
typename T>
13753 const T array[] = {
static_cast<T>(v1_), static_cast<T>(v2_),
13754 static_cast<T>(v3_), static_cast<T>(v4_),
static_cast<T>(v5_),
13755 static_cast<T>(v6_),
static_cast<T>(v7_), static_cast<T>(v8_),
13756 static_cast<T>(v9_), static_cast<T>(v10_),
static_cast<T>(v11_),
13757 static_cast<T>(v12_),
static_cast<T>(v13_), static_cast<T>(v14_),
13758 static_cast<T>(v15_), static_cast<T>(v16_),
static_cast<T>(v17_),
13759 static_cast<T>(v18_),
static_cast<T>(v19_), static_cast<T>(v20_),
13760 static_cast<T>(v21_), static_cast<T>(v22_),
static_cast<T>(v23_),
13761 static_cast<T>(v24_),
static_cast<T>(v25_), static_cast<T>(v26_),
13762 static_cast<T>(v27_), static_cast<T>(v28_),
static_cast<T>(v29_),
13763 static_cast<T>(v30_),
static_cast<T>(v31_), static_cast<T>(v32_),
13764 static_cast<T>(v33_), static_cast<T>(v34_),
static_cast<T>(v35_),
13765 static_cast<T>(v36_),
static_cast<T>(v37_), static_cast<T>(v38_),
13766 static_cast<T>(v39_), static_cast<T>(v40_),
static_cast<T>(v41_),
13767 static_cast<T>(v42_),
static_cast<T>(v43_), static_cast<T>(v44_),
13768 static_cast<T>(v45_), static_cast<T>(v46_),
static_cast<T>(v47_),
13769 static_cast<T>(v48_),
static_cast<T>(v49_), static_cast<T>(v50_)};
13829 # if GTEST_HAS_COMBINE
13835 template <
typename T1,
typename T2>
13843 : g1_(g1), g2_(g2) {}
13847 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin());
13850 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end());
13862 begin1_(g1.
begin()), end1_(g1.
end()), current1_(current1),
13863 begin2_(g2.
begin()), end2_(g2.
end()), current2_(current2) {
13864 ComputeCurrentValue();
13866 virtual ~Iterator() {}
13868 virtual const ParamGeneratorInterface<ParamType>* BaseGenerator()
const {
13873 virtual void Advance() {
13876 if (current2_ == end2_) {
13877 current2_ = begin2_;
13880 ComputeCurrentValue();
13882 virtual ParamIteratorInterface<ParamType>* Clone()
const {
13883 return new Iterator(*
this);
13885 virtual const ParamType* Current()
const {
return ¤t_value_; }
13886 virtual bool Equals(
const ParamIteratorInterface<ParamType>& other)
const {
13889 GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
13890 <<
"The program attempted to compare iterators "
13891 <<
"from different generators." << std::endl;
13892 const Iterator* typed_other =
13893 CheckedDowncastToActualType<const Iterator>(&other);
13897 return (AtEnd() && typed_other->AtEnd()) ||
13899 current1_ == typed_other->current1_ &&
13900 current2_ == typed_other->current2_);
13904 Iterator(
const Iterator& other)
13905 : base_(other.base_),
13906 begin1_(other.begin1_),
13907 end1_(other.end1_),
13908 current1_(other.current1_),
13909 begin2_(other.begin2_),
13910 end2_(other.end2_),
13911 current2_(other.current2_) {
13912 ComputeCurrentValue();
13915 void ComputeCurrentValue() {
13917 current_value_ = ParamType(*current1_, *current2_);
13919 bool AtEnd()
const {
13923 current1_ == end1_ ||
13924 current2_ == end2_;
13928 void operator=(
const Iterator& other);
13930 const ParamGeneratorInterface<ParamType>*
const base_;
13939 ParamType current_value_;
13943 void operator=(
const CartesianProductGenerator2& other);
13945 const ParamGenerator<T1> g1_;
13946 const ParamGenerator<T2> g2_;
13950 template <
typename T1,
typename T2,
typename T3>
13958 : g1_(g1), g2_(g2), g3_(g3) {}
13962 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
13966 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end());
13980 begin1_(g1.
begin()), end1_(g1.
end()), current1_(current1),
13981 begin2_(g2.
begin()), end2_(g2.
end()), current2_(current2),
13982 begin3_(g3.
begin()), end3_(g3.
end()), current3_(current3) {
13983 ComputeCurrentValue();
13985 virtual ~Iterator() {}
13987 virtual const ParamGeneratorInterface<ParamType>* BaseGenerator()
const {
13992 virtual void Advance() {
13995 if (current3_ == end3_) {
13996 current3_ = begin3_;
13999 if (current2_ == end2_) {
14000 current2_ = begin2_;
14003 ComputeCurrentValue();
14005 virtual ParamIteratorInterface<ParamType>* Clone()
const {
14006 return new Iterator(*
this);
14008 virtual const ParamType* Current()
const {
return ¤t_value_; }
14009 virtual bool Equals(
const ParamIteratorInterface<ParamType>& other)
const {
14012 GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
14013 <<
"The program attempted to compare iterators "
14014 <<
"from different generators." << std::endl;
14015 const Iterator* typed_other =
14016 CheckedDowncastToActualType<const Iterator>(&other);
14020 return (AtEnd() && typed_other->AtEnd()) ||
14022 current1_ == typed_other->current1_ &&
14023 current2_ == typed_other->current2_ &&
14024 current3_ == typed_other->current3_);
14028 Iterator(
const Iterator& other)
14029 : base_(other.base_),
14030 begin1_(other.begin1_),
14031 end1_(other.end1_),
14032 current1_(other.current1_),
14033 begin2_(other.begin2_),
14034 end2_(other.end2_),
14035 current2_(other.current2_),
14036 begin3_(other.begin3_),
14037 end3_(other.end3_),
14038 current3_(other.current3_) {
14039 ComputeCurrentValue();
14042 void ComputeCurrentValue() {
14044 current_value_ = ParamType(*current1_, *current2_, *current3_);
14046 bool AtEnd()
const {
14050 current1_ == end1_ ||
14051 current2_ == end2_ ||
14052 current3_ == end3_;
14056 void operator=(
const Iterator& other);
14058 const ParamGeneratorInterface<ParamType>*
const base_;
14070 ParamType current_value_;
14074 void operator=(
const CartesianProductGenerator3& other);
14076 const ParamGenerator<T1> g1_;
14077 const ParamGenerator<T2> g2_;
14078 const ParamGenerator<T3> g3_;
14082 template <
typename T1,
typename T2,
typename T3,
typename T4>
14091 : g1_(g1), g2_(g2), g3_(g3), g4_(g4) {}
14095 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
14096 g3_.begin(), g4_, g4_.begin());
14099 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
14116 begin1_(g1.
begin()), end1_(g1.
end()), current1_(current1),
14117 begin2_(g2.
begin()), end2_(g2.
end()), current2_(current2),
14118 begin3_(g3.
begin()), end3_(g3.
end()), current3_(current3),
14119 begin4_(g4.
begin()), end4_(g4.
end()), current4_(current4) {
14120 ComputeCurrentValue();
14122 virtual ~Iterator() {}
14124 virtual const ParamGeneratorInterface<ParamType>* BaseGenerator()
const {
14129 virtual void Advance() {
14132 if (current4_ == end4_) {
14133 current4_ = begin4_;
14136 if (current3_ == end3_) {
14137 current3_ = begin3_;
14140 if (current2_ == end2_) {
14141 current2_ = begin2_;
14144 ComputeCurrentValue();
14146 virtual ParamIteratorInterface<ParamType>* Clone()
const {
14147 return new Iterator(*
this);
14149 virtual const ParamType* Current()
const {
return ¤t_value_; }
14150 virtual bool Equals(
const ParamIteratorInterface<ParamType>& other)
const {
14153 GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
14154 <<
"The program attempted to compare iterators "
14155 <<
"from different generators." << std::endl;
14156 const Iterator* typed_other =
14157 CheckedDowncastToActualType<const Iterator>(&other);
14161 return (AtEnd() && typed_other->AtEnd()) ||
14163 current1_ == typed_other->current1_ &&
14164 current2_ == typed_other->current2_ &&
14165 current3_ == typed_other->current3_ &&
14166 current4_ == typed_other->current4_);
14170 Iterator(
const Iterator& other)
14171 : base_(other.base_),
14172 begin1_(other.begin1_),
14173 end1_(other.end1_),
14174 current1_(other.current1_),
14175 begin2_(other.begin2_),
14176 end2_(other.end2_),
14177 current2_(other.current2_),
14178 begin3_(other.begin3_),
14179 end3_(other.end3_),
14180 current3_(other.current3_),
14181 begin4_(other.begin4_),
14182 end4_(other.end4_),
14183 current4_(other.current4_) {
14184 ComputeCurrentValue();
14187 void ComputeCurrentValue() {
14189 current_value_ = ParamType(*current1_, *current2_, *current3_,
14192 bool AtEnd()
const {
14196 current1_ == end1_ ||
14197 current2_ == end2_ ||
14198 current3_ == end3_ ||
14199 current4_ == end4_;
14203 void operator=(
const Iterator& other);
14205 const ParamGeneratorInterface<ParamType>*
const base_;
14220 ParamType current_value_;
14224 void operator=(
const CartesianProductGenerator4& other);
14226 const ParamGenerator<T1> g1_;
14227 const ParamGenerator<T2> g2_;
14228 const ParamGenerator<T3> g3_;
14229 const ParamGenerator<T4> g4_;
14233 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
14242 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5) {}
14246 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
14247 g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin());
14250 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
14251 g4_, g4_.end(), g5_, g5_.end());
14269 begin1_(g1.
begin()), end1_(g1.
end()), current1_(current1),
14270 begin2_(g2.
begin()), end2_(g2.
end()), current2_(current2),
14271 begin3_(g3.
begin()), end3_(g3.
end()), current3_(current3),
14272 begin4_(g4.
begin()), end4_(g4.
end()), current4_(current4),
14273 begin5_(g5.
begin()), end5_(g5.
end()), current5_(current5) {
14274 ComputeCurrentValue();
14276 virtual ~Iterator() {}
14278 virtual const ParamGeneratorInterface<ParamType>* BaseGenerator()
const {
14283 virtual void Advance() {
14286 if (current5_ == end5_) {
14287 current5_ = begin5_;
14290 if (current4_ == end4_) {
14291 current4_ = begin4_;
14294 if (current3_ == end3_) {
14295 current3_ = begin3_;
14298 if (current2_ == end2_) {
14299 current2_ = begin2_;
14302 ComputeCurrentValue();
14304 virtual ParamIteratorInterface<ParamType>* Clone()
const {
14305 return new Iterator(*
this);
14307 virtual const ParamType* Current()
const {
return ¤t_value_; }
14308 virtual bool Equals(
const ParamIteratorInterface<ParamType>& other)
const {
14311 GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
14312 <<
"The program attempted to compare iterators "
14313 <<
"from different generators." << std::endl;
14314 const Iterator* typed_other =
14315 CheckedDowncastToActualType<const Iterator>(&other);
14319 return (AtEnd() && typed_other->AtEnd()) ||
14321 current1_ == typed_other->current1_ &&
14322 current2_ == typed_other->current2_ &&
14323 current3_ == typed_other->current3_ &&
14324 current4_ == typed_other->current4_ &&
14325 current5_ == typed_other->current5_);
14329 Iterator(
const Iterator& other)
14330 : base_(other.base_),
14331 begin1_(other.begin1_),
14332 end1_(other.end1_),
14333 current1_(other.current1_),
14334 begin2_(other.begin2_),
14335 end2_(other.end2_),
14336 current2_(other.current2_),
14337 begin3_(other.begin3_),
14338 end3_(other.end3_),
14339 current3_(other.current3_),
14340 begin4_(other.begin4_),
14341 end4_(other.end4_),
14342 current4_(other.current4_),
14343 begin5_(other.begin5_),
14344 end5_(other.end5_),
14345 current5_(other.current5_) {
14346 ComputeCurrentValue();
14349 void ComputeCurrentValue() {
14351 current_value_ = ParamType(*current1_, *current2_, *current3_,
14352 *current4_, *current5_);
14354 bool AtEnd()
const {
14358 current1_ == end1_ ||
14359 current2_ == end2_ ||
14360 current3_ == end3_ ||
14361 current4_ == end4_ ||
14362 current5_ == end5_;
14366 void operator=(
const Iterator& other);
14368 const ParamGeneratorInterface<ParamType>*
const base_;
14386 ParamType current_value_;
14390 void operator=(
const CartesianProductGenerator5& other);
14392 const ParamGenerator<T1> g1_;
14393 const ParamGenerator<T2> g2_;
14394 const ParamGenerator<T3> g3_;
14395 const ParamGenerator<T4> g4_;
14396 const ParamGenerator<T5> g5_;
14400 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
14412 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6) {}
14416 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
14417 g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin());
14420 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
14421 g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end());
14441 begin1_(g1.
begin()), end1_(g1.
end()), current1_(current1),
14442 begin2_(g2.
begin()), end2_(g2.
end()), current2_(current2),
14443 begin3_(g3.
begin()), end3_(g3.
end()), current3_(current3),
14444 begin4_(g4.
begin()), end4_(g4.
end()), current4_(current4),
14445 begin5_(g5.
begin()), end5_(g5.
end()), current5_(current5),
14446 begin6_(g6.
begin()), end6_(g6.
end()), current6_(current6) {
14447 ComputeCurrentValue();
14449 virtual ~Iterator() {}
14451 virtual const ParamGeneratorInterface<ParamType>* BaseGenerator()
const {
14456 virtual void Advance() {
14459 if (current6_ == end6_) {
14460 current6_ = begin6_;
14463 if (current5_ == end5_) {
14464 current5_ = begin5_;
14467 if (current4_ == end4_) {
14468 current4_ = begin4_;
14471 if (current3_ == end3_) {
14472 current3_ = begin3_;
14475 if (current2_ == end2_) {
14476 current2_ = begin2_;
14479 ComputeCurrentValue();
14481 virtual ParamIteratorInterface<ParamType>* Clone()
const {
14482 return new Iterator(*
this);
14484 virtual const ParamType* Current()
const {
return ¤t_value_; }
14485 virtual bool Equals(
const ParamIteratorInterface<ParamType>& other)
const {
14488 GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
14489 <<
"The program attempted to compare iterators "
14490 <<
"from different generators." << std::endl;
14491 const Iterator* typed_other =
14492 CheckedDowncastToActualType<const Iterator>(&other);
14496 return (AtEnd() && typed_other->AtEnd()) ||
14498 current1_ == typed_other->current1_ &&
14499 current2_ == typed_other->current2_ &&
14500 current3_ == typed_other->current3_ &&
14501 current4_ == typed_other->current4_ &&
14502 current5_ == typed_other->current5_ &&
14503 current6_ == typed_other->current6_);
14507 Iterator(
const Iterator& other)
14508 : base_(other.base_),
14509 begin1_(other.begin1_),
14510 end1_(other.end1_),
14511 current1_(other.current1_),
14512 begin2_(other.begin2_),
14513 end2_(other.end2_),
14514 current2_(other.current2_),
14515 begin3_(other.begin3_),
14516 end3_(other.end3_),
14517 current3_(other.current3_),
14518 begin4_(other.begin4_),
14519 end4_(other.end4_),
14520 current4_(other.current4_),
14521 begin5_(other.begin5_),
14522 end5_(other.end5_),
14523 current5_(other.current5_),
14524 begin6_(other.begin6_),
14525 end6_(other.end6_),
14526 current6_(other.current6_) {
14527 ComputeCurrentValue();
14530 void ComputeCurrentValue() {
14532 current_value_ = ParamType(*current1_, *current2_, *current3_,
14533 *current4_, *current5_, *current6_);
14535 bool AtEnd()
const {
14539 current1_ == end1_ ||
14540 current2_ == end2_ ||
14541 current3_ == end3_ ||
14542 current4_ == end4_ ||
14543 current5_ == end5_ ||
14544 current6_ == end6_;
14548 void operator=(
const Iterator& other);
14550 const ParamGeneratorInterface<ParamType>*
const base_;
14571 ParamType current_value_;
14575 void operator=(
const CartesianProductGenerator6& other);
14577 const ParamGenerator<T1> g1_;
14578 const ParamGenerator<T2> g2_;
14579 const ParamGenerator<T3> g3_;
14580 const ParamGenerator<T4> g4_;
14581 const ParamGenerator<T5> g5_;
14582 const ParamGenerator<T6> g6_;
14586 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
14587 typename T6,
typename T7>
14592 typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7>
ParamType;
14598 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7) {}
14602 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
14603 g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_,
14607 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
14608 g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end());
14630 begin1_(g1.
begin()), end1_(g1.
end()), current1_(current1),
14631 begin2_(g2.
begin()), end2_(g2.
end()), current2_(current2),
14632 begin3_(g3.
begin()), end3_(g3.
end()), current3_(current3),
14633 begin4_(g4.
begin()), end4_(g4.
end()), current4_(current4),
14634 begin5_(g5.
begin()), end5_(g5.
end()), current5_(current5),
14635 begin6_(g6.
begin()), end6_(g6.
end()), current6_(current6),
14636 begin7_(g7.
begin()), end7_(g7.
end()), current7_(current7) {
14637 ComputeCurrentValue();
14639 virtual ~Iterator() {}
14641 virtual const ParamGeneratorInterface<ParamType>* BaseGenerator()
const {
14646 virtual void Advance() {
14649 if (current7_ == end7_) {
14650 current7_ = begin7_;
14653 if (current6_ == end6_) {
14654 current6_ = begin6_;
14657 if (current5_ == end5_) {
14658 current5_ = begin5_;
14661 if (current4_ == end4_) {
14662 current4_ = begin4_;
14665 if (current3_ == end3_) {
14666 current3_ = begin3_;
14669 if (current2_ == end2_) {
14670 current2_ = begin2_;
14673 ComputeCurrentValue();
14675 virtual ParamIteratorInterface<ParamType>* Clone()
const {
14676 return new Iterator(*
this);
14678 virtual const ParamType* Current()
const {
return ¤t_value_; }
14679 virtual bool Equals(
const ParamIteratorInterface<ParamType>& other)
const {
14682 GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
14683 <<
"The program attempted to compare iterators "
14684 <<
"from different generators." << std::endl;
14685 const Iterator* typed_other =
14686 CheckedDowncastToActualType<const Iterator>(&other);
14690 return (AtEnd() && typed_other->AtEnd()) ||
14692 current1_ == typed_other->current1_ &&
14693 current2_ == typed_other->current2_ &&
14694 current3_ == typed_other->current3_ &&
14695 current4_ == typed_other->current4_ &&
14696 current5_ == typed_other->current5_ &&
14697 current6_ == typed_other->current6_ &&
14698 current7_ == typed_other->current7_);
14702 Iterator(
const Iterator& other)
14703 : base_(other.base_),
14704 begin1_(other.begin1_),
14705 end1_(other.end1_),
14706 current1_(other.current1_),
14707 begin2_(other.begin2_),
14708 end2_(other.end2_),
14709 current2_(other.current2_),
14710 begin3_(other.begin3_),
14711 end3_(other.end3_),
14712 current3_(other.current3_),
14713 begin4_(other.begin4_),
14714 end4_(other.end4_),
14715 current4_(other.current4_),
14716 begin5_(other.begin5_),
14717 end5_(other.end5_),
14718 current5_(other.current5_),
14719 begin6_(other.begin6_),
14720 end6_(other.end6_),
14721 current6_(other.current6_),
14722 begin7_(other.begin7_),
14723 end7_(other.end7_),
14724 current7_(other.current7_) {
14725 ComputeCurrentValue();
14728 void ComputeCurrentValue() {
14730 current_value_ = ParamType(*current1_, *current2_, *current3_,
14731 *current4_, *current5_, *current6_, *current7_);
14733 bool AtEnd()
const {
14737 current1_ == end1_ ||
14738 current2_ == end2_ ||
14739 current3_ == end3_ ||
14740 current4_ == end4_ ||
14741 current5_ == end5_ ||
14742 current6_ == end6_ ||
14743 current7_ == end7_;
14747 void operator=(
const Iterator& other);
14749 const ParamGeneratorInterface<ParamType>*
const base_;
14773 ParamType current_value_;
14777 void operator=(
const CartesianProductGenerator7& other);
14779 const ParamGenerator<T1> g1_;
14780 const ParamGenerator<T2> g2_;
14781 const ParamGenerator<T3> g3_;
14782 const ParamGenerator<T4> g4_;
14783 const ParamGenerator<T5> g5_;
14784 const ParamGenerator<T6> g6_;
14785 const ParamGenerator<T7> g7_;
14789 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
14790 typename T6,
typename T7,
typename T8>
14795 typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8>
ParamType;
14802 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7),
14807 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
14808 g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_,
14809 g7_.begin(), g8_, g8_.begin());
14812 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
14813 g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end(), g8_,
14838 begin1_(g1.
begin()), end1_(g1.
end()), current1_(current1),
14839 begin2_(g2.
begin()), end2_(g2.
end()), current2_(current2),
14840 begin3_(g3.
begin()), end3_(g3.
end()), current3_(current3),
14841 begin4_(g4.
begin()), end4_(g4.
end()), current4_(current4),
14842 begin5_(g5.
begin()), end5_(g5.
end()), current5_(current5),
14843 begin6_(g6.
begin()), end6_(g6.
end()), current6_(current6),
14844 begin7_(g7.
begin()), end7_(g7.
end()), current7_(current7),
14845 begin8_(g8.
begin()), end8_(g8.
end()), current8_(current8) {
14846 ComputeCurrentValue();
14848 virtual ~Iterator() {}
14850 virtual const ParamGeneratorInterface<ParamType>* BaseGenerator()
const {
14855 virtual void Advance() {
14858 if (current8_ == end8_) {
14859 current8_ = begin8_;
14862 if (current7_ == end7_) {
14863 current7_ = begin7_;
14866 if (current6_ == end6_) {
14867 current6_ = begin6_;
14870 if (current5_ == end5_) {
14871 current5_ = begin5_;
14874 if (current4_ == end4_) {
14875 current4_ = begin4_;
14878 if (current3_ == end3_) {
14879 current3_ = begin3_;
14882 if (current2_ == end2_) {
14883 current2_ = begin2_;
14886 ComputeCurrentValue();
14888 virtual ParamIteratorInterface<ParamType>* Clone()
const {
14889 return new Iterator(*
this);
14891 virtual const ParamType* Current()
const {
return ¤t_value_; }
14892 virtual bool Equals(
const ParamIteratorInterface<ParamType>& other)
const {
14895 GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
14896 <<
"The program attempted to compare iterators "
14897 <<
"from different generators." << std::endl;
14898 const Iterator* typed_other =
14899 CheckedDowncastToActualType<const Iterator>(&other);
14903 return (AtEnd() && typed_other->AtEnd()) ||
14905 current1_ == typed_other->current1_ &&
14906 current2_ == typed_other->current2_ &&
14907 current3_ == typed_other->current3_ &&
14908 current4_ == typed_other->current4_ &&
14909 current5_ == typed_other->current5_ &&
14910 current6_ == typed_other->current6_ &&
14911 current7_ == typed_other->current7_ &&
14912 current8_ == typed_other->current8_);
14916 Iterator(
const Iterator& other)
14917 : base_(other.base_),
14918 begin1_(other.begin1_),
14919 end1_(other.end1_),
14920 current1_(other.current1_),
14921 begin2_(other.begin2_),
14922 end2_(other.end2_),
14923 current2_(other.current2_),
14924 begin3_(other.begin3_),
14925 end3_(other.end3_),
14926 current3_(other.current3_),
14927 begin4_(other.begin4_),
14928 end4_(other.end4_),
14929 current4_(other.current4_),
14930 begin5_(other.begin5_),
14931 end5_(other.end5_),
14932 current5_(other.current5_),
14933 begin6_(other.begin6_),
14934 end6_(other.end6_),
14935 current6_(other.current6_),
14936 begin7_(other.begin7_),
14937 end7_(other.end7_),
14938 current7_(other.current7_),
14939 begin8_(other.begin8_),
14940 end8_(other.end8_),
14941 current8_(other.current8_) {
14942 ComputeCurrentValue();
14945 void ComputeCurrentValue() {
14947 current_value_ = ParamType(*current1_, *current2_, *current3_,
14948 *current4_, *current5_, *current6_, *current7_, *current8_);
14950 bool AtEnd()
const {
14954 current1_ == end1_ ||
14955 current2_ == end2_ ||
14956 current3_ == end3_ ||
14957 current4_ == end4_ ||
14958 current5_ == end5_ ||
14959 current6_ == end6_ ||
14960 current7_ == end7_ ||
14961 current8_ == end8_;
14965 void operator=(
const Iterator& other);
14967 const ParamGeneratorInterface<ParamType>*
const base_;
14994 ParamType current_value_;
14998 void operator=(
const CartesianProductGenerator8& other);
15000 const ParamGenerator<T1> g1_;
15001 const ParamGenerator<T2> g2_;
15002 const ParamGenerator<T3> g3_;
15003 const ParamGenerator<T4> g4_;
15004 const ParamGenerator<T5> g5_;
15005 const ParamGenerator<T6> g6_;
15006 const ParamGenerator<T7> g7_;
15007 const ParamGenerator<T8> g8_;
15011 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
15012 typename T6,
typename T7,
typename T8,
typename T9>
15017 typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>
ParamType;
15024 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8),
15029 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
15030 g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_,
15031 g7_.begin(), g8_, g8_.begin(), g9_, g9_.begin());
15034 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
15035 g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end(), g8_,
15036 g8_.end(), g9_, g9_.end());
15062 begin1_(g1.
begin()), end1_(g1.
end()), current1_(current1),
15063 begin2_(g2.
begin()), end2_(g2.
end()), current2_(current2),
15064 begin3_(g3.
begin()), end3_(g3.
end()), current3_(current3),
15065 begin4_(g4.
begin()), end4_(g4.
end()), current4_(current4),
15066 begin5_(g5.
begin()), end5_(g5.
end()), current5_(current5),
15067 begin6_(g6.
begin()), end6_(g6.
end()), current6_(current6),
15068 begin7_(g7.
begin()), end7_(g7.
end()), current7_(current7),
15069 begin8_(g8.
begin()), end8_(g8.
end()), current8_(current8),
15070 begin9_(g9.
begin()), end9_(g9.
end()), current9_(current9) {
15071 ComputeCurrentValue();
15073 virtual ~Iterator() {}
15075 virtual const ParamGeneratorInterface<ParamType>* BaseGenerator()
const {
15080 virtual void Advance() {
15083 if (current9_ == end9_) {
15084 current9_ = begin9_;
15087 if (current8_ == end8_) {
15088 current8_ = begin8_;
15091 if (current7_ == end7_) {
15092 current7_ = begin7_;
15095 if (current6_ == end6_) {
15096 current6_ = begin6_;
15099 if (current5_ == end5_) {
15100 current5_ = begin5_;
15103 if (current4_ == end4_) {
15104 current4_ = begin4_;
15107 if (current3_ == end3_) {
15108 current3_ = begin3_;
15111 if (current2_ == end2_) {
15112 current2_ = begin2_;
15115 ComputeCurrentValue();
15117 virtual ParamIteratorInterface<ParamType>* Clone()
const {
15118 return new Iterator(*
this);
15120 virtual const ParamType* Current()
const {
return ¤t_value_; }
15121 virtual bool Equals(
const ParamIteratorInterface<ParamType>& other)
const {
15124 GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
15125 <<
"The program attempted to compare iterators "
15126 <<
"from different generators." << std::endl;
15127 const Iterator* typed_other =
15128 CheckedDowncastToActualType<const Iterator>(&other);
15132 return (AtEnd() && typed_other->AtEnd()) ||
15134 current1_ == typed_other->current1_ &&
15135 current2_ == typed_other->current2_ &&
15136 current3_ == typed_other->current3_ &&
15137 current4_ == typed_other->current4_ &&
15138 current5_ == typed_other->current5_ &&
15139 current6_ == typed_other->current6_ &&
15140 current7_ == typed_other->current7_ &&
15141 current8_ == typed_other->current8_ &&
15142 current9_ == typed_other->current9_);
15146 Iterator(
const Iterator& other)
15147 : base_(other.base_),
15148 begin1_(other.begin1_),
15149 end1_(other.end1_),
15150 current1_(other.current1_),
15151 begin2_(other.begin2_),
15152 end2_(other.end2_),
15153 current2_(other.current2_),
15154 begin3_(other.begin3_),
15155 end3_(other.end3_),
15156 current3_(other.current3_),
15157 begin4_(other.begin4_),
15158 end4_(other.end4_),
15159 current4_(other.current4_),
15160 begin5_(other.begin5_),
15161 end5_(other.end5_),
15162 current5_(other.current5_),
15163 begin6_(other.begin6_),
15164 end6_(other.end6_),
15165 current6_(other.current6_),
15166 begin7_(other.begin7_),
15167 end7_(other.end7_),
15168 current7_(other.current7_),
15169 begin8_(other.begin8_),
15170 end8_(other.end8_),
15171 current8_(other.current8_),
15172 begin9_(other.begin9_),
15173 end9_(other.end9_),
15174 current9_(other.current9_) {
15175 ComputeCurrentValue();
15178 void ComputeCurrentValue() {
15180 current_value_ = ParamType(*current1_, *current2_, *current3_,
15181 *current4_, *current5_, *current6_, *current7_, *current8_,
15184 bool AtEnd()
const {
15188 current1_ == end1_ ||
15189 current2_ == end2_ ||
15190 current3_ == end3_ ||
15191 current4_ == end4_ ||
15192 current5_ == end5_ ||
15193 current6_ == end6_ ||
15194 current7_ == end7_ ||
15195 current8_ == end8_ ||
15196 current9_ == end9_;
15200 void operator=(
const Iterator& other);
15202 const ParamGeneratorInterface<ParamType>*
const base_;
15232 ParamType current_value_;
15236 void operator=(
const CartesianProductGenerator9& other);
15238 const ParamGenerator<T1> g1_;
15239 const ParamGenerator<T2> g2_;
15240 const ParamGenerator<T3> g3_;
15241 const ParamGenerator<T4> g4_;
15242 const ParamGenerator<T5> g5_;
15243 const ParamGenerator<T6> g6_;
15244 const ParamGenerator<T7> g7_;
15245 const ParamGenerator<T8> g8_;
15246 const ParamGenerator<T9> g9_;
15250 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
15251 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
15254 T7, T8, T9, T10> > {
15256 typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
ParamType;
15264 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8),
15265 g9_(g9), g10_(g10) {}
15269 return new Iterator(
this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
15270 g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_,
15271 g7_.begin(), g8_, g8_.begin(), g9_, g9_.begin(), g10_, g10_.begin());
15274 return new Iterator(
this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
15275 g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end(), g8_,
15276 g8_.end(), g9_, g9_.end(), g10_, g10_.end());
15304 begin1_(g1.
begin()), end1_(g1.
end()), current1_(current1),
15305 begin2_(g2.
begin()), end2_(g2.
end()), current2_(current2),
15306 begin3_(g3.
begin()), end3_(g3.
end()), current3_(current3),
15307 begin4_(g4.
begin()), end4_(g4.
end()), current4_(current4),
15308 begin5_(g5.
begin()), end5_(g5.
end()), current5_(current5),
15309 begin6_(g6.
begin()), end6_(g6.
end()), current6_(current6),
15310 begin7_(g7.
begin()), end7_(g7.
end()), current7_(current7),
15311 begin8_(g8.
begin()), end8_(g8.
end()), current8_(current8),
15312 begin9_(g9.
begin()), end9_(g9.
end()), current9_(current9),
15313 begin10_(g10.
begin()), end10_(g10.
end()), current10_(current10) {
15314 ComputeCurrentValue();
15316 virtual ~Iterator() {}
15318 virtual const ParamGeneratorInterface<ParamType>* BaseGenerator()
const {
15323 virtual void Advance() {
15326 if (current10_ == end10_) {
15327 current10_ = begin10_;
15330 if (current9_ == end9_) {
15331 current9_ = begin9_;
15334 if (current8_ == end8_) {
15335 current8_ = begin8_;
15338 if (current7_ == end7_) {
15339 current7_ = begin7_;
15342 if (current6_ == end6_) {
15343 current6_ = begin6_;
15346 if (current5_ == end5_) {
15347 current5_ = begin5_;
15350 if (current4_ == end4_) {
15351 current4_ = begin4_;
15354 if (current3_ == end3_) {
15355 current3_ = begin3_;
15358 if (current2_ == end2_) {
15359 current2_ = begin2_;
15362 ComputeCurrentValue();
15364 virtual ParamIteratorInterface<ParamType>* Clone()
const {
15365 return new Iterator(*
this);
15367 virtual const ParamType* Current()
const {
return ¤t_value_; }
15368 virtual bool Equals(
const ParamIteratorInterface<ParamType>& other)
const {
15371 GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
15372 <<
"The program attempted to compare iterators "
15373 <<
"from different generators." << std::endl;
15374 const Iterator* typed_other =
15375 CheckedDowncastToActualType<const Iterator>(&other);
15379 return (AtEnd() && typed_other->AtEnd()) ||
15381 current1_ == typed_other->current1_ &&
15382 current2_ == typed_other->current2_ &&
15383 current3_ == typed_other->current3_ &&
15384 current4_ == typed_other->current4_ &&
15385 current5_ == typed_other->current5_ &&
15386 current6_ == typed_other->current6_ &&
15387 current7_ == typed_other->current7_ &&
15388 current8_ == typed_other->current8_ &&
15389 current9_ == typed_other->current9_ &&
15390 current10_ == typed_other->current10_);
15394 Iterator(
const Iterator& other)
15395 : base_(other.base_),
15396 begin1_(other.begin1_),
15397 end1_(other.end1_),
15398 current1_(other.current1_),
15399 begin2_(other.begin2_),
15400 end2_(other.end2_),
15401 current2_(other.current2_),
15402 begin3_(other.begin3_),
15403 end3_(other.end3_),
15404 current3_(other.current3_),
15405 begin4_(other.begin4_),
15406 end4_(other.end4_),
15407 current4_(other.current4_),
15408 begin5_(other.begin5_),
15409 end5_(other.end5_),
15410 current5_(other.current5_),
15411 begin6_(other.begin6_),
15412 end6_(other.end6_),
15413 current6_(other.current6_),
15414 begin7_(other.begin7_),
15415 end7_(other.end7_),
15416 current7_(other.current7_),
15417 begin8_(other.begin8_),
15418 end8_(other.end8_),
15419 current8_(other.current8_),
15420 begin9_(other.begin9_),
15421 end9_(other.end9_),
15422 current9_(other.current9_),
15423 begin10_(other.begin10_),
15424 end10_(other.end10_),
15425 current10_(other.current10_) {
15426 ComputeCurrentValue();
15429 void ComputeCurrentValue() {
15431 current_value_ = ParamType(*current1_, *current2_, *current3_,
15432 *current4_, *current5_, *current6_, *current7_, *current8_,
15433 *current9_, *current10_);
15435 bool AtEnd()
const {
15439 current1_ == end1_ ||
15440 current2_ == end2_ ||
15441 current3_ == end3_ ||
15442 current4_ == end4_ ||
15443 current5_ == end5_ ||
15444 current6_ == end6_ ||
15445 current7_ == end7_ ||
15446 current8_ == end8_ ||
15447 current9_ == end9_ ||
15448 current10_ == end10_;
15452 void operator=(
const Iterator& other);
15454 const ParamGeneratorInterface<ParamType>*
const base_;
15487 ParamType current_value_;
15491 void operator=(
const CartesianProductGenerator10& other);
15493 const ParamGenerator<T1> g1_;
15494 const ParamGenerator<T2> g2_;
15495 const ParamGenerator<T3> g3_;
15496 const ParamGenerator<T4> g4_;
15497 const ParamGenerator<T5> g5_;
15498 const ParamGenerator<T6> g6_;
15499 const ParamGenerator<T7> g7_;
15500 const ParamGenerator<T8> g8_;
15501 const ParamGenerator<T9> g9_;
15502 const ParamGenerator<T10> g10_;
15512 template <
class Generator1,
class Generator2>
15516 : g1_(g1), g2_(g2) {}
15517 template <
typename T1,
typename T2>
15529 const Generator1 g1_;
15530 const Generator2 g2_;
15533 template <
class Generator1,
class Generator2,
class Generator3>
15537 const Generator3& g3)
15538 : g1_(g1), g2_(g2), g3_(g3) {}
15539 template <
typename T1,
typename T2,
typename T3>
15552 const Generator1 g1_;
15553 const Generator2 g2_;
15554 const Generator3 g3_;
15557 template <
class Generator1,
class Generator2,
class Generator3,
15562 const Generator3& g3,
const Generator4& g4)
15563 : g1_(g1), g2_(g2), g3_(g3), g4_(g4) {}
15564 template <
typename T1,
typename T2,
typename T3,
typename T4>
15578 const Generator1 g1_;
15579 const Generator2 g2_;
15580 const Generator3 g3_;
15581 const Generator4 g4_;
15584 template <
class Generator1,
class Generator2,
class Generator3,
15585 class Generator4,
class Generator5>
15589 const Generator3& g3,
const Generator4& g4,
const Generator5& g5)
15590 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5) {}
15591 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
15606 const Generator1 g1_;
15607 const Generator2 g2_;
15608 const Generator3 g3_;
15609 const Generator4 g4_;
15610 const Generator5 g5_;
15613 template <
class Generator1,
class Generator2,
class Generator3,
15614 class Generator4,
class Generator5,
class Generator6>
15618 const Generator3& g3,
const Generator4& g4,
const Generator5& g5,
15619 const Generator6& g6)
15620 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6) {}
15621 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
15638 const Generator1 g1_;
15639 const Generator2 g2_;
15640 const Generator3 g3_;
15641 const Generator4 g4_;
15642 const Generator5 g5_;
15643 const Generator6 g6_;
15646 template <
class Generator1,
class Generator2,
class Generator3,
15647 class Generator4,
class Generator5,
class Generator6,
class Generator7>
15651 const Generator3& g3,
const Generator4& g4,
const Generator5& g5,
15652 const Generator6& g6,
const Generator7& g7)
15653 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7) {}
15654 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
15655 typename T6,
typename T7>
15673 const Generator1 g1_;
15674 const Generator2 g2_;
15675 const Generator3 g3_;
15676 const Generator4 g4_;
15677 const Generator5 g5_;
15678 const Generator6 g6_;
15679 const Generator7 g7_;
15682 template <
class Generator1,
class Generator2,
class Generator3,
15683 class Generator4,
class Generator5,
class Generator6,
class Generator7,
15688 const Generator3& g3,
const Generator4& g4,
const Generator5& g5,
15689 const Generator6& g6,
const Generator7& g7,
const Generator8& g8)
15690 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7),
15692 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
15693 typename T6,
typename T7,
typename T8>
15712 const Generator1 g1_;
15713 const Generator2 g2_;
15714 const Generator3 g3_;
15715 const Generator4 g4_;
15716 const Generator5 g5_;
15717 const Generator6 g6_;
15718 const Generator7 g7_;
15719 const Generator8 g8_;
15722 template <
class Generator1,
class Generator2,
class Generator3,
15723 class Generator4,
class Generator5,
class Generator6,
class Generator7,
15724 class Generator8,
class Generator9>
15728 const Generator3& g3,
const Generator4& g4,
const Generator5& g5,
15729 const Generator6& g6,
const Generator7& g7,
const Generator8& g8,
15730 const Generator9& g9)
15731 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8),
15733 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
15734 typename T6,
typename T7,
typename T8,
typename T9>
15755 const Generator1 g1_;
15756 const Generator2 g2_;
15757 const Generator3 g3_;
15758 const Generator4 g4_;
15759 const Generator5 g5_;
15760 const Generator6 g6_;
15761 const Generator7 g7_;
15762 const Generator8 g8_;
15763 const Generator9 g9_;
15766 template <
class Generator1,
class Generator2,
class Generator3,
15767 class Generator4,
class Generator5,
class Generator6,
class Generator7,
15768 class Generator8,
class Generator9,
class Generator10>
15772 const Generator3& g3,
const Generator4& g4,
const Generator5& g5,
15773 const Generator6& g6,
const Generator7& g7,
const Generator8& g8,
15774 const Generator9& g9,
const Generator10& g10)
15775 : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8),
15776 g9_(g9), g10_(g10) {}
15777 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
15778 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
15780 T9, T10> >()
const {
15801 const Generator1 g1_;
15802 const Generator2 g2_;
15803 const Generator3 g3_;
15804 const Generator4 g4_;
15805 const Generator5 g5_;
15806 const Generator6 g6_;
15807 const Generator7 g7_;
15808 const Generator8 g8_;
15809 const Generator9 g9_;
15810 const Generator10 g10_;
15813 # endif // GTEST_HAS_COMBINE
15818 #endif // GTEST_HAS_PARAM_TEST
15820 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
15822 #if GTEST_HAS_PARAM_TEST
15824 namespace testing {
15868 template <
typename T,
typename IncrementT>
15874 template <
typename T>
15876 return Range(start, end, 1);
15934 template <
typename ForwardIterator>
15935 internal::ParamGenerator<
15936 typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type>
15938 typedef typename ::testing::internal::IteratorTraits<ForwardIterator>
15939 ::value_type ParamType;
15944 template <
typename T,
size_t N>
15946 return ValuesIn(array, array + N);
15949 template <
class Container>
15951 const Container& container) {
15952 return ValuesIn(container.begin(), container.end());
15974 template <
typename T1>
15979 template <
typename T1,
typename T2>
15984 template <
typename T1,
typename T2,
typename T3>
15989 template <
typename T1,
typename T2,
typename T3,
typename T4>
15994 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
16000 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16003 T4 v4, T5 v5, T6 v6) {
16004 return internal::ValueArray6<T1, T2, T3, T4, T5, T6>(v1, v2, v3, v4, v5, v6);
16007 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16008 typename T6,
typename T7>
16010 T4 v4, T5 v5, T6 v6, T7 v7) {
16011 return internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7>(v1, v2, v3, v4, v5,
16015 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16016 typename T6,
typename T7,
typename T8>
16018 T3
v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8) {
16019 return internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8>(v1, v2, v3, v4,
16023 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16024 typename T6,
typename T7,
typename T8,
typename T9>
16025 internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9> Values(T1
v1, T2
v2,
16026 T3
v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9) {
16027 return internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9>(v1, v2, v3,
16028 v4, v5, v6, v7, v8, v9);
16031 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16032 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
16033 internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Values(T1
v1,
16034 T2
v2, T3
v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10) {
16035 return internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(v1,
16036 v2, v3, v4, v5, v6, v7, v8, v9, v10);
16039 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16040 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16042 internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
16044 T10 v10, T11 v11) {
16045 return internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
16046 T11>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11);
16049 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16050 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16051 typename T11,
typename T12>
16052 internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16054 T10 v10, T11 v11, T12 v12) {
16055 return internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16056 T12>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12);
16059 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16060 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16061 typename T11,
typename T12,
typename T13>
16062 internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
16064 T10 v10, T11 v11, T12 v12, T13 v13) {
16065 return internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16066 T12, T13>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13);
16069 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16070 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16071 typename T11,
typename T12,
typename T13,
typename T14>
16072 internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16074 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14) {
16075 return internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16076 T12, T13, T14>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
16080 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16081 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16082 typename T11,
typename T12,
typename T13,
typename T14,
typename T15>
16083 internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16085 T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15) {
16086 return internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16087 T12, T13, T14, T15>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
16091 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16092 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16093 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16095 internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16097 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
16099 return internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16100 T12, T13, T14, T15, T16>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
16101 v12, v13, v14, v15, v16);
16104 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16105 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16106 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16107 typename T16,
typename T17>
16108 internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16109 T14, T15, T16, T17>
Values(T1
v1, T2
v2, T3
v3, T4 v4, T5 v5, T6 v6, T7 v7,
16110 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
16111 T16 v16, T17 v17) {
16112 return internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16113 T12, T13, T14, T15, T16, T17>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
16114 v11, v12, v13, v14, v15, v16, v17);
16117 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16118 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16119 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16120 typename T16,
typename T17,
typename T18>
16121 internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16122 T14, T15, T16, T17, T18>
Values(T1
v1, T2
v2, T3
v3, T4 v4, T5 v5, T6 v6,
16123 T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
16124 T16 v16, T17 v17, T18 v18) {
16125 return internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16126 T12, T13, T14, T15, T16, T17, T18>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
16127 v10, v11, v12, v13, v14, v15, v16, v17, v18);
16130 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16131 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16132 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16133 typename T16,
typename T17,
typename T18,
typename T19>
16134 internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16135 T14, T15, T16, T17, T18, T19>
Values(T1
v1, T2
v2, T3
v3, T4 v4, T5 v5,
16136 T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
16137 T15 v15, T16 v16, T17 v17, T18 v18, T19 v19) {
16138 return internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16139 T12, T13, T14, T15, T16, T17, T18, T19>(v1, v2, v3, v4, v5, v6, v7, v8,
16140 v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19);
16143 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16144 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16145 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16146 typename T16,
typename T17,
typename T18,
typename T19,
typename T20>
16147 internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16148 T14, T15, T16, T17, T18, T19, T20>
Values(T1
v1, T2
v2, T3
v3, T4 v4,
16149 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
16150 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20) {
16151 return internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16152 T12, T13, T14, T15, T16, T17, T18, T19, T20>(v1, v2, v3, v4, v5, v6, v7,
16153 v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20);
16156 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16157 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16158 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16159 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16161 internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16162 T14, T15, T16, T17, T18, T19, T20, T21>
Values(T1
v1, T2
v2, T3
v3, T4 v4,
16163 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
16164 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21) {
16165 return internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16166 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>(v1, v2, v3, v4, v5, v6,
16167 v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21);
16170 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16171 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16172 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16173 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16174 typename T21,
typename T22>
16175 internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16176 T14, T15, T16, T17, T18, T19, T20, T21, T22>
Values(T1
v1, T2
v2, T3
v3,
16177 T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
16178 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
16179 T21 v21, T22 v22) {
16180 return internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16181 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>(v1, v2, v3, v4,
16182 v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
16186 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16187 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16188 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16189 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16190 typename T21,
typename T22,
typename T23>
16191 internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16192 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>
Values(T1
v1, T2
v2,
16193 T3
v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
16194 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
16195 T21 v21, T22 v22, T23 v23) {
16196 return internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16197 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>(v1, v2, v3,
16198 v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
16199 v20, v21, v22, v23);
16202 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16203 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16204 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16205 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16206 typename T21,
typename T22,
typename T23,
typename T24>
16207 internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16208 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>
Values(T1
v1, T2
v2,
16209 T3
v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
16210 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
16211 T21 v21, T22 v22, T23 v23, T24 v24) {
16212 return internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16213 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>(v1, v2,
16214 v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18,
16215 v19, v20, v21, v22, v23, v24);
16218 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16219 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16220 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16221 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16222 typename T21,
typename T22,
typename T23,
typename T24,
typename T25>
16223 internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16224 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>
Values(T1
v1,
16225 T2
v2, T3
v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11,
16226 T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19,
16227 T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25) {
16228 return internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16229 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>(v1,
16230 v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17,
16231 v18, v19, v20, v21, v22, v23, v24, v25);
16234 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16235 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16236 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16237 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16238 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16240 internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16241 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16243 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
16244 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
16246 return internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16247 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16248 T26>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,
16249 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26);
16252 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16253 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16254 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16255 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16256 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16257 typename T26,
typename T27>
16258 internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16259 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
16261 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
16262 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
16263 T26 v26, T27 v27) {
16264 return internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16265 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16266 T26, T27>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14,
16267 v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27);
16270 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16271 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16272 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16273 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16274 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16275 typename T26,
typename T27,
typename T28>
16276 internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16277 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
16279 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
16280 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
16281 T26 v26, T27 v27, T28 v28) {
16282 return internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16283 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16284 T26, T27, T28>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
16285 v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27,
16289 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16290 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16291 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16292 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16293 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16294 typename T26,
typename T27,
typename T28,
typename T29>
16295 internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16296 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16298 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
16299 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
16300 T26 v26, T27 v27, T28 v28, T29 v29) {
16301 return internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16302 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16303 T26, T27, T28, T29>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
16304 v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
16308 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16309 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16310 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16311 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16312 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16313 typename T26,
typename T27,
typename T28,
typename T29,
typename T30>
16314 internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16315 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16317 T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
16318 T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
16319 T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30) {
16320 return internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16321 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16322 T26, T27, T28, T29, T30>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
16323 v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25,
16324 v26, v27, v28, v29, v30);
16327 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16328 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16329 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16330 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16331 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16332 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16334 internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16335 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16337 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
16338 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
16339 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31) {
16340 return internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16341 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16342 T26, T27, T28, T29, T30, T31>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
16343 v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24,
16344 v25, v26, v27, v28, v29, v30, v31);
16347 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16348 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16349 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16350 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16351 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16352 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16353 typename T31,
typename T32>
16354 internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16355 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16356 T29, T30, T31, T32>
Values(T1
v1, T2
v2, T3
v3, T4 v4, T5 v5, T6 v6, T7 v7,
16357 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
16358 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
16359 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
16361 return internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16362 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16363 T26, T27, T28, T29, T30, T31, T32>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
16364 v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
16365 v24, v25, v26, v27, v28, v29, v30, v31, v32);
16368 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16369 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16370 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16371 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16372 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16373 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16374 typename T31,
typename T32,
typename T33>
16375 internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16376 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16377 T29, T30, T31, T32, T33>
Values(T1
v1, T2
v2, T3
v3, T4 v4, T5 v5, T6 v6,
16378 T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
16379 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
16380 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
16381 T32 v32, T33 v33) {
16382 return internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16383 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16384 T26, T27, T28, T29, T30, T31, T32, T33>(v1, v2, v3, v4, v5, v6, v7, v8,
16385 v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
16386 v24, v25, v26, v27, v28, v29, v30, v31, v32, v33);
16389 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16390 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16391 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16392 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16393 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16394 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16395 typename T31,
typename T32,
typename T33,
typename T34>
16396 internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16397 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16398 T29, T30, T31, T32, T33, T34>
Values(T1
v1, T2
v2, T3
v3, T4 v4, T5 v5,
16399 T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
16400 T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22,
16401 T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30,
16402 T31 v31, T32 v32, T33 v33, T34 v34) {
16403 return internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16404 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16405 T26, T27, T28, T29, T30, T31, T32, T33, T34>(v1, v2, v3, v4, v5, v6, v7,
16406 v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22,
16407 v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34);
16410 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16411 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16412 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16413 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16414 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16415 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16416 typename T31,
typename T32,
typename T33,
typename T34,
typename T35>
16417 internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16418 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16419 T29, T30, T31, T32, T33, T34, T35>
Values(T1
v1, T2
v2, T3
v3, T4 v4,
16420 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
16421 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
16422 T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
16423 T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35) {
16424 return internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16425 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16426 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35>(v1, v2, v3, v4, v5, v6,
16427 v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21,
16428 v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35);
16431 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16432 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16433 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16434 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16435 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16436 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16437 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
16439 internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16440 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16441 T29, T30, T31, T32, T33, T34, T35, T36>
Values(T1
v1, T2
v2, T3
v3, T4 v4,
16442 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
16443 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
16444 T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
16445 T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36) {
16446 return internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16447 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16448 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36>(v1, v2, v3, v4,
16449 v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
16450 v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
16454 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16455 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16456 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16457 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16458 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16459 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16460 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
16461 typename T36,
typename T37>
16462 internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16463 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16464 T29, T30, T31, T32, T33, T34, T35, T36, T37>
Values(T1
v1, T2
v2, T3
v3,
16465 T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
16466 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
16467 T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
16468 T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
16470 return internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16471 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16472 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37>(v1, v2, v3,
16473 v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
16474 v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
16475 v34, v35, v36, v37);
16478 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16479 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16480 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16481 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16482 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16483 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16484 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
16485 typename T36,
typename T37,
typename T38>
16486 internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16487 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16488 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>
Values(T1
v1, T2
v2,
16489 T3
v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
16490 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
16491 T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
16492 T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
16493 T37 v37, T38 v38) {
16494 return internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16495 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16496 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>(v1, v2,
16497 v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18,
16498 v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32,
16499 v33, v34, v35, v36, v37, v38);
16502 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16503 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16504 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16505 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16506 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16507 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16508 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
16509 typename T36,
typename T37,
typename T38,
typename T39>
16510 internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16511 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16512 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>
Values(T1
v1, T2
v2,
16513 T3
v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
16514 T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
16515 T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
16516 T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
16517 T37 v37, T38 v38, T39 v39) {
16518 return internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16519 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16520 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>(v1,
16521 v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17,
16522 v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31,
16523 v32, v33, v34, v35, v36, v37, v38, v39);
16526 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16527 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16528 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16529 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16530 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16531 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16532 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
16533 typename T36,
typename T37,
typename T38,
typename T39,
typename T40>
16534 internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16535 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16536 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40>
Values(T1
v1,
16537 T2
v2, T3
v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11,
16538 T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19,
16539 T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27,
16540 T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35,
16541 T36 v36, T37 v37, T38 v38, T39 v39, T40 v40) {
16542 return internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16543 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16544 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
16545 T40>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,
16546 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29,
16547 v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40);
16550 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16551 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16552 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16553 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16554 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16555 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16556 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
16557 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
16559 internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16560 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16561 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
16563 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
16564 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
16565 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
16566 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41) {
16567 return internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16568 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16569 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
16570 T40, T41>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14,
16571 v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28,
16572 v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41);
16575 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16576 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16577 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16578 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16579 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16580 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16581 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
16582 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
16583 typename T41,
typename T42>
16584 internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16585 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16586 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
16588 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
16589 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
16590 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
16591 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
16593 return internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16594 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16595 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
16596 T40, T41, T42>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
16597 v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27,
16598 v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41,
16602 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16603 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16604 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16605 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16606 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16607 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16608 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
16609 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
16610 typename T41,
typename T42,
typename T43>
16611 internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16612 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16613 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
16615 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
16616 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
16617 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
16618 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
16619 T42 v42, T43 v43) {
16620 return internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16621 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16622 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
16623 T40, T41, T42, T43>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
16624 v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
16625 v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40,
16629 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16630 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16631 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16632 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16633 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16634 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16635 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
16636 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
16637 typename T41,
typename T42,
typename T43,
typename T44>
16638 internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16639 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16640 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
16642 T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
16643 T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
16644 T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
16645 T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
16646 T42 v42, T43 v43, T44 v44) {
16647 return internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16648 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16649 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
16650 T40, T41, T42, T43, T44>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
16651 v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25,
16652 v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39,
16653 v40, v41, v42, v43, v44);
16656 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16657 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16658 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16659 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16660 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16661 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16662 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
16663 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
16664 typename T41,
typename T42,
typename T43,
typename T44,
typename T45>
16665 internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16666 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16667 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
16669 T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
16670 T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
16671 T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32,
16672 T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40,
16673 T41 v41, T42 v42, T43 v43, T44 v44, T45 v45) {
16674 return internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16675 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16676 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
16677 T40, T41, T42, T43, T44, T45>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
16678 v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24,
16679 v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38,
16680 v39, v40, v41, v42, v43, v44, v45);
16683 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16684 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16685 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16686 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16687 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16688 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16689 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
16690 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
16691 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
16693 internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16694 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16695 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
16697 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
16698 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
16699 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
16700 T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
16701 T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46) {
16702 return internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16703 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16704 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
16705 T40, T41, T42, T43, T44, T45, T46>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
16706 v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
16707 v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37,
16708 v38, v39, v40, v41, v42, v43, v44, v45, v46);
16711 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16712 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16713 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16714 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16715 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16716 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16717 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
16718 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
16719 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
16720 typename T46,
typename T47>
16721 internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16722 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16723 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
16724 T44, T45, T46, T47>
Values(T1
v1, T2
v2, T3
v3, T4 v4, T5 v5, T6 v6, T7 v7,
16725 T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
16726 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
16727 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
16728 T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
16729 T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47) {
16730 return internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16731 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16732 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
16733 T40, T41, T42, T43, T44, T45, T46, T47>(v1, v2, v3, v4, v5, v6, v7, v8,
16734 v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
16735 v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37,
16736 v38, v39, v40, v41, v42, v43, v44, v45, v46, v47);
16739 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16740 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16741 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16742 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16743 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16744 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16745 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
16746 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
16747 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
16748 typename T46,
typename T47,
typename T48>
16749 internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16750 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16751 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
16752 T44, T45, T46, T47, T48>
Values(T1
v1, T2
v2, T3
v3, T4 v4, T5 v5, T6 v6,
16753 T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
16754 T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
16755 T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
16756 T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
16757 T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47,
16759 return internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16760 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16761 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
16762 T40, T41, T42, T43, T44, T45, T46, T47, T48>(v1, v2, v3, v4, v5, v6, v7,
16763 v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22,
16764 v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36,
16765 v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48);
16768 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16769 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16770 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16771 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16772 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16773 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16774 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
16775 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
16776 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
16777 typename T46,
typename T47,
typename T48,
typename T49>
16778 internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16779 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16780 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
16781 T44, T45, T46, T47, T48, T49>
Values(T1
v1, T2
v2, T3
v3, T4 v4, T5 v5,
16782 T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
16783 T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22,
16784 T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30,
16785 T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38,
16786 T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46,
16787 T47 v47, T48 v48, T49 v49) {
16788 return internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16789 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16790 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
16791 T40, T41, T42, T43, T44, T45, T46, T47, T48, T49>(v1, v2, v3, v4, v5, v6,
16792 v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21,
16793 v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35,
16794 v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49);
16797 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
16798 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
16799 typename T11,
typename T12,
typename T13,
typename T14,
typename T15,
16800 typename T16,
typename T17,
typename T18,
typename T19,
typename T20,
16801 typename T21,
typename T22,
typename T23,
typename T24,
typename T25,
16802 typename T26,
typename T27,
typename T28,
typename T29,
typename T30,
16803 typename T31,
typename T32,
typename T33,
typename T34,
typename T35,
16804 typename T36,
typename T37,
typename T38,
typename T39,
typename T40,
16805 typename T41,
typename T42,
typename T43,
typename T44,
typename T45,
16806 typename T46,
typename T47,
typename T48,
typename T49,
typename T50>
16807 internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
16808 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
16809 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
16810 T44, T45, T46, T47, T48, T49, T50>
Values(T1
v1, T2
v2, T3
v3, T4 v4,
16811 T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
16812 T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
16813 T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
16814 T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37,
16815 T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45,
16816 T46 v46, T47 v47, T48 v48, T49 v49, T50 v50) {
16817 return internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
16818 T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
16819 T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
16820 T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>(v1, v2, v3, v4,
16821 v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
16822 v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
16823 v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47,
16848 return Values(
false,
true);
16851 # if GTEST_HAS_COMBINE
16900 template <
typename Generator1,
typename Generator2>
16902 const Generator1& g1,
const Generator2& g2) {
16907 template <
typename Generator1,
typename Generator2,
typename Generator3>
16909 const Generator1& g1,
const Generator2& g2,
const Generator3& g3) {
16914 template <
typename Generator1,
typename Generator2,
typename Generator3,
16915 typename Generator4>
16916 internal::CartesianProductHolder4<Generator1, Generator2, Generator3,
16918 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
16919 const Generator4& g4) {
16925 template <
typename Generator1,
typename Generator2,
typename Generator3,
16926 typename Generator4,
typename Generator5>
16927 internal::CartesianProductHolder5<Generator1, Generator2, Generator3,
16929 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
16930 const Generator4& g4,
const Generator5& g5) {
16932 Generator4, Generator5>(
16933 g1, g2, g3, g4, g5);
16936 template <
typename Generator1,
typename Generator2,
typename Generator3,
16937 typename Generator4,
typename Generator5,
typename Generator6>
16938 internal::CartesianProductHolder6<Generator1, Generator2, Generator3,
16940 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
16941 const Generator4& g4,
const Generator5& g5,
const Generator6& g6) {
16943 Generator4, Generator5, Generator6>(
16944 g1, g2, g3, g4, g5, g6);
16947 template <
typename Generator1,
typename Generator2,
typename Generator3,
16948 typename Generator4,
typename Generator5,
typename Generator6,
16949 typename Generator7>
16950 internal::CartesianProductHolder7<Generator1, Generator2, Generator3,
16951 Generator4, Generator5, Generator6, Generator7>
Combine(
16952 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
16953 const Generator4& g4,
const Generator5& g5,
const Generator6& g6,
16954 const Generator7& g7) {
16956 Generator4, Generator5, Generator6, Generator7>(
16957 g1, g2, g3, g4, g5, g6, g7);
16960 template <
typename Generator1,
typename Generator2,
typename Generator3,
16961 typename Generator4,
typename Generator5,
typename Generator6,
16962 typename Generator7,
typename Generator8>
16963 internal::CartesianProductHolder8<Generator1, Generator2, Generator3,
16964 Generator4, Generator5, Generator6, Generator7, Generator8>
Combine(
16965 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
16966 const Generator4& g4,
const Generator5& g5,
const Generator6& g6,
16967 const Generator7& g7,
const Generator8& g8) {
16969 Generator4, Generator5, Generator6, Generator7, Generator8>(
16970 g1, g2, g3, g4, g5, g6, g7, g8);
16973 template <
typename Generator1,
typename Generator2,
typename Generator3,
16974 typename Generator4,
typename Generator5,
typename Generator6,
16975 typename Generator7,
typename Generator8,
typename Generator9>
16976 internal::CartesianProductHolder9<Generator1, Generator2, Generator3,
16977 Generator4, Generator5, Generator6, Generator7, Generator8,
16979 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
16980 const Generator4& g4,
const Generator5& g5,
const Generator6& g6,
16981 const Generator7& g7,
const Generator8& g8,
const Generator9& g9) {
16983 Generator4, Generator5, Generator6, Generator7, Generator8, Generator9>(
16984 g1, g2, g3, g4, g5, g6, g7, g8, g9);
16987 template <
typename Generator1,
typename Generator2,
typename Generator3,
16988 typename Generator4,
typename Generator5,
typename Generator6,
16989 typename Generator7,
typename Generator8,
typename Generator9,
16990 typename Generator10>
16991 internal::CartesianProductHolder10<Generator1, Generator2, Generator3,
16992 Generator4, Generator5, Generator6, Generator7, Generator8, Generator9,
16994 const Generator1& g1,
const Generator2& g2,
const Generator3& g3,
16995 const Generator4& g4,
const Generator5& g5,
const Generator6& g6,
16996 const Generator7& g7,
const Generator8& g8,
const Generator9& g9,
16997 const Generator10& g10) {
16999 Generator4, Generator5, Generator6, Generator7, Generator8, Generator9,
17001 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10);
17003 # endif // GTEST_HAS_COMBINE
17007 # define TEST_P(test_case_name, test_name) \
17008 class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \
17009 : public test_case_name { \
17011 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {} \
17012 virtual void TestBody(); \
17014 static int AddToRegistry() { \
17015 ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \
17016 GetTestCasePatternHolder<test_case_name>(\
17017 #test_case_name, __FILE__, __LINE__)->AddTestPattern(\
17020 new ::testing::internal::TestMetaFactory< \
17021 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>()); \
17024 static int gtest_registering_dummy_; \
17025 GTEST_DISALLOW_COPY_AND_ASSIGN_(\
17026 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \
17028 int GTEST_TEST_CLASS_NAME_(test_case_name, \
17029 test_name)::gtest_registering_dummy_ = \
17030 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \
17031 void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody()
17033 # define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator) \
17034 ::testing::internal::ParamGenerator<test_case_name::ParamType> \
17035 gtest_##prefix##test_case_name##_EvalGenerator_() { return generator; } \
17036 int gtest_##prefix##test_case_name##_dummy_ = \
17037 ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \
17038 GetTestCasePatternHolder<test_case_name>(\
17039 #test_case_name, __FILE__, __LINE__)->AddTestCaseInstantiation(\
17041 >est_##prefix##test_case_name##_EvalGenerator_, \
17042 __FILE__, __LINE__)
17046 #endif // GTEST_HAS_PARAM_TEST
17048 #endif // GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
17082 #ifndef GTEST_INCLUDE_GTEST_GTEST_PROD_H_
17083 #define GTEST_INCLUDE_GTEST_GTEST_PROD_H_
17103 #define FRIEND_TEST(test_case_name, test_name)\
17104 friend class test_case_name##_##test_name##_Test
17106 #endif // GTEST_INCLUDE_GTEST_GTEST_PROD_H_
17139 #ifndef GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_
17140 #define GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_
17145 namespace testing {
17165 const char* a_file_name,
17167 const char* a_message)
17169 file_name_(a_file_name == NULL ?
"" : a_file_name),
17170 line_number_(a_line_number),
17171 summary_(ExtractSummary(a_message)),
17172 message_(a_message) {
17181 return file_name_.empty() ? NULL : file_name_.c_str();
17189 const char*
summary()
const {
return summary_.c_str(); }
17192 const char*
message()
const {
return message_.c_str(); }
17195 bool passed()
const {
return type_ == kSuccess; }
17198 bool failed()
const {
return type_ != kSuccess; }
17211 static std::string ExtractSummary(
const char* message);
17215 std::string file_name_;
17219 std::string summary_;
17220 std::string message_;
17244 std::vector<TestPartResult> array_;
17257 namespace internal {
17273 bool has_new_fatal_failure_;
17283 #endif // GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_
17315 #ifndef GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_
17316 #define GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_
17328 template <
typename T>
17353 TypeParam
n = this->value_;
17357 n += TestFixture::shared_;
17361 typename TestFixture::List
values;
17362 values.push_back(n);
17388 template <
typename T>
17413 DoesBlah, HasPropertyA);
17435 #if GTEST_HAS_TYPED_TEST
17441 # define GTEST_TYPE_PARAMS_(TestCaseName) gtest_type_params_##TestCaseName##_
17446 # define TYPED_TEST_CASE(CaseName, Types) \
17447 typedef ::testing::internal::TypeList< Types >::type \
17448 GTEST_TYPE_PARAMS_(CaseName)
17450 # define TYPED_TEST(CaseName, TestName) \
17451 template <typename gtest_TypeParam_> \
17452 class GTEST_TEST_CLASS_NAME_(CaseName, TestName) \
17453 : public CaseName<gtest_TypeParam_> { \
17455 typedef CaseName<gtest_TypeParam_> TestFixture; \
17456 typedef gtest_TypeParam_ TypeParam; \
17457 virtual void TestBody(); \
17459 bool gtest_##CaseName##_##TestName##_registered_ GTEST_ATTRIBUTE_UNUSED_ = \
17460 ::testing::internal::TypeParameterizedTest< \
17462 ::testing::internal::TemplateSel< \
17463 GTEST_TEST_CLASS_NAME_(CaseName, TestName)>, \
17464 GTEST_TYPE_PARAMS_(CaseName)>::Register(\
17465 "", #CaseName, #TestName, 0); \
17466 template <typename gtest_TypeParam_> \
17467 void GTEST_TEST_CLASS_NAME_(CaseName, TestName)<gtest_TypeParam_>::TestBody()
17469 #endif // GTEST_HAS_TYPED_TEST
17473 #if GTEST_HAS_TYPED_TEST_P
17480 # define GTEST_CASE_NAMESPACE_(TestCaseName) \
17481 gtest_case_##TestCaseName##_
17487 # define GTEST_TYPED_TEST_CASE_P_STATE_(TestCaseName) \
17488 gtest_typed_test_case_p_state_##TestCaseName##_
17494 # define GTEST_REGISTERED_TEST_NAMES_(TestCaseName) \
17495 gtest_registered_test_names_##TestCaseName##_
17500 # define TYPED_TEST_CASE_P(CaseName) \
17501 static ::testing::internal::TypedTestCasePState \
17502 GTEST_TYPED_TEST_CASE_P_STATE_(CaseName)
17504 # define TYPED_TEST_P(CaseName, TestName) \
17505 namespace GTEST_CASE_NAMESPACE_(CaseName) { \
17506 template <typename gtest_TypeParam_> \
17507 class TestName : public CaseName<gtest_TypeParam_> { \
17509 typedef CaseName<gtest_TypeParam_> TestFixture; \
17510 typedef gtest_TypeParam_ TypeParam; \
17511 virtual void TestBody(); \
17513 static bool gtest_##TestName##_defined_ GTEST_ATTRIBUTE_UNUSED_ = \
17514 GTEST_TYPED_TEST_CASE_P_STATE_(CaseName).AddTestName(\
17515 __FILE__, __LINE__, #CaseName, #TestName); \
17517 template <typename gtest_TypeParam_> \
17518 void GTEST_CASE_NAMESPACE_(CaseName)::TestName<gtest_TypeParam_>::TestBody()
17520 # define REGISTER_TYPED_TEST_CASE_P(CaseName, ...) \
17521 namespace GTEST_CASE_NAMESPACE_(CaseName) { \
17522 typedef ::testing::internal::Templates<__VA_ARGS__>::type gtest_AllTests_; \
17524 static const char* const GTEST_REGISTERED_TEST_NAMES_(CaseName) = \
17525 GTEST_TYPED_TEST_CASE_P_STATE_(CaseName).VerifyRegisteredTestNames(\
17526 __FILE__, __LINE__, #__VA_ARGS__)
17531 # define INSTANTIATE_TYPED_TEST_CASE_P(Prefix, CaseName, Types) \
17532 bool gtest_##Prefix##_##CaseName GTEST_ATTRIBUTE_UNUSED_ = \
17533 ::testing::internal::TypeParameterizedTestCase<CaseName, \
17534 GTEST_CASE_NAMESPACE_(CaseName)::gtest_AllTests_, \
17535 ::testing::internal::TypeList< Types >::type>::Register(\
17536 #Prefix, #CaseName, GTEST_REGISTERED_TEST_NAMES_(CaseName))
17538 #endif // GTEST_HAS_TYPED_TEST_P
17540 #endif // GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_
17557 namespace testing {
17626 namespace internal {
17628 class AssertHelper;
17629 class DefaultGlobalTestPartResultReporter;
17630 class ExecDeathTest;
17631 class NoExecDeathTest;
17632 class FinalSuccessChecker;
17633 class GTestFlagSaver;
17634 class StreamingListenerTest;
17635 class TestResultAccessor;
17636 class TestEventListenersAccessor;
17637 class TestEventRepeater;
17638 class UnitTestRecordPropertyTestHelper;
17639 class WindowsDeathTest;
17642 const std::string& message);
17742 operator bool()
const {
return success_; }
17752 return message_.get() != NULL ? message_->c_str() :
"";
17760 AppendMessage(
Message() << value);
17767 ::std::ostream& (*basic_manipulator)(::std::ostream& stream)) {
17768 AppendMessage(
Message() << basic_manipulator);
17774 void AppendMessage(
const Message& a_message) {
17775 if (message_.get() == NULL)
17776 message_.reset(new ::std::string);
17777 message_->append(a_message.
GetString().c_str());
17786 internal::scoped_ptr< ::std::string> message_;
17788 GTEST_DISALLOW_ASSIGN_(AssertionResult);
17853 static bool HasFatalFailure();
17856 static bool HasNonfatalFailure();
17860 static bool HasFailure() {
return HasFatalFailure() || HasNonfatalFailure(); }
17875 static void RecordProperty(
const std::string& key,
const std::string&
value);
17876 static void RecordProperty(
const std::string& key,
int value);
17883 virtual void SetUp();
17886 virtual void TearDown();
17891 static bool HasSameFixtureClass();
17899 virtual void TestBody() = 0;
17906 void DeleteSelf_() {
delete this; }
17909 const internal::GTestFlagSaver*
const gtest_flag_saver_;
17927 struct Setup_should_be_spelled_SetUp {};
17928 virtual Setup_should_be_spelled_SetUp* Setup() {
return NULL; }
17931 GTEST_DISALLOW_COPY_AND_ASSIGN_(Test);
17946 key_(a_key), value_(a_value) {
17951 return key_.c_str();
17956 return value_.c_str();
17961 value_ = new_value;
17968 std::string value_;
17987 int total_part_count()
const;
17990 int test_property_count()
const;
17996 bool Failed()
const;
17999 bool HasFatalFailure()
const;
18002 bool HasNonfatalFailure()
const;
18021 friend class internal::DefaultGlobalTestPartResultReporter;
18022 friend class internal::ExecDeathTest;
18023 friend class internal::TestResultAccessor;
18024 friend class internal::UnitTestImpl;
18025 friend class internal::WindowsDeathTest;
18028 const std::vector<TestPartResult>& test_part_results()
const {
18029 return test_part_results_;
18033 const std::vector<TestProperty>& test_properties()
const {
18034 return test_properties_;
18038 void set_elapsed_time(
TimeInMillis elapsed) { elapsed_time_ = elapsed; }
18046 void RecordProperty(
const std::string& xml_element,
18047 const TestProperty& test_property);
18052 static bool ValidateTestProperty(
const std::string& xml_element,
18053 const TestProperty& test_property);
18056 void AddTestPartResult(
const TestPartResult& test_part_result);
18059 int death_test_count()
const {
return death_test_count_; }
18062 int increment_death_test_count() {
return ++death_test_count_; }
18065 void ClearTestPartResults();
18072 internal::Mutex test_properites_mutex_;
18075 std::vector<TestPartResult> test_part_results_;
18077 std::vector<TestProperty> test_properties_;
18079 int death_test_count_;
18084 GTEST_DISALLOW_COPY_AND_ASSIGN_(TestResult);
18108 const char*
name()
const {
return name_.c_str(); }
18113 if (type_param_.get() != NULL)
18114 return type_param_->c_str();
18121 if (value_param_.get() != NULL)
18122 return value_param_->c_str();
18149 return matches_filter_;
18156 #if GTEST_HAS_DEATH_TEST
18158 #endif // GTEST_HAS_DEATH_TEST
18161 friend class internal::UnitTestImpl;
18162 friend class internal::StreamingListenerTest;
18164 const char* test_case_name,
18166 const char* type_param,
18167 const char* value_param,
18175 TestInfo(
const std::string& test_case_name,
18176 const std::string&
name,
18177 const char* a_type_param,
18178 const char* a_value_param,
18184 int increment_death_test_count() {
18185 return result_.increment_death_test_count();
18192 static void ClearTestResult(
TestInfo* test_info) {
18193 test_info->result_.Clear();
18197 const std::string test_case_name_;
18198 const std::string name_;
18201 const internal::scoped_ptr<const ::std::string> type_param_;
18204 const internal::scoped_ptr<const ::std::string> value_param_;
18208 bool matches_filter_;
18210 internal::TestFactoryBase*
const factory_;
18215 TestResult result_;
18217 GTEST_DISALLOW_COPY_AND_ASSIGN_(TestInfo);
18245 const char*
name()
const {
return name_.c_str(); }
18250 if (type_param_.get() != NULL)
18251 return type_param_->c_str();
18259 int successful_test_count()
const;
18262 int failed_test_count()
const;
18265 int reportable_disabled_test_count()
const;
18268 int disabled_test_count()
const;
18271 int reportable_test_count()
const;
18274 int test_to_run_count()
const;
18277 int total_test_count()
const;
18283 bool Failed()
const {
return failed_test_count() > 0; }
18290 const TestInfo* GetTestInfo(
int i)
const;
18298 friend class internal::UnitTestImpl;
18301 std::vector<TestInfo*>& test_info_list() {
return test_info_list_; }
18304 const std::vector<TestInfo*>& test_info_list()
const {
18305 return test_info_list_;
18310 TestInfo* GetMutableTestInfo(
int i);
18313 void set_should_run(
bool should) { should_run_ = should; }
18317 void AddTestInfo(TestInfo * test_info);
18320 void ClearResult();
18323 static void ClearTestCaseResult(TestCase* test_case) {
18324 test_case->ClearResult();
18332 void RunSetUpTestCase() { (*set_up_tc_)(); }
18336 void RunTearDownTestCase() { (*tear_down_tc_)(); }
18339 static bool TestPassed(
const TestInfo* test_info) {
18340 return test_info->should_run() && test_info->result()->Passed();
18344 static bool TestFailed(
const TestInfo* test_info) {
18345 return test_info->should_run() && test_info->result()->Failed();
18350 static bool TestReportableDisabled(
const TestInfo* test_info) {
18351 return test_info->is_reportable() && test_info->is_disabled_;
18355 static bool TestDisabled(
const TestInfo* test_info) {
18356 return test_info->is_disabled_;
18360 static bool TestReportable(
const TestInfo* test_info) {
18361 return test_info->is_reportable();
18365 static bool ShouldRunTest(
const TestInfo* test_info) {
18366 return test_info->should_run();
18370 void ShuffleTests(internal::Random* random);
18373 void UnshuffleTests();
18379 const internal::scoped_ptr<const ::std::string> type_param_;
18382 std::vector<TestInfo*> test_info_list_;
18386 std::vector<int> test_indices_;
18397 TestResult ad_hoc_test_result_;
18400 GTEST_DISALLOW_COPY_AND_ASSIGN_(TestCase);
18430 struct Setup_should_be_spelled_SetUp {};
18431 virtual Setup_should_be_spelled_SetUp* Setup() {
return NULL; }
18441 virtual void OnTestProgramStart(
const UnitTest& unit_test) = 0;
18446 virtual void OnTestIterationStart(
const UnitTest& unit_test,
18447 int iteration) = 0;
18450 virtual void OnEnvironmentsSetUpStart(
const UnitTest& unit_test) = 0;
18453 virtual void OnEnvironmentsSetUpEnd(
const UnitTest& unit_test) = 0;
18456 virtual void OnTestCaseStart(
const TestCase& test_case) = 0;
18459 virtual void OnTestStart(
const TestInfo& test_info) = 0;
18462 virtual void OnTestPartResult(
const TestPartResult& test_part_result) = 0;
18465 virtual void OnTestEnd(
const TestInfo& test_info) = 0;
18468 virtual void OnTestCaseEnd(
const TestCase& test_case) = 0;
18471 virtual void OnEnvironmentsTearDownStart(
const UnitTest& unit_test) = 0;
18474 virtual void OnEnvironmentsTearDownEnd(
const UnitTest& unit_test) = 0;
18477 virtual void OnTestIterationEnd(
const UnitTest& unit_test,
18478 int iteration) = 0;
18481 virtual void OnTestProgramEnd(
const UnitTest& unit_test) = 0;
18530 return default_result_printer_;
18541 return default_xml_generator_;
18547 friend class internal::DefaultGlobalTestPartResultReporter;
18548 friend class internal::NoExecDeathTest;
18549 friend class internal::TestEventListenersAccessor;
18550 friend class internal::UnitTestImpl;
18572 bool EventForwardingEnabled()
const;
18573 void SuppressEventForwarding();
18576 internal::TestEventRepeater* repeater_;
18609 int Run() GTEST_MUST_USE_RESULT_;
18613 const char* original_working_dir()
const;
18617 const TestCase* current_test_case()
const
18618 GTEST_LOCK_EXCLUDED_(mutex_);
18622 const TestInfo* current_test_info()
const
18623 GTEST_LOCK_EXCLUDED_(mutex_);
18626 int random_seed()
const;
18628 #if GTEST_HAS_PARAM_TEST
18634 GTEST_LOCK_EXCLUDED_(mutex_);
18635 #endif // GTEST_HAS_PARAM_TEST
18638 int successful_test_case_count()
const;
18641 int failed_test_case_count()
const;
18644 int total_test_case_count()
const;
18648 int test_case_to_run_count()
const;
18651 int successful_test_count()
const;
18654 int failed_test_count()
const;
18657 int reportable_disabled_test_count()
const;
18660 int disabled_test_count()
const;
18663 int reportable_test_count()
const;
18666 int total_test_count()
const;
18669 int test_to_run_count()
const;
18679 bool Passed()
const;
18683 bool Failed()
const;
18687 const TestCase* GetTestCase(
int i)
const;
18691 const TestResult& ad_hoc_test_result()
const;
18716 const std::string& message,
18717 const std::string& os_stack_trace)
18718 GTEST_LOCK_EXCLUDED_(mutex_);
18725 void RecordProperty(
const std::string& key,
const std::string&
value);
18729 TestCase* GetMutableTestCase(
int i);
18732 internal::UnitTestImpl* impl() {
return impl_; }
18733 const internal::UnitTestImpl* impl()
const {
return impl_; }
18740 friend class internal::StreamingListenerTest;
18741 friend class internal::UnitTestRecordPropertyTestHelper;
18746 const std::string& message);
18756 void PushGTestTrace(
const internal::TraceInfo&
trace)
18757 GTEST_LOCK_EXCLUDED_(mutex_);
18760 void PopGTestTrace()
18761 GTEST_LOCK_EXCLUDED_(mutex_);
18765 mutable internal::Mutex mutex_;
18771 internal::UnitTestImpl* impl_;
18774 GTEST_DISALLOW_COPY_AND_ASSIGN_(
UnitTest);
18796 return UnitTest::GetInstance()->AddEnvironment(env);
18814 namespace internal {
18831 template <
typename ToPr
int,
typename OtherOperand>
18834 static ::std::string
Format(
const ToPrint& value) {
18840 template <
typename ToPr
int,
size_t N,
typename OtherOperand>
18843 static ::std::string
Format(
const ToPrint* value) {
18851 #define GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(CharType) \
18852 template <typename OtherOperand> \
18853 class FormatForComparison<CharType*, OtherOperand> { \
18855 static ::std::string Format(CharType* value) { \
18856 return ::testing::PrintToString(static_cast<const void*>(value)); \
18865 #undef GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_
18870 #define GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(CharType, OtherStringType) \
18872 class FormatForComparison<CharType*, OtherStringType> { \
18874 static ::std::string Format(CharType* value) { \
18875 return ::testing::PrintToString(value); \
18882 #if GTEST_HAS_GLOBAL_STRING
18887 #if GTEST_HAS_GLOBAL_WSTRING
18892 #if GTEST_HAS_STD_WSTRING
18897 #undef GTEST_IMPL_FORMAT_C_STRING_AS_STRING_
18907 template <
typename T1,
typename T2>
18909 const T1& value,
const T2& ) {
18914 template <
typename T1,
typename T2>
18916 const char* actual_expression,
18917 const T1& expected,
18918 const T2& actual) {
18920 # pragma warning(push) // Saves the current warning state.
18921 # pragma warning(disable:4389) // Temporarily disables warning on
18925 if (expected == actual) {
18930 # pragma warning(pop) // Restores the warning state.
18944 const char* actual_expression,
18952 template <
bool lhs_is_null_literal>
18956 template <
typename T1,
typename T2>
18958 const char* actual_expression,
18959 const T1& expected,
18960 const T2& actual) {
18961 return CmpHelperEQ(expected_expression, actual_expression, expected,
18972 const char* actual_expression,
18975 return CmpHelperEQ(expected_expression, actual_expression, expected,
18989 template <
typename T1,
typename T2>
18991 const char* expected_expression,
18992 const char* actual_expression,
18993 const T1& expected,
19001 return CmpHelperEQ(expected_expression, actual_expression, expected,
19007 template <
typename T>
19009 const char* expected_expression,
19010 const char* actual_expression,
19020 return CmpHelperEQ(expected_expression, actual_expression,
19021 static_cast<T*>(NULL), actual);
19035 #define GTEST_IMPL_CMP_HELPER_(op_name, op)\
19036 template <typename T1, typename T2>\
19037 AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \
19038 const T1& val1, const T2& val2) {\
19039 if (val1 op val2) {\
19040 return AssertionSuccess();\
19042 return AssertionFailure() \
19043 << "Expected: (" << expr1 << ") " #op " (" << expr2\
19044 << "), actual: " << FormatForComparisonFailureMessage(val1, val2)\
19045 << " vs " << FormatForComparisonFailureMessage(val2, val1);\
19048 GTEST_API_ AssertionResult CmpHelper##op_name(\
19049 const char* expr1, const char* expr2, BiggestInt val1, BiggestInt val2)
19064 #undef GTEST_IMPL_CMP_HELPER_
19070 const char* actual_expression,
19071 const char* expected,
19072 const char* actual);
19078 const char* actual_expression,
19079 const char* expected,
19080 const char* actual);
19086 const char* s2_expression,
19094 const char* s2_expression,
19103 const char* actual_expression,
19104 const wchar_t* expected,
19105 const wchar_t* actual);
19111 const char* s2_expression,
19113 const wchar_t* s2);
19126 const char* needle_expr,
const char* haystack_expr,
19127 const char* needle,
const char* haystack);
19129 const char* needle_expr,
const char* haystack_expr,
19130 const wchar_t* needle,
const wchar_t* haystack);
19132 const char* needle_expr,
const char* haystack_expr,
19133 const char* needle,
const char* haystack);
19135 const char* needle_expr,
const char* haystack_expr,
19136 const wchar_t* needle,
const wchar_t* haystack);
19138 const char* needle_expr,
const char* haystack_expr,
19139 const ::std::string& needle, const ::std::string& haystack);
19141 const char* needle_expr,
const char* haystack_expr,
19142 const ::std::string& needle, const ::std::string& haystack);
19144 #if GTEST_HAS_STD_WSTRING
19146 const char* needle_expr,
const char* haystack_expr,
19149 const char* needle_expr,
const char* haystack_expr,
19151 #endif // GTEST_HAS_STD_WSTRING
19153 namespace internal {
19162 template <
typename RawType>
19164 const char* actual_expression,
19169 if (lhs.AlmostEquals(rhs)) {
19173 ::std::stringstream expected_ss;
19174 expected_ss << std::setprecision(std::numeric_limits<RawType>::digits10 + 2)
19177 ::std::stringstream actual_ss;
19178 actual_ss << std::setprecision(std::numeric_limits<RawType>::digits10 + 2)
19193 const char* abs_error_expr,
19206 const char* message);
19211 void operator=(
const Message& message)
const;
19218 struct AssertHelperData {
19220 const char* srcfile,
19223 :
type(t), file(srcfile),
line(line_num), message(msg) { }
19226 const char*
const file;
19228 std::string
const message;
19231 GTEST_DISALLOW_COPY_AND_ASSIGN_(AssertHelperData);
19234 AssertHelperData*
const data_;
19241 #if GTEST_HAS_PARAM_TEST
19276 template <
typename T>
19288 GTEST_CHECK_(parameter_ != NULL)
19289 <<
"GetParam() can only be called inside a value-parameterized test "
19290 <<
"-- did you intend to write TEST_P instead of TEST_F?";
19291 return *parameter_;
19297 static void SetParam(
const ParamType* parameter) {
19298 parameter_ = parameter;
19302 static const ParamType* parameter_;
19308 template <
typename T>
19314 template <
typename T>
19318 #endif // GTEST_HAS_PARAM_TEST
19340 #define ADD_FAILURE() GTEST_NONFATAL_FAILURE_("Failed")
19344 #define ADD_FAILURE_AT(file, line) \
19345 GTEST_MESSAGE_AT_(file, line, "Failed", \
19346 ::testing::TestPartResult::kNonFatalFailure)
19349 #define GTEST_FAIL() GTEST_FATAL_FAILURE_("Failed")
19353 #if !GTEST_DONT_DEFINE_FAIL
19354 # define FAIL() GTEST_FAIL()
19358 #define GTEST_SUCCEED() GTEST_SUCCESS_("Succeeded")
19362 #if !GTEST_DONT_DEFINE_SUCCEED
19363 # define SUCCEED() GTEST_SUCCEED()
19375 #define EXPECT_THROW(statement, expected_exception) \
19376 GTEST_TEST_THROW_(statement, expected_exception, GTEST_NONFATAL_FAILURE_)
19377 #define EXPECT_NO_THROW(statement) \
19378 GTEST_TEST_NO_THROW_(statement, GTEST_NONFATAL_FAILURE_)
19379 #define EXPECT_ANY_THROW(statement) \
19380 GTEST_TEST_ANY_THROW_(statement, GTEST_NONFATAL_FAILURE_)
19381 #define ASSERT_THROW(statement, expected_exception) \
19382 GTEST_TEST_THROW_(statement, expected_exception, GTEST_FATAL_FAILURE_)
19383 #define ASSERT_NO_THROW(statement) \
19384 GTEST_TEST_NO_THROW_(statement, GTEST_FATAL_FAILURE_)
19385 #define ASSERT_ANY_THROW(statement) \
19386 GTEST_TEST_ANY_THROW_(statement, GTEST_FATAL_FAILURE_)
19391 #define EXPECT_TRUE(condition) \
19392 GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \
19393 GTEST_NONFATAL_FAILURE_)
19394 #define EXPECT_FALSE(condition) \
19395 GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \
19396 GTEST_NONFATAL_FAILURE_)
19397 #define ASSERT_TRUE(condition) \
19398 GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \
19399 GTEST_FATAL_FAILURE_)
19400 #define ASSERT_FALSE(condition) \
19401 GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \
19402 GTEST_FATAL_FAILURE_)
19440 #ifndef GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
19441 #define GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
19444 #ifndef GTEST_INCLUDE_GTEST_GTEST_H_
19445 # error Do not include gtest_pred_impl.h directly. Include gtest.h instead.
19446 #endif // GTEST_INCLUDE_GTEST_GTEST_H_
19480 #define GTEST_ASSERT_(expression, on_failure) \
19481 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
19482 if (const ::testing::AssertionResult gtest_ar = (expression)) \
19485 on_failure(gtest_ar.failure_message())
19490 template <
typename Pred,
19499 << e1 <<
") evaluates to false, where"
19500 <<
"\n" << e1 <<
" evaluates to " << v1;
19505 #define GTEST_PRED_FORMAT1_(pred_format, v1, on_failure)\
19506 GTEST_ASSERT_(pred_format(#v1, v1), \
19511 #define GTEST_PRED1_(pred, v1, on_failure)\
19512 GTEST_ASSERT_(::testing::AssertPred1Helper(#pred, \
19518 #define EXPECT_PRED_FORMAT1(pred_format, v1) \
19519 GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_)
19520 #define EXPECT_PRED1(pred, v1) \
19521 GTEST_PRED1_(pred, v1, GTEST_NONFATAL_FAILURE_)
19522 #define ASSERT_PRED_FORMAT1(pred_format, v1) \
19523 GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
19524 #define ASSERT_PRED1(pred, v1) \
19525 GTEST_PRED1_(pred, v1, GTEST_FATAL_FAILURE_)
19531 template <
typename Pred,
19544 << e2 <<
") evaluates to false, where"
19545 <<
"\n" << e1 <<
" evaluates to " << v1
19546 <<
"\n" << e2 <<
" evaluates to " << v2;
19551 #define GTEST_PRED_FORMAT2_(pred_format, v1, v2, on_failure)\
19552 GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), \
19557 #define GTEST_PRED2_(pred, v1, v2, on_failure)\
19558 GTEST_ASSERT_(::testing::AssertPred2Helper(#pred, \
19566 #define EXPECT_PRED_FORMAT2(pred_format, v1, v2) \
19567 GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_NONFATAL_FAILURE_)
19568 #define EXPECT_PRED2(pred, v1, v2) \
19569 GTEST_PRED2_(pred, v1, v2, GTEST_NONFATAL_FAILURE_)
19570 #define ASSERT_PRED_FORMAT2(pred_format, v1, v2) \
19571 GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_)
19572 #define ASSERT_PRED2(pred, v1, v2) \
19573 GTEST_PRED2_(pred, v1, v2, GTEST_FATAL_FAILURE_)
19579 template <
typename Pred,
19596 << e3 <<
") evaluates to false, where"
19597 <<
"\n" << e1 <<
" evaluates to " << v1
19598 <<
"\n" << e2 <<
" evaluates to " << v2
19599 <<
"\n" << e3 <<
" evaluates to " << v3;
19604 #define GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, on_failure)\
19605 GTEST_ASSERT_(pred_format(#v1, #v2, #v3, v1, v2, v3), \
19610 #define GTEST_PRED3_(pred, v1, v2, v3, on_failure)\
19611 GTEST_ASSERT_(::testing::AssertPred3Helper(#pred, \
19621 #define EXPECT_PRED_FORMAT3(pred_format, v1, v2, v3) \
19622 GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, GTEST_NONFATAL_FAILURE_)
19623 #define EXPECT_PRED3(pred, v1, v2, v3) \
19624 GTEST_PRED3_(pred, v1, v2, v3, GTEST_NONFATAL_FAILURE_)
19625 #define ASSERT_PRED_FORMAT3(pred_format, v1, v2, v3) \
19626 GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, GTEST_FATAL_FAILURE_)
19627 #define ASSERT_PRED3(pred, v1, v2, v3) \
19628 GTEST_PRED3_(pred, v1, v2, v3, GTEST_FATAL_FAILURE_)
19634 template <
typename Pred,
19655 << e4 <<
") evaluates to false, where"
19656 <<
"\n" << e1 <<
" evaluates to " << v1
19657 <<
"\n" << e2 <<
" evaluates to " << v2
19658 <<
"\n" << e3 <<
" evaluates to " << v3
19659 <<
"\n" << e4 <<
" evaluates to " << v4;
19664 #define GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, on_failure)\
19665 GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, v1, v2, v3, v4), \
19670 #define GTEST_PRED4_(pred, v1, v2, v3, v4, on_failure)\
19671 GTEST_ASSERT_(::testing::AssertPred4Helper(#pred, \
19683 #define EXPECT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \
19684 GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, GTEST_NONFATAL_FAILURE_)
19685 #define EXPECT_PRED4(pred, v1, v2, v3, v4) \
19686 GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_NONFATAL_FAILURE_)
19687 #define ASSERT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \
19688 GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, GTEST_FATAL_FAILURE_)
19689 #define ASSERT_PRED4(pred, v1, v2, v3, v4) \
19690 GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_FATAL_FAILURE_)
19696 template <
typename Pred,
19721 << e5 <<
") evaluates to false, where"
19722 <<
"\n" << e1 <<
" evaluates to " << v1
19723 <<
"\n" << e2 <<
" evaluates to " << v2
19724 <<
"\n" << e3 <<
" evaluates to " << v3
19725 <<
"\n" << e4 <<
" evaluates to " << v4
19726 <<
"\n" << e5 <<
" evaluates to " << v5;
19731 #define GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, on_failure)\
19732 GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, #v5, v1, v2, v3, v4, v5), \
19737 #define GTEST_PRED5_(pred, v1, v2, v3, v4, v5, on_failure)\
19738 GTEST_ASSERT_(::testing::AssertPred5Helper(#pred, \
19752 #define EXPECT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \
19753 GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, GTEST_NONFATAL_FAILURE_)
19754 #define EXPECT_PRED5(pred, v1, v2, v3, v4, v5) \
19755 GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_NONFATAL_FAILURE_)
19756 #define ASSERT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \
19757 GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_)
19758 #define ASSERT_PRED5(pred, v1, v2, v3, v4, v5) \
19759 GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_)
19763 #endif // GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
19811 #define EXPECT_EQ(expected, actual) \
19812 EXPECT_PRED_FORMAT2(::testing::internal:: \
19813 EqHelper<GTEST_IS_NULL_LITERAL_(expected)>::Compare, \
19815 #define EXPECT_NE(expected, actual) \
19816 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperNE, expected, actual)
19817 #define EXPECT_LE(val1, val2) \
19818 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperLE, val1, val2)
19819 #define EXPECT_LT(val1, val2) \
19820 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperLT, val1, val2)
19821 #define EXPECT_GE(val1, val2) \
19822 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGE, val1, val2)
19823 #define EXPECT_GT(val1, val2) \
19824 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2)
19826 #define GTEST_ASSERT_EQ(expected, actual) \
19827 ASSERT_PRED_FORMAT2(::testing::internal:: \
19828 EqHelper<GTEST_IS_NULL_LITERAL_(expected)>::Compare, \
19830 #define GTEST_ASSERT_NE(val1, val2) \
19831 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperNE, val1, val2)
19832 #define GTEST_ASSERT_LE(val1, val2) \
19833 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperLE, val1, val2)
19834 #define GTEST_ASSERT_LT(val1, val2) \
19835 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperLT, val1, val2)
19836 #define GTEST_ASSERT_GE(val1, val2) \
19837 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperGE, val1, val2)
19838 #define GTEST_ASSERT_GT(val1, val2) \
19839 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2)
19844 #if !GTEST_DONT_DEFINE_ASSERT_EQ
19845 # define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
19848 #if !GTEST_DONT_DEFINE_ASSERT_NE
19849 # define ASSERT_NE(val1, val2) GTEST_ASSERT_NE(val1, val2)
19852 #if !GTEST_DONT_DEFINE_ASSERT_LE
19853 # define ASSERT_LE(val1, val2) GTEST_ASSERT_LE(val1, val2)
19856 #if !GTEST_DONT_DEFINE_ASSERT_LT
19857 # define ASSERT_LT(val1, val2) GTEST_ASSERT_LT(val1, val2)
19860 #if !GTEST_DONT_DEFINE_ASSERT_GE
19861 # define ASSERT_GE(val1, val2) GTEST_ASSERT_GE(val1, val2)
19864 #if !GTEST_DONT_DEFINE_ASSERT_GT
19865 # define ASSERT_GT(val1, val2) GTEST_ASSERT_GT(val1, val2)
19884 #define EXPECT_STREQ(expected, actual) \
19885 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTREQ, expected, actual)
19886 #define EXPECT_STRNE(s1, s2) \
19887 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2)
19888 #define EXPECT_STRCASEEQ(expected, actual) \
19889 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, expected, actual)
19890 #define EXPECT_STRCASENE(s1, s2)\
19891 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2)
19893 #define ASSERT_STREQ(expected, actual) \
19894 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTREQ, expected, actual)
19895 #define ASSERT_STRNE(s1, s2) \
19896 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2)
19897 #define ASSERT_STRCASEEQ(expected, actual) \
19898 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, expected, actual)
19899 #define ASSERT_STRCASENE(s1, s2)\
19900 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2)
19916 #define EXPECT_FLOAT_EQ(expected, actual)\
19917 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<float>, \
19920 #define EXPECT_DOUBLE_EQ(expected, actual)\
19921 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<double>, \
19924 #define ASSERT_FLOAT_EQ(expected, actual)\
19925 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<float>, \
19928 #define ASSERT_DOUBLE_EQ(expected, actual)\
19929 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<double>, \
19932 #define EXPECT_NEAR(val1, val2, abs_error)\
19933 EXPECT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \
19934 val1, val2, abs_error)
19936 #define ASSERT_NEAR(val1, val2, abs_error)\
19937 ASSERT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \
19938 val1, val2, abs_error)
19947 GTEST_API_ AssertionResult
FloatLE(
const char* expr1,
const char* expr2,
19948 float val1,
float val2);
19949 GTEST_API_ AssertionResult
DoubleLE(
const char* expr1,
const char* expr2,
19950 double val1,
double val2);
19953 #if GTEST_OS_WINDOWS
19964 # define EXPECT_HRESULT_SUCCEEDED(expr) \
19965 EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr))
19967 # define ASSERT_HRESULT_SUCCEEDED(expr) \
19968 ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr))
19970 # define EXPECT_HRESULT_FAILED(expr) \
19971 EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr))
19973 # define ASSERT_HRESULT_FAILED(expr) \
19974 ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr))
19976 #endif // GTEST_OS_WINDOWS
19988 #define ASSERT_NO_FATAL_FAILURE(statement) \
19989 GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_FATAL_FAILURE_)
19990 #define EXPECT_NO_FATAL_FAILURE(statement) \
19991 GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_NONFATAL_FAILURE_)
20004 #define SCOPED_TRACE(message) \
20005 ::testing::internal::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)(\
20006 __FILE__, __LINE__, ::testing::Message() << (message))
20038 template <
typename T1,
typename T2>
20069 #define GTEST_TEST(test_case_name, test_name)\
20070 GTEST_TEST_(test_case_name, test_name, \
20071 ::testing::Test, ::testing::internal::GetTestTypeId())
20075 #if !GTEST_DONT_DEFINE_TEST
20076 # define TEST(test_case_name, test_name) GTEST_TEST(test_case_name, test_name)
20105 #define TEST_F(test_fixture, test_name)\
20106 GTEST_TEST_(test_fixture, test_name, test_fixture, \
20107 ::testing::internal::GetTypeId<test_fixture>())
20122 return ::testing::UnitTest::GetInstance()->Run();
20125 #endif // GTEST_INCLUDE_GTEST_GTEST_H_
T5 type
Definition: ts_gtest.h:859
FILE * FReopen(const char *path, const char *mode, FILE *stream)
Definition: ts_gtest.h:2934
bool Failed() const
Definition: ts_gtest.h:18283
testing::Types< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types19< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 > type
Definition: ts_gtest.h:4820
Definition: ts_gtest.h:5805
T1 Head
Definition: ts_gtest.h:3985
TemplateSel< T1 > Head
Definition: ts_gtest.h:5668
static void Print(const char *str,::std::ostream *os)
Definition: ts_gtest.h:9956
Definition: ts_gtest.h:4429
GTEST_API_ AssertionResult CmpHelperSTREQ(const char *expected_expression, const char *actual_expression, const wchar_t *expected, const wchar_t *actual)
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates27< 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 > type
Definition: ts_gtest.h:6560
GTEST_API_ AssertionResult DoubleLE(const char *expr1, const char *expr2, double val1, double val2)
static RawType ReinterpretBits(const Bits bits)
Definition: ts_gtest.h:7308
static bool Register(const char *prefix, const char *case_name, const char *test_names, int index)
Definition: ts_gtest.h:7593
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)
Definition: ts_gtest.h:18990
~InternalRunDeathTestFlag()
Definition: ts_gtest.h:8461
pthread_mutex_t mutex_
Definition: ts_gtest.h:2526
scoped_ptr(T *p=NULL)
Definition: ts_gtest.h:2052
const TestResult & ad_hoc_test_result() const
Definition: ts_gtest.h:18294
int write_fd() const
Definition: ts_gtest.h:8469
~GTestMutexLock()
Definition: ts_gtest.h:2574
short float uchar uchar uchar uchar uchar ushort int uchar ushort int float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float float int int int float int int int float int CV_CUDEV_IMPLEMENT_VEC_BINARY_OP char CV_CUDEV_IMPLEMENT_VEC_BINARY_OP ushort CV_CUDEV_IMPLEMENT_VEC_BINARY_OP short CV_CUDEV_IMPLEMENT_VEC_BINARY_OP int CV_CUDEV_IMPLEMENT_VEC_BINARY_OP uint CV_CUDEV_IMPLEMENT_VEC_BINARY_OP float CV_CUDEV_IMPLEMENT_VEC_BINARY_OP double char
Definition: vec_math.hpp:426
Definition: ts_gtest.h:7800
const CvArr CvArr CvArr const CvPoint2D32f CvPoint2D32f int CvSize int char * status
Definition: tracking.hpp:73
int index() const
Definition: ts_gtest.h:8468
virtual void OnEnvironmentsSetUpEnd(const UnitTest &)
Definition: ts_gtest.h:18495
Definition: ts_gtest.h:10023
Definition: ts_gtest.h:15769
~Notification()
Definition: ts_gtest.h:2365
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)
Definition: ts_gtest.h:11792
GTEST_API_ bool AlwaysTrue()
Definition: ts_gtest.h:4230
Definition: ts_gtest.h:17250
const char * pets[]
Definition: ts_gtest.h:8916
bool operator==(linked_ptr< U > const &ptr) const
Definition: ts_gtest.h:9200
void ReportFailureInUnknownLocation(TestPartResult::Type result_type, const std::string &message)
Templates19< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20 > Tail
Definition: ts_gtest.h:5585
void Set(const FilePath &rhs)
Definition: ts_gtest.h:3611
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, T8, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates8< T1, T2, T3, T4, T5, T6, T7, T8 > type
Definition: ts_gtest.h:6291
Definition: ts_gtest.h:2402
virtual ParamIteratorInterface< ParamType > * Begin() const
Definition: ts_gtest.h:13961
Environment * AddGlobalTestEnvironment(Environment *env)
Definition: ts_gtest.h:18795
internal::SetUpTestCaseFunc SetUpTestCaseFunc
Definition: ts_gtest.h:17830
testing::internal::Templates< T1, T2, T3, T4, T5, T6, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates6< T1, T2, T3, T4, T5, T6 > type
Definition: ts_gtest.h:6271
Definition: ts_gtest.h:2569
CartesianProductHolder3(const Generator1 &g1, const Generator2 &g2, const Generator3 &g3)
Definition: ts_gtest.h:15536
static void TersePrintPrefixToStrings(const Tuple &t, Strings *strings)
Definition: ts_gtest.h:10067
GTEST_API_ std::string GetCapturedStdout()
Definition: ts_gtest.h:5556
GTEST_API_ AssertionResult DoubleNearPredFormat(const char *expr1, const char *expr2, const char *abs_error_expr, double val1, double val2, double abs_error)
GTEST_API_ std::string GetCapturedStderr()
TypeId GetTypeId()
Definition: ts_gtest.h:7438
To ImplicitCast_(To x)
Definition: ts_gtest.h:2256
ParameterizedTestCaseInfoBase()
Definition: ts_gtest.h:10490
testing::internal::Templates< 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, NoneT >::type Templates49< 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 > type
Definition: ts_gtest.h:7037
testing::Types< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types15< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 > type
Definition: ts_gtest.h:4753
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types31< 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 > type
Definition: ts_gtest.h:5027
Definition: ts_gtest.h:14083
Definition: ts_gtest.h:13229
virtual Test * CreateTest()
Definition: ts_gtest.h:10418
ParamIterator & operator++()
Definition: ts_gtest.h:10176
Definition: ts_gtest.h:9376
void Unlock()
Definition: ts_gtest.h:2707
const char * message() const
Definition: ts_gtest.h:17192
const T1 const T2 const T3 const T4 const T5 const T6 const T7 & f7
Definition: ts_gtest.h:1398
bool AlmostEquals(const FloatingPoint &rhs) const
Definition: ts_gtest.h:7349
T1 Head
Definition: ts_gtest.h:4292
Types20< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21 > Tail
Definition: ts_gtest.h:4028
TemplateSel< T1 > Head
Definition: ts_gtest.h:5610
InternalRunDeathTestFlag(const std::string &a_file, int a_line, int an_index, int a_write_fd)
Definition: ts_gtest.h:8454
bool type
Definition: ts_gtest.h:3844
T1 Head
Definition: ts_gtest.h:4015
Types2< T2, T3 > Tail
Definition: ts_gtest.h:3879
ParameterizedTestCaseRegistry()
Definition: ts_gtest.h:10618
Definition: ts_gtest.h:7727
GTEST_API_ AssertionResult IsSubstring(const char *needle_expr, const char *haystack_expr, const ::std::wstring &needle, const ::std::wstring &haystack)
virtual Test * CreateTest()
Definition: ts_gtest.h:7475
FilePath()
Definition: ts_gtest.h:3599
Definition: ts_gtest.h:3940
GTEST_API_ std::string GetCurrentOsStackTraceExceptTop(UnitTest *unit_test, int skip_count)
Types36< 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 > Tail
Definition: ts_gtest.h:4234
testing::Types< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types18< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 > type
Definition: ts_gtest.h:4804
Definition: ts_gtest.h:11080
Definition: ts_gtest.h:7473
void(* TearDownTestCaseFunc)()
Definition: ts_gtest.h:7493
char * StrDup(const char *src)
Definition: ts_gtest.h:2869
T3 type
Definition: ts_gtest.h:849
const char * file_name() const
Definition: ts_gtest.h:17180
T1 Head
Definition: ts_gtest.h:4216
TestFactoryBase()
Definition: ts_gtest.h:7464
linked_ptr(linked_ptr< U > const &ptr)
Definition: ts_gtest.h:9167
int CvScalar value
Definition: core_c.h:340
void Lock()
Definition: ts_gtest.h:2497
const T1 const T2 const T3 & f3
Definition: ts_gtest.h:1374
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates34< 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 > type
Definition: ts_gtest.h:6693
virtual ParamIteratorInterface< ParamType > * End() const
Definition: ts_gtest.h:14606
GTEST_DECLARE_string_(stream_result_to)
Element value_type
Definition: ts_gtest.h:7988
Templates16< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 > Tail
Definition: ts_gtest.h:5547
tuple & operator=(const tuple &)
Definition: ts_gtest.h:889
bool operator==(T *p) const
Definition: ts_gtest.h:9197
Definition: ts_gtest.h:5750
GTEST_IMPL_CMP_HELPER_(GT, >)
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types39< 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 > type
Definition: ts_gtest.h:5170
GTestMutexLock(MutexBase *mutex)
Definition: ts_gtest.h:2571
T1 Head
Definition: ts_gtest.h:3911
Definition: ts_gtest.h:12600
const void * elem
Definition: core_c.h:1075
CartesianProductHolder7(const Generator1 &g1, const Generator2 &g2, const Generator3 &g3, const Generator4 &g4, const Generator5 &g5, const Generator6 &g6, const Generator7 &g7)
Definition: ts_gtest.h:15650
Definition: ts_gtest.h:4275
Definition: ts_gtest.h:3597
Definition: ts_gtest.h:11921
TemplateSel< T1 > Head
Definition: ts_gtest.h:5990
T1 Head
Definition: ts_gtest.h:4048
virtual ~ThreadWithParamBase()
Definition: ts_gtest.h:2404
GTEST_API_ bool SkipPrefix(const char *prefix, const char **pstr)
GTEST_API_ AssertionResult IsNotSubstring(const char *needle_expr, const char *haystack_expr, const ::std::wstring &needle, const ::std::wstring &haystack)
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)
Definition: ts_gtest.h:13043
Definition: ts_gtest.h:8303
Types33< 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 > Tail
Definition: ts_gtest.h:4190
bool AddTestName(const char *file, int line, const char *case_name, const char *test_name)
Definition: ts_gtest.h:7537
Templates4< T2, T3, T4, T5 > Tail
Definition: ts_gtest.h:5433
Definition: ts_gtest.h:3883
CartesianProductHolder4(const Generator1 &g1, const Generator2 &g2, const Generator3 &g3, const Generator4 &g4)
Definition: ts_gtest.h:15561
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)
Definition: ts_gtest.h:11610
Definition: ts_gtest.h:7717
Definition: ts_gtest.h:5431
testing::Types< 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, internal::None, internal::None, internal::None >::type internal::Types47< 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 > type
Definition: ts_gtest.h:5322
static void Print(wchar_t *str,::std::ostream *os)
Definition: ts_gtest.h:9989
FilePath & operator=(const FilePath &rhs)
Definition: ts_gtest.h:3606
CV_EXPORTS void copy(const Mat &src, Mat &dst, const Mat &mask=Mat(), bool invertMask=false)
Tmpl< T > type
Definition: ts_gtest.h:5379
const_iterator end() const
Definition: ts_gtest.h:8014
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)
Definition: ts_gtest.h:11444
void reset(T *p=NULL)
Definition: ts_gtest.h:2065
virtual void OnTestIterationStart(const UnitTest &, int)
Definition: ts_gtest.h:18492
Definition: ts_gtest.h:4117
Definition: ts_gtest.h:4215
AssertionResult AssertPred2Helper(const char *pred_text, const char *e1, const char *e2, Pred pred, const T1 &v1, const T2 &v2)
Definition: ts_gtest.h:19534
void PrintRawArrayTo(const T a[], size_t count,::std::ostream *os)
Definition: ts_gtest.h:9699
Templates23< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24 > Tail
Definition: ts_gtest.h:5640
T1 Head
Definition: ts_gtest.h:3904
T1 Head
Definition: ts_gtest.h:4037
testing::internal::Templates< T1, T2, T3, T4, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates4< T1, T2, T3, T4 > type
Definition: ts_gtest.h:6253
TemplateSel< T1 > Head
Definition: ts_gtest.h:5825
int FClose(FILE *fp)
Definition: ts_gtest.h:2939
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, T8, T9, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates9< T1, T2, T3, T4, T5, T6, T7, T8, T9 > type
Definition: ts_gtest.h:6301
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)
Definition: ts_gtest.h:12772
CartesianProductGenerator5(const ParamGenerator< T1 > &g1, const ParamGenerator< T2 > &g2, const ParamGenerator< T3 > &g3, const ParamGenerator< T4 > &g4, const ParamGenerator< T5 > &g5)
Definition: ts_gtest.h:14239
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)
Definition: ts_gtest.h:14408
linked_ptr(linked_ptr const &ptr)
Definition: ts_gtest.h:9168
Templates12< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 > Tail
Definition: ts_gtest.h:5501
T1 Head
Definition: ts_gtest.h:4026
GTEST_API_ size_t GetThreadCount()
Definition: ts_gtest.h:3871
void WaitForNotification()
Definition: ts_gtest.h:2379
Definition: ts_gtest.h:3840
virtual ParamIteratorInterface< ParamType > * End() const
Definition: ts_gtest.h:14811
Definition: ts_gtest.h:5520
Definition: ts_gtest.h:17940
RE(const ::string ®ex)
Definition: ts_gtest.h:2095
::std::tr1::tuple< T1, T2, T3 > ParamType
Definition: ts_gtest.h:13954
const char * SkipComma(const char *str)
Definition: ts_gtest.h:7563
Definition: ts_gtest.h:15534
Definition: ts_gtest.h:3984
T1 Head
Definition: ts_gtest.h:4082
NativeArray(const NativeArray &rhs)
Definition: ts_gtest.h:7998
::std::tr1::tuple< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 > ParamType
Definition: ts_gtest.h:15256
T3 f3_
Definition: ts_gtest.h:1340
virtual ~ParameterizedTestCaseInfoBase()
Definition: ts_gtest.h:10477
GTEST_API_ void PrintWideStringTo(const ::std::wstring &s,::std::ostream *os)
testing::Types< char, int, unsigned int > MyTypes
Definition: ts_gtest.h:17340
Templates2< T2, T3 > Tail
Definition: ts_gtest.h:5419
::std::tr1::tuple< T1, T2, T3, T4, T5, T6, T7, T8 > ParamType
Definition: ts_gtest.h:14795
ParamIterator(const ParamIterator &other)
Definition: ts_gtest.h:10166
TEST_F(BaseTest, HasFoo)
Definition: ts_gtest.h:8961
Definition: ts_gtest.h:7165
static bool PartialMatch(const ::std::string &str, const RE &re)
Definition: ts_gtest.h:2115
T1 Head
Definition: ts_gtest.h:4201
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)
Definition: ts_gtest.h:15258
Definition: ts_gtest.h:5883
Definition: ts_gtest.h:18223
int IsContainer
Definition: ts_gtest.h:7880
T0 type
Definition: ts_gtest.h:834
Definition: ts_gtest.h:18098
Definition: ts_gtest.h:5623
const T1 const T2 const T3 const T4 const T5 const T6 const T7 const T8 const T9 & f9
Definition: ts_gtest.h:1412
Types41< 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 > Tail
Definition: ts_gtest.h:4311
::string string
Definition: ts_gtest.h:2028
testing::Types< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types14< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 > type
Definition: ts_gtest.h:4737
GTEST_API_ void PrintStringTo(const ::std::string &s,::std::ostream *os)
GTEST_API_ bool IsTrue(bool condition)
GTEST_API_ AssertionResult IsHRESULTSuccess(const char *expr, long hr)
Definition: ts_gtest.h:11043
::std::string PrintToString(const T &value)
Definition: ts_gtest.h:10099
T ParamType
Definition: ts_gtest.h:19279
CvSize CvPoint2D32f int count
Definition: calib3d.hpp:221
AssertionResult(bool success)
Definition: ts_gtest.h:17739
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types29< 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 > type
Definition: ts_gtest.h:4992
virtual ~CartesianProductGenerator2()
Definition: ts_gtest.h:13844
Types13< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 > Tail
Definition: ts_gtest.h:3958
TemplateSel< T1 > Head
Definition: ts_gtest.h:5624
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types42< 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 > type
Definition: ts_gtest.h:5227
Definition: ts_gtest.h:10769
T7 f7_
Definition: ts_gtest.h:1344
Types31< 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 > Tail
Definition: ts_gtest.h:4162
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates39< 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 > type
Definition: ts_gtest.h:6796
CvFileNode const CvStringHashNode * key
Definition: core_c.h:1584
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(1, Tuple)) Field(Tuple &t)
Definition: ts_gtest.h:1503
AssertionResult CmpHelperFloatingPointEQ(const char *expected_expression, const char *actual_expression, RawType expected, RawType actual)
Definition: ts_gtest.h:19163
ValueArray4(T1 v1, T2 v2, T3 v3, T4 v4)
Definition: ts_gtest.h:10811
const char * name() const
Definition: ts_gtest.h:18108
Definition: ts_gtest.h:5401
T & type
Definition: ts_gtest.h:817
virtual void OnTestPartResult(const TestPartResult &)
Definition: ts_gtest.h:18498
Definition: ts_gtest.h:7775
Templates42< 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 > Tail
Definition: ts_gtest.h:5994
CvCmpFunc func
Definition: core_c.h:1072
T1 Head
Definition: ts_gtest.h:3925
const CvArr * U
Definition: core_c.h:733
Definition: ts_gtest.h:2174
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(4, Tuple)) Field(Tuple &t)
Definition: ts_gtest.h:1539
ConstCharPtr(const char *str)
Definition: ts_gtest.h:7687
Definition: ts_gtest.h:12204
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates30< 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 > type
Definition: ts_gtest.h:6616
T1 Head
Definition: ts_gtest.h:4059
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)
Definition: ts_gtest.h:16993
Definition: ts_gtest.h:11390
unsigned long long UInt
Definition: ts_gtest.h:3053
void UniversalTersePrint(const T &value,::std::ostream *os)
Definition: ts_gtest.h:9995
T1 Head
Definition: ts_gtest.h:4308
testing::Types< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types11< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 > type
Definition: ts_gtest.h:4687
Templates29< 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 > Tail
Definition: ts_gtest.h:5736
TemplateSel< T1 > Head
Definition: ts_gtest.h:5545
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(2, Tuple)) Field(Tuple &t)
Definition: ts_gtest.h:1515
IsNotContainer IsContainerTest(long)
Definition: ts_gtest.h:7890
TYPED_TEST_CASE(FooTest, MyTypes)
class GTEST_6_TUPLE_(T)
Definition: ts_gtest.h:1090
virtual ParamIteratorInterface< ParamType > * Begin() const
Definition: ts_gtest.h:14601
Definition: ts_gtest.h:3903
virtual TypeId GetTestCaseTypeId() const
Definition: ts_gtest.h:10519
Types18< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 > Tail
Definition: ts_gtest.h:4007
GTEST_API_ int g_init_gtest_count
extern::std::vector< testing::internal::string > g_argvs
Definition: ts_gtest.h:2335
Templates45< 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 > Tail
Definition: ts_gtest.h:6064
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)
Definition: ts_gtest.h:11121
CartesianProductGenerator2(const ParamGenerator< T1 > &g1, const ParamGenerator< T2 > &g2)
Definition: ts_gtest.h:13841
testing::Types< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types20< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20 > type
Definition: ts_gtest.h:4836
virtual void OnEnvironmentsTearDownStart(const UnitTest &)
Definition: ts_gtest.h:18501
Definition: ts_gtest.h:4014
Definition: ts_gtest.h:14791
Definition: ts_gtest.h:13630
Definition: ts_gtest.h:2432
Definition: ts_gtest.h:4144
Definition: ts_gtest.h:2182
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types43< 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 > type
Definition: ts_gtest.h:5246
CvSize size
Definition: calib3d.hpp:212
T1 type
Definition: ts_gtest.h:839
T value_type
Definition: ts_gtest.h:10161
int IsATTY(int fd)
Definition: ts_gtest.h:2865
Definition: ts_gtest.h:6157
class GTEST_9_TUPLE_(T)
Definition: ts_gtest.h:1238
Definition: ts_gtest.h:7253
bool_constant< bool_value > type
Definition: ts_gtest.h:2770
::std::tr1::tuple< T1, T2, T3, T4, T5, T6 > ParamType
Definition: ts_gtest.h:14406
FloatingPoint(const RawType &x)
Definition: ts_gtest.h:7301
const char * pattern() const
Definition: ts_gtest.h:2103
TestCase::ParamType ParamType
Definition: ts_gtest.h:10509
Definition: ts_gtest.h:5489
virtual void OnTestCaseStart(const TestCase &)
Definition: ts_gtest.h:18496
Types25< 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 > Tail
Definition: ts_gtest.h:4084
Definition: ts_gtest.h:3974
static bool Register(const char *prefix, const char *case_name, const char *test_names)
Definition: ts_gtest.h:7635
Definition: ts_gtest.h:11247
std::string GetString() const
GLuint src
Definition: core_c.h:1650
void DefaultPrintNonContainerTo(const T &value,::std::ostream *os)
Definition: ts_gtest.h:9470
static void PrintPrefixTo(const Tuple &t,::std::ostream *os)
Definition: ts_gtest.h:10026
Definition: ts_gtest.h:4447
void UInt
Definition: ts_gtest.h:3029
Definition: ts_gtest.h:10942
Templates48< 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 > Tail
Definition: ts_gtest.h:6137
Definition: ts_gtest.h:2779
TestEventListener * default_xml_generator() const
Definition: ts_gtest.h:18540
TemplateSel< T1 > Head
Definition: ts_gtest.h:5521
bool ParseInt32(const Message &src_text, const char *str, Int32 *value)
testing::Types< 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, internal::None, internal::None >::type internal::Types48< 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 > type
Definition: ts_gtest.h:5341
void(* SetUpTestCaseFunc)()
Definition: ts_gtest.h:7492
Definition: ts_gtest.h:5824
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates31< 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 > type
Definition: ts_gtest.h:6635
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)
Definition: ts_gtest.h:12359
TemplateSel< T1 > Head
Definition: ts_gtest.h:5439
void SetValue(const std::string &new_value)
Definition: ts_gtest.h:17960
const TestResult * result() const
Definition: ts_gtest.h:18153
Types40< 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 > Tail
Definition: ts_gtest.h:4295
Definition: ts_gtest.h:5582
testing::Types< T1, T2, T3, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types3< T1, T2, T3 > type
Definition: ts_gtest.h:4564
TemplateSel< T1 > Head
Definition: ts_gtest.h:6036
Definition: ts_gtest.h:4340
Definition: ts_gtest.h:2785
T1 Head
Definition: ts_gtest.h:3965
GLuint index
Definition: core_c.h:986
NativeArray(const Element *array, size_t count, RelationToSource relation)
Definition: ts_gtest.h:7993
T1 Head
Definition: ts_gtest.h:3949
RE(const char *regex)
Definition: ts_gtest.h:2099
RangeGenerator(T begin, T end, IncrementT step)
Definition: ts_gtest.h:10245
testing::internal::TypeList< Types< 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 > >::type Types< 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 >::type type
Definition: ts_gtest.h:7066
Definition: ts_gtest.h:5462
Definition: ts_gtest.h:5378
Definition: ts_gtest.h:18417
ParamIterator operator++(int)
Definition: ts_gtest.h:10181
ValueArray1(T1 v1)
Definition: ts_gtest.h:10756
Definition: ts_gtest.h:6204
Definition: ts_gtest.h:5989
bool IsDigit(char ch)
Definition: ts_gtest.h:2823
testing::internal::Templates< T1, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates1< T1 > type
Definition: ts_gtest.h:6227
Templates11< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 > Tail
Definition: ts_gtest.h:5491
Definition: ts_gtest.h:10159
ValueArray7(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7)
Definition: ts_gtest.h:10886
Definition: ts_gtest.h:2176
Types34< 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 > Tail
Definition: ts_gtest.h:4204
Definition: ts_gtest.h:12131
virtual ParamIteratorInterface< ParamType > * Begin() const
Definition: ts_gtest.h:13846
T1 Head
Definition: ts_gtest.h:4094
int Stat(const char *path, StatStruct *buf)
Definition: ts_gtest.h:2888
TemplateSel< T1 > Head
Definition: ts_gtest.h:5407
ParamIterator< T > iterator
Definition: ts_gtest.h:10221
Definition: ts_gtest.h:10129
Definition: ts_gtest.h:799
Element * iterator
Definition: ts_gtest.h:7989
Definition: ts_gtest.h:10123
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types30< 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 > type
Definition: ts_gtest.h:5009
Types14< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 > Tail
Definition: ts_gtest.h:3967
virtual void Run()
Definition: ts_gtest.h:2457
Definition: ts_gtest.h:5569
TYPED_TEST(FooTest, DoesBlah)
Definition: ts_gtest.h:17349
virtual ParamIteratorInterface< ParamType > * Begin() const
Definition: ts_gtest.h:14245
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)
Definition: ts_gtest.h:11669
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)
Definition: ts_gtest.h:11249
virtual ParamIteratorInterface< ParamType > * End() const
Definition: ts_gtest.h:14249
Templates1< T2 > Tail
Definition: ts_gtest.h:5413
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)
Definition: ts_gtest.h:11990
T * release()
Definition: ts_gtest.h:2059
Definition: ts_gtest.h:18596
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates43< 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 > type
Definition: ts_gtest.h:6888
Definition: ts_gtest.h:12770
AbortReason
Definition: ts_gtest.h:8320
ParamGenerator & operator=(const ParamGenerator &other)
Definition: ts_gtest.h:10226
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(6, Tuple)) ConstField(const Tuple &t)
Definition: ts_gtest.h:1567
int ChDir(const char *dir)
Definition: ts_gtest.h:2928
Definition: ts_gtest.h:5863
void type
Definition: ts_gtest.h:7897
bool operator!=(T *p) const
Definition: ts_gtest.h:9198
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates7< T1, T2, T3, T4, T5, T6, T7 > type
Definition: ts_gtest.h:6281
~ParameterizedTestCaseRegistry()
Definition: ts_gtest.h:10619
virtual ~CartesianProductGenerator5()
Definition: ts_gtest.h:14243
virtual ~ParamIteratorInterface()
Definition: ts_gtest.h:10131
T * operator->() const
Definition: ts_gtest.h:9194
class GTEST_4_TUPLE_(T)
Definition: ts_gtest.h:1005
const char kDeathTestUseFork[]
Definition: ts_gtest.h:8269
TemplateSel< T1 > Head
Definition: ts_gtest.h:5472
Definition: ts_gtest.h:7985
Definition: ts_gtest.h:5682
const char * GetEnv(const char *name)
Definition: ts_gtest.h:2950
testing::Types< T1, T2, T3, T4, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types4< T1, T2, T3, T4 > type
Definition: ts_gtest.h:4579
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates11< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 > type
Definition: ts_gtest.h:6323
Definition: ts_gtest.h:5376
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)
Definition: ts_gtest.h:11392
Definition: ts_gtest.h:3932
Types32< 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 > Tail
Definition: ts_gtest.h:4176
T8 f8_
Definition: ts_gtest.h:1345
GLXDrawable GLXDrawable read
Definition: ts_gtest.h:11202
TemplateSel< T1 > Head
Definition: ts_gtest.h:6084
Definition: ts_gtest.h:7423
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates23< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23 > type
Definition: ts_gtest.h:6492
virtual void TearDown()
Definition: ts_gtest.h:18426
const char * type_param() const
Definition: ts_gtest.h:18249
Definition: ts_gtest.h:13734
FilePath(const std::string &pathname)
Definition: ts_gtest.h:3602
GTEST_API_ AssertionResult AssertionSuccess()
T1 Head
Definition: ts_gtest.h:4131
Definition: ts_gtest.h:5768
Templates41< 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 > Tail
Definition: ts_gtest.h:5971
testing::Types< 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, internal::None, internal::None, internal::None, internal::None >::type internal::Types46< 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 > type
Definition: ts_gtest.h:5303
void * ThreadFuncWithCLinkage(void *thread)
Definition: ts_gtest.h:2414
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types33< 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 > type
Definition: ts_gtest.h:5063
Definition: ts_gtest.h:12517
Definition: ts_gtest.h:1632
ValueArray2(T1 v1, T2 v2)
Definition: ts_gtest.h:10771
Definition: ts_gtest.h:17151
const char * c_str() const
Definition: ts_gtest.h:3616
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(7, Tuple)) Field(Tuple &t)
Definition: ts_gtest.h:1575
void void * output
Definition: legacy.hpp:84
Definition: ts_gtest.h:11608
GTEST_API_ AssertionResult CmpHelperSTRNE(const char *s1_expression, const char *s2_expression, const wchar_t *s1, const wchar_t *s2)
void int step
Definition: core_c.h:403
ValuesInIteratorRangeGenerator(ForwardIterator begin, ForwardIterator end)
Definition: ts_gtest.h:10331
GTEST_API_ void CaptureStdout()
virtual ~TestEventListener()
Definition: ts_gtest.h:18438
Definition: ts_gtest.h:885
CV_EXPORTS_W void write(FileStorage &fs, const string &name, int value)
std::string FormatForComparisonFailureMessage(const T1 &value, const T2 &)
Definition: ts_gtest.h:18908
Definition: ts_gtest.h:3877
TemplateSel< T1 > Head
Definition: ts_gtest.h:5716
Definition: ts_gtest.h:5438
virtual void OnTestProgramStart(const UnitTest &)
Definition: ts_gtest.h:18491
Templates6< T2, T3, T4, T5, T6, T7 > Tail
Definition: ts_gtest.h:5448
TypeWithSize< 8 >::Int TimeInMillis
Definition: ts_gtest.h:3062
const char kInternalRunDeathTestFlag[]
Definition: ts_gtest.h:8270
Definition: ts_gtest.h:5924
~scoped_ptr()
Definition: ts_gtest.h:2053
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates24< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24 > type
Definition: ts_gtest.h:6508
GTestLogSeverity
Definition: ts_gtest.h:2172
bool_constant< true > true_type
Definition: ts_gtest.h:2776
Definition: ts_gtest.h:4058
Definition: ts_gtest.h:4200
const char const char const char * file_name
Definition: core_c.h:1743
ThreadLocal(const T &value)
Definition: ts_gtest.h:2635
AssertionResult & operator<<(::std::ostream &(*basic_manipulator)(::std::ostream &stream))
Definition: ts_gtest.h:17766
To DownCast_(From *f)
Definition: ts_gtest.h:2280
GTEST_API_ AssertionResult EqFailure(const char *expected_expression, const char *actual_expression, const std::string &expected_value, const std::string &actual_value, bool ignoring_case)
Definition: ts_gtest.h:17265
Definition: ts_gtest.h:18509
const char * value_param() const
Definition: ts_gtest.h:18120
Definition: ts_gtest.h:3866
TemplateSel< T1 > Head
Definition: ts_gtest.h:5570
Definition: ts_gtest.h:817
Templates25< 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 > Tail
Definition: ts_gtest.h:5670
tuple make_tuple()
Definition: ts_gtest.h:1355
Definition: ts_gtest.h:5532
class GTEST_2_TUPLE_(T)
Definition: ts_gtest.h:925
typedef Bool(APIENTRYP GLEEPFNGLXMAKECONTEXTCURRENTPROC)(Display *dpy
TypedTestCasePState()
Definition: ts_gtest.h:7532
T1 Head
Definition: ts_gtest.h:4341
void reset(T *ptr=NULL)
Definition: ts_gtest.h:9189
Templates15< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 > Tail
Definition: ts_gtest.h:5535
const char const char * str
Definition: core_c.h:1552
GTEST_API_ void ReportInvalidTestCaseType(const char *test_case_name, const char *file, int line)
const CvArr const CvArr CvArr * result
Definition: core_c.h:805
typedef void(CV_CDECL *CvMouseCallback)(int event
const char * failure_message() const
Definition: ts_gtest.h:17756
GTEST_DECLARE_bool_(throw_on_failure)
bool is_nan() const
Definition: ts_gtest.h:7337
Templates39< 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 > Tail
Definition: ts_gtest.h:5928
Types19< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20 > Tail
Definition: ts_gtest.h:4017
Definition: ts_gtest.h:10832
std::string GetPrefixUntilComma(const char *str)
Definition: ts_gtest.h:7574
Definition: ts_gtest.h:5903
void AddTestPattern(const char *test_case_name, const char *test_base_name, TestMetaFactoryBase< ParamType > *meta_factory)
Definition: ts_gtest.h:10526
Templates36< 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 > Tail
Definition: ts_gtest.h:5867
GTEST_API_ std::string StringStreamToString(::std::stringstream *stream)
Definition: ts_gtest.h:5637
tuple(const tuple &)
Definition: ts_gtest.h:888
Definition: ts_gtest.h:1476
void Join()
Definition: ts_gtest.h:2450
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates42< 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 > type
Definition: ts_gtest.h:6864
bool should_run() const
Definition: ts_gtest.h:18142
Definition: ts_gtest.h:4411
iterator end() const
Definition: ts_gtest.h:10232
Definition: ts_gtest.h:18489
GTEST_API_ bool InDeathTestChild()
Definition: ts_gtest.h:11008
Definition: ts_gtest.h:10504
Definition: ts_gtest.h:9933
~linked_ptr()
Definition: ts_gtest.h:9164
std::string StreamableToString(const T &streamable)
Definition: ts_gtest.h:3366
TemplateSel< T1 > Head
Definition: ts_gtest.h:5769
Templates5< T2, T3, T4, T5, T6 > Tail
Definition: ts_gtest.h:5440
const char * name
Definition: core_c.h:1538
Templates49< 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 > Tail
Definition: ts_gtest.h:6162
std::string GetTypeName()
Definition: ts_gtest.h:3807
virtual ~Environment()
Definition: ts_gtest.h:18420
tuple & operator=(const GTEST_10_TUPLE_(U)&t)
Definition: ts_gtest.h:1316
Definition: ts_gtest.h:6083
Types49< 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 > Tail
Definition: ts_gtest.h:4452
AssertionResult & operator<<(const T &value)
Definition: ts_gtest.h:17759
Definition: ts_gtest.h:8952
const T1 const T2 const T3 const T4 & f4
Definition: ts_gtest.h:1380
ValueArray11(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11)
Definition: ts_gtest.h:11010
internal::TimeInMillis TimeInMillis
Definition: ts_gtest.h:17934
bool_constant< false > false_type
Definition: ts_gtest.h:2775
Definition: ts_gtest.h:12436
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)
Definition: ts_gtest.h:12438
double start
Definition: core_c.h:774
testing::Types< T1, T2, T3, T4, T5, T6, T7, T8, T9, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types9< T1, T2, T3, T4, T5, T6, T7, T8, T9 > type
Definition: ts_gtest.h:4656
bool nonfatally_failed() const
Definition: ts_gtest.h:17201
void DefaultPrintTo(IsNotContainer, false_type, const T &value,::std::ostream *os)
Definition: ts_gtest.h:9587
TypeWithSize< 4 >::UInt UInt32
Definition: ts_gtest.h:3059
virtual ~ValuesInIteratorRangeGenerator()
Definition: ts_gtest.h:10333
Types5< T2, T3, T4, T5, T6 > Tail
Definition: ts_gtest.h:3898
void Lock()
Definition: ts_gtest.h:2706
GTEST_API_::std::string FormatFileLocation(const char *file, int line)
T6 type
Definition: ts_gtest.h:864
void RegisterTests()
Definition: ts_gtest.h:10659
bool should_run() const
Definition: ts_gtest.h:18256
const size_t kProtobufOneLinerMaxLength
Definition: ts_gtest.h:9396
::std::tr1::tuple< T1, T2, T3, T4, T5, T6, T7 > ParamType
Definition: ts_gtest.h:14592
Definition: ts_gtest.h:8700
Types10< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 > Tail
Definition: ts_gtest.h:3934
T & type
Definition: ts_gtest.h:7777
const void * TypeId
Definition: ts_gtest.h:7420
GTEST_API_ AssertionResult CmpHelperEQ(const char *expected_expression, const char *actual_expression, BiggestInt expected, BiggestInt actual)
int Write(int fd, const void *buf, unsigned int count)
Definition: ts_gtest.h:2944
Definition: ts_gtest.h:14234
Definition: ts_gtest.h:13134
internal::Types50< 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 > type
Definition: ts_gtest.h:4500
char ToLower(char ch)
Definition: ts_gtest.h:2843
Mutex()
Definition: ts_gtest.h:2554
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)
Definition: ts_gtest.h:12686
static bool Eq(const Tuple1 &, const Tuple2 &)
Definition: ts_gtest.h:1637
Types48< 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 > Tail
Definition: ts_gtest.h:4434
Templates0 Tail
Definition: ts_gtest.h:5408
Templates8< T2, T3, T4, T5, T6, T7, T8, T9 > Tail
Definition: ts_gtest.h:5464
static void PrintPrefixTo(const Tuple &,::std::ostream *)
Definition: ts_gtest.h:10048
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(8, Tuple)) Field(Tuple &t)
Definition: ts_gtest.h:1587
Types43< 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 > Tail
Definition: ts_gtest.h:4345
testing::Types< T1, T2, T3, T4, T5, T6, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types6< T1, T2, T3, T4, T5, T6 > type
Definition: ts_gtest.h:4610
const T * pointer() const
Definition: ts_gtest.h:2648
Templates24< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 > Tail
Definition: ts_gtest.h:5655
T1 Head
Definition: ts_gtest.h:4070
TypeWithSize< 4 >::Int Int32
Definition: ts_gtest.h:3058
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)
Definition: ts_gtest.h:13428
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)
Definition: ts_gtest.h:12861
Definition: ts_gtest.h:3964
virtual const string & GetTestCaseName() const
Definition: ts_gtest.h:10517
T1 Head
Definition: ts_gtest.h:3975
T4 f4_
Definition: ts_gtest.h:1341
bool IsSpace(char ch)
Definition: ts_gtest.h:2829
static bool Register(const char *, const char *, const char *, int)
Definition: ts_gtest.h:7622
TemplateSel< T1 > Head
Definition: ts_gtest.h:5946
static void Print(const T(&a)[N],::std::ostream *os)
Definition: ts_gtest.h:9898
T1 Head
Definition: ts_gtest.h:4276
Definition: ts_gtest.h:5843
CartesianProductHolder5(const Generator1 &g1, const Generator2 &g2, const Generator3 &g3, const Generator4 &g4, const Generator5 &g5)
Definition: ts_gtest.h:15588
T & type
Definition: ts_gtest.h:7775
virtual void OnTestStart(const TestInfo &)
Definition: ts_gtest.h:18497
static void Print(const T &value,::std::ostream *os)
Definition: ts_gtest.h:9843
Definition: ts_gtest.h:5595
ThreadWithParam(UserThreadFunc func, T param, Notification *thread_can_start)
Definition: ts_gtest.h:2436
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates35< 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 > type
Definition: ts_gtest.h:6713
Definition: ts_gtest.h:4323
Definition: ts_gtest.h:8366
Definition: ts_gtest.h:5391
Definition: ts_gtest.h:11855
bool passed() const
Definition: ts_gtest.h:17195
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates13< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 > type
Definition: ts_gtest.h:6347
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)
Definition: ts_gtest.h:14797
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)
Definition: ts_gtest.h:11343
testing::internal::Templates< NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates0 type
Definition: ts_gtest.h:6218
Definition: ts_gtest.h:8686
Types4< T2, T3, T4, T5 > Tail
Definition: ts_gtest.h:3891
void CopyArray(const T(&from)[N], U(*to)[N])
Definition: ts_gtest.h:7954
Templates50< 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 > type
Definition: ts_gtest.h:6208
TemplateSel< T1 > Head
Definition: ts_gtest.h:5653
InternalRunDeathTestFlag * ParseInternalRunDeathTestFlag()
static void TearDownTestCase()
Definition: ts_gtest.h:17850
GTEST_API_ const char kStackTraceMarker[]
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(9, Tuple)) ConstField(const Tuple &t)
Definition: ts_gtest.h:1603
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(5, Tuple)) Field(Tuple &t)
Definition: ts_gtest.h:1551
Templates9< T2, T3, T4, T5, T6, T7, T8, T9, T10 > Tail
Definition: ts_gtest.h:5473
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types35< 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 > type
Definition: ts_gtest.h:5098
GTEST_10_TUPLE_(T) make_tuple(const T0 &f0
Definition: ts_gtest.h:6012
::std::ostream & GetStream()
Definition: ts_gtest.h:2189
testing::Types< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types13< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 > type
Definition: ts_gtest.h:4721
TemplateSel< T1 > Head
Definition: ts_gtest.h:5683
Definition: ts_gtest.h:10328
virtual ~ParamGeneratorInterface()
Definition: ts_gtest.h:10206
const T1 const T2 const T3 const T4 const T5 const T6 & f6
Definition: ts_gtest.h:1392
TemplateSel< T1 > Head
Definition: ts_gtest.h:5418
Definition: ts_gtest.h:4105
void join(linked_ptr_internal const *ptr) GTEST_LOCK_EXCLUDED_(g_linked_ptr_mutex)
Definition: ts_gtest.h:9129
CartesianProductGenerator3(const ParamGenerator< T1 > &g1, const ParamGenerator< T2 > &g2, const ParamGenerator< T3 > &g3)
Definition: ts_gtest.h:13956
std::list< T > List
Definition: ts_gtest.h:17332
FloatingPoint< float > Float
Definition: ts_gtest.h:7411
Definition: ts_gtest.h:12059
Definition: ts_gtest.h:4260
FloatingPoint< double > Double
Definition: ts_gtest.h:7412
TemplateSel< T1 > Head
Definition: ts_gtest.h:5455
Types38< 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 > Tail
Definition: ts_gtest.h:4264
Definition: ts_gtest.h:7587
Definition: ts_gtest.h:9157
testing::internal::Templates< T1, T2, T3, T4, T5, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates5< T1, T2, T3, T4, T5 > type
Definition: ts_gtest.h:6262
int RmDir(const char *dir)
Definition: ts_gtest.h:2889
unsigned __int64 UInt
Definition: ts_gtest.h:3050
Definition: ts_gtest.h:8322
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)
Definition: ts_gtest.h:12133
TemplateSel< T1 > Head
Definition: ts_gtest.h:5425
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)
Definition: ts_gtest.h:11923
testing::Types< T1, T2, T3, T4, T5, T6, T7, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types7< T1, T2, T3, T4, T5, T6, T7 > type
Definition: ts_gtest.h:4626
GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(wchar_t)
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types26< 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 > type
Definition: ts_gtest.h:4938
static void PrintPrefixTo(const Tuple &t,::std::ostream *os)
Definition: ts_gtest.h:10061
std::string String
Definition: core.hpp:85
T value_
Definition: ts_gtest.h:17334
testing::Types< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types12< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 > type
Definition: ts_gtest.h:4704
const char kDeathTestStyleFlag[]
Definition: ts_gtest.h:8268
GTEST_API_ AssertionResult CmpHelperSTRCASENE(const char *s1_expression, const char *s2_expression, const char *s1, const char *s2)
T * operator->() const
Definition: ts_gtest.h:2056
TypeKind
Definition: ts_gtest.h:9372
Definition: ts_gtest.h:15615
virtual void OnEnvironmentsTearDownEnd(const UnitTest &)
Definition: ts_gtest.h:18502
TemplateSel< T1 > Head
Definition: ts_gtest.h:5844
const T1 &f1 return GTEST_2_TUPLE_() T(f0, f1)
::wstring wstring
Definition: ts_gtest.h:2034
Definition: ts_gtest.h:7686
Definition: ts_gtest.h:13836
void operator<<(const testing::internal::Secret &, int)
Definition: ts_gtest.h:807
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)
Definition: ts_gtest.h:11553
static bool FullMatch(const ::std::string &str, const RE &re)
Definition: ts_gtest.h:2112
static AssertionResult Compare(const char *expected_expression, const char *actual_expression, Secret *, T *actual)
Definition: ts_gtest.h:19008
void SleepMilliseconds(int n)
Definition: ts_gtest.h:2346
TemplateSel< T1 > Head
Definition: ts_gtest.h:6133
bool operator!=(linked_ptr< U > const &ptr) const
Definition: ts_gtest.h:9204
~Mutex()
Definition: ts_gtest.h:2558
virtual ~CartesianProductGenerator8()
Definition: ts_gtest.h:14804
Definition: ts_gtest.h:2022
const int kMaxStackTraceDepth
Definition: ts_gtest.h:17624
struct _stat StatStruct
Definition: ts_gtest.h:2862
Definition: ts_gtest.h:5698
bool failed() const
Definition: ts_gtest.h:17198
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(4, Tuple)) ConstField(const Tuple &t)
Definition: ts_gtest.h:1543
Bits sign_bit() const
Definition: ts_gtest.h:7334
Definition: ts_gtest.h:19315
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types36< 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 > type
Definition: ts_gtest.h:5116
Definition: ts_gtest.h:11159
virtual ~ThreadLocalValueHolderBase()
Definition: ts_gtest.h:2592
INSTANTIATE_TYPED_TEST_CASE_P(My, FooTest, MyTypes)
T1 Head
Definition: ts_gtest.h:4231
void LogToStderr()
Definition: ts_gtest.h:2201
const_iterator begin() const
Definition: ts_gtest.h:8013
Templates46< 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 > Tail
Definition: ts_gtest.h:6088
bool operator!=(const ParamIterator &other) const
Definition: ts_gtest.h:10189
TemplateSel< T1 > Head
Definition: ts_gtest.h:5699
GTEST_API_ bool ExitedUnsuccessfully(int exit_status)
bool operator==(const ParamIterator &other) const
Definition: ts_gtest.h:10186
TypeWithSize< sizeof(RawType)>::UInt Bits
Definition: ts_gtest.h:7257
GTEST_API_ void UniversalPrintArray(const wchar_t *begin, size_t len,::std::ostream *os)
TemplateSel< T1 > Head
Definition: ts_gtest.h:5533
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(1, Tuple)) ConstField(const Tuple &t)
Definition: ts_gtest.h:1507
Definition: ts_gtest.h:4307
Definition: ts_gtest.h:11551
const Element * const_iterator
Definition: ts_gtest.h:7990
Types47< 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 > Tail
Definition: ts_gtest.h:4416
Templates22< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23 > Tail
Definition: ts_gtest.h:5626
virtual ~RangeGenerator()
Definition: ts_gtest.h:10248
GLfloat GLfloat GLfloat v2
testing::Types< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types24< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24 > type
Definition: ts_gtest.h:4904
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)
Definition: ts_gtest.h:12206
GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(k, GTEST_10_TUPLE_(T))) get(const GTEST_10_TUPLE_(T)&t)
Definition: ts_gtest.h:1616
int Read(int fd, void *buf, unsigned int count)
Definition: ts_gtest.h:2941
Definition: ts_gtest.h:3896
ReturnSentinel(DeathTest *test)
Definition: ts_gtest.h:8305
Definition: ts_gtest.h:5417
const CvMat CvMat CvMat int k
Definition: legacy.hpp:3052
T1 Head
Definition: ts_gtest.h:4324
Bits fraction_bits() const
Definition: ts_gtest.h:7331
GLenum GLint x
Definition: core_c.h:632
static bool HasFailure()
Definition: ts_gtest.h:17860
linked_ptr & operator=(linked_ptr< U > const &ptr)
Definition: ts_gtest.h:9174
Definition: ts_gtest.h:5945
virtual void OnTestIterationEnd(const UnitTest &, int)
Definition: ts_gtest.h:18503
const char * type_param() const
Definition: ts_gtest.h:18112
Definition: ts_gtest.h:4047
T type
Definition: ts_gtest.h:7742
Definition: ts_gtest.h:7530
Definition: ts_gtest.h:15013
Definition: ts_gtest.h:13527
T type
Definition: ts_gtest.h:7729
Definition: ts_gtest.h:4130
bool AlwaysFalse()
Definition: ts_gtest.h:7681
GTestMutexLock MutexLock
Definition: ts_gtest.h:2582
GLuint GLuint GLsizei count
Definition: core_c.h:973
T value_type
Definition: ts_gtest.h:2796
T1 Head
Definition: ts_gtest.h:3941
Definition: ts_gtest.h:2175
Definition: ts_gtest.h:3430
void UniversalPrint(const T &value,::std::ostream *os)
Definition: ts_gtest.h:10004
CV_EXPORTS_W void repeat(InputArray src, int ny, int nx, OutputArray dst)
replicates the input matrix the specified number of times in the horizontal and/or vertical direction...
virtual void SetUp()
Definition: ts_gtest.h:18423
ParamGenerator(const ParamGenerator &other)
Definition: ts_gtest.h:10224
Templates32< 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 > Tail
Definition: ts_gtest.h:5790
TemplateSel< T1 > Head
Definition: ts_gtest.h:5412
TemplateSel< T1 > Head
Definition: ts_gtest.h:6108
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types34< 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 > type
Definition: ts_gtest.h:5081
bool operator==(const GTEST_10_TUPLE_(T)&t, const GTEST_10_TUPLE_(U)&u)
Definition: ts_gtest.h:1654
T1 Head
Definition: ts_gtest.h:4358
Types26< 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 > Tail
Definition: ts_gtest.h:4096
Definition: ts_gtest.h:15725
Definition: ts_gtest.h:4004
static bool FullMatch(const ::string &str, const RE &re)
Definition: ts_gtest.h:2121
Templates43< 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 > Tail
Definition: ts_gtest.h:6017
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)
Definition: ts_gtest.h:11161
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)
Definition: ts_gtest.h:13231
T * get() const
Definition: ts_gtest.h:9193
T1 Head
Definition: ts_gtest.h:3933
void Reseed(UInt32 seed)
Definition: ts_gtest.h:7703
T1 Head
Definition: ts_gtest.h:4448
const char * value() const
Definition: ts_gtest.h:17955
int StrCaseCmp(const char *s1, const char *s2)
Definition: ts_gtest.h:2866
Definition: ts_gtest.h:10857
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types27< 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 > type
Definition: ts_gtest.h:4956
Types22< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23 > Tail
Definition: ts_gtest.h:4050
static void Print(const T(&value)[N],::std::ostream *os)
Definition: ts_gtest.h:9949
Definition: ts_gtest.h:7177
Definition: ts_gtest.h:5652
Templates33< 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 > Tail
Definition: ts_gtest.h:5809
Message(const char *str)
Definition: ts_gtest.h:3224
testing::internal::Templates< T1, T2, T3, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates3< T1, T2, T3 > type
Definition: ts_gtest.h:6244
T ParamType
Definition: ts_gtest.h:10204
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)
Definition: ts_gtest.h:12602
Definition: ts_gtest.h:4393
const char * key() const
Definition: ts_gtest.h:17950
bool depart() GTEST_LOCK_EXCLUDED_(g_linked_ptr_mutex)
Definition: ts_gtest.h:9141
const std::string & file() const
Definition: ts_gtest.h:8466
Definition: ts_gtest.h:15252
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)
Definition: ts_gtest.h:11730
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types32< 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 > type
Definition: ts_gtest.h:5045
testing::Types< T1, T2, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types2< T1, T2 > type
Definition: ts_gtest.h:4549
int CvSeq float CvSize2D32f int flag
Definition: legacy.hpp:237
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT >::type Templates46< 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 > type
Definition: ts_gtest.h:6961
const char * summary() const
Definition: ts_gtest.h:17189
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)
Definition: ts_gtest.h:15019
Definition: ts_gtest.h:8850
Templates35< 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 > Tail
Definition: ts_gtest.h:5847
TestClass::ParamType ParamType
Definition: ts_gtest.h:10415
Definition: ts_gtest.h:830
Types44< 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 > Tail
Definition: ts_gtest.h:4362
Definition: ts_gtest.h:6107
__int64 BiggestInt
Definition: ts_gtest.h:2803
Definition: ts_gtest.h:12357
T5 f5_
Definition: ts_gtest.h:1342
Definition: ts_gtest.h:2084
GTEST_API_ void PrintBytesInObjectTo(const unsigned char *obj_bytes, size_t count,::std::ostream *os)
testing::Types< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types22< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22 > type
Definition: ts_gtest.h:4870
Definition: ts_gtest.h:11496
GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(wchar_t,::std::wstring)
virtual ParamIteratorInterface * Clone() const =0
virtual ParamIteratorInterface< ParamType > * End() const
Definition: ts_gtest.h:15033
testing::Types< T1, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types1< T1 > type
Definition: ts_gtest.h:4533
REGISTER_TYPED_TEST_CASE_P(FooTest, DoesBlah, HasPropertyA)
bool IsDir(const StatStruct &st)
Definition: ts_gtest.h:2890
Definition: ts_gtest.h:3025
virtual ParamIteratorInterface< ParamType > * Begin() const
Definition: ts_gtest.h:14094
bool IsAlpha(char ch)
Definition: ts_gtest.h:2817
Definition: ts_gtest.h:3917
virtual void RegisterTests()
Definition: ts_gtest.h:10547
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates18< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 > type
Definition: ts_gtest.h:6415
T1 Head
Definition: ts_gtest.h:4005
Definition: ts_gtest.h:15513
Definition: ts_gtest.h:4036
T1 Head
Definition: ts_gtest.h:3957
TemplateSel< T1 > Head
Definition: ts_gtest.h:5733
Definition: ts_gtest.h:14402
Definition: ts_gtest.h:13041
virtual ~TestPartResultReporterInterface()
Definition: ts_gtest.h:17252
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(0, Tuple)) Field(Tuple &t)
Definition: ts_gtest.h:1491
T1 Head
Definition: ts_gtest.h:4394
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)
Definition: ts_gtest.h:15771
const T1 const T2 const T3 const T4 const T5 const T6 const T7 const T8 & f8
Definition: ts_gtest.h:1405
const char * name() const
Definition: ts_gtest.h:18245
void Notify()
Definition: ts_gtest.h:2371
ValueArray8(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8)
Definition: ts_gtest.h:10914
T & type
Definition: ts_gtest.h:809
GLboolean GLboolean GLboolean b
Definition: legacy.hpp:633
virtual ~TestFactoryBase()
Definition: ts_gtest.h:7457
Definition: ts_gtest.h:2769
ParamGenerator(ParamGeneratorInterface< T > *impl)
Definition: ts_gtest.h:10223
virtual ~DeathTestFactory()
Definition: ts_gtest.h:8360
TEST_P(FooTest, DoesBlah)
Definition: ts_gtest.h:8858
const T & operator*() const
Definition: ts_gtest.h:10173
Types37< 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 > Tail
Definition: ts_gtest.h:4249
class GTEST_5_TUPLE_(T)
Definition: ts_gtest.h:1046
Types42< 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 > Tail
Definition: ts_gtest.h:4328
Types1< T2 > Tail
Definition: ts_gtest.h:3873
TemplateSel< T1 > Head
Definition: ts_gtest.h:5967
testing::Types< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types21< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21 > type
Definition: ts_gtest.h:4853
Definition: ts_gtest.h:3924
void SetInjectableArgvs(const ::std::vector< testing::internal::string > *new_argvs)
static bool Eq(const Tuple1 &t1, const Tuple2 &t2)
Definition: ts_gtest.h:1645
Definition: ts_gtest.h:11341
virtual ParamIteratorInterface< ParamType > * Begin() const
Definition: ts_gtest.h:14806
CV_EXPORTS_W Scalar trace(InputArray mtx)
computes trace of a matrix
int AddTestCaseInstantiation(const string &instantiation_name, GeneratorCreationFunc *func, const char *, int)
Definition: ts_gtest.h:10535
virtual ParamIteratorInterface< ParamType > * Begin() const
Definition: ts_gtest.h:14415
Definition: ts_gtest.h:2360
Definition: ts_gtest.h:10884
Templates21< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22 > Tail
Definition: ts_gtest.h:5612
Types35< 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 > Tail
Definition: ts_gtest.h:4219
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types37< 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 > type
Definition: ts_gtest.h:5134
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)
Definition: ts_gtest.h:11204
ValueArray10(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10)
Definition: ts_gtest.h:10976
Definition: ts_gtest.h:5609
class GTEST_8_TUPLE_(T)
Definition: ts_gtest.h:1186
TemplateSel< T1 > Head
Definition: ts_gtest.h:5510
GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(k, GTEST_10_TUPLE_(T))) get(GTEST_10_TUPLE_(T)&t)
Definition: ts_gtest.h:1610
virtual ~CartesianProductGenerator3()
Definition: ts_gtest.h:13959
unsigned int UInt
Definition: ts_gtest.h:3041
Definition: ts_gtest.h:4375
GLsizei const GLfloat * value
Definition: core_c.h:341
T1 Head
Definition: ts_gtest.h:4261
Definition: ts_gtest.h:19200
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates25< 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 > type
Definition: ts_gtest.h:6525
Definition: ts_gtest.h:11790
int FileNo(FILE *file)
Definition: ts_gtest.h:2883
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(3, Tuple)) Field(Tuple &t)
Definition: ts_gtest.h:1527
Definition: ts_gtest.h:8358
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(0, Tuple)) ConstField(const Tuple &t)
Definition: ts_gtest.h:1495
Definition: ts_gtest.h:17733
GTEST_API_ std::string GetBoolAssertionFailureMessage(const AssertionResult &assertion_result, const char *expression_text, const char *actual_predicate_value, const char *expected_predicate_value)
testing::Types< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types23< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23 > type
Definition: ts_gtest.h:4887
virtual ParamIteratorInterface< ParamType > * Begin() const
Definition: ts_gtest.h:15028
ParameterizedTestFactory(ParamType parameter)
Definition: ts_gtest.h:10416
Definition: ts_gtest.h:9110
TestProperty(const std::string &a_key, const std::string &a_value)
Definition: ts_gtest.h:17945
bool IsEmpty() const
Definition: ts_gtest.h:3649
Definition: ts_gtest.h:5446
static bool dummy_
Definition: ts_gtest.h:7428
TemplateSel< T1 > Head
Definition: ts_gtest.h:5583
Definition: ts_gtest.h:6035
Types16< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 > Tail
Definition: ts_gtest.h:3987
linked_ptr< T > make_linked_ptr(T *ptr)
Definition: ts_gtest.h:9247
Definition: ts_gtest.h:2173
TemplateSel< T1 > Head
Definition: ts_gtest.h:5490
Definition: ts_gtest.h:4093
GTEST_API_ 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)
const char const char const char int line
Definition: core_c.h:1743
static void Print(char *str,::std::ostream *os)
Definition: ts_gtest.h:9967
Definition: ts_gtest.h:4186
virtual void OnTestCaseEnd(const TestCase &)
Definition: ts_gtest.h:18500
Definition: ts_gtest.h:10124
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)
Definition: ts_gtest.h:13136
GLuint GLuint GLsizei GLenum type
Definition: core_c.h:114
bool BoolFromGTestEnv(const char *flag, bool default_val)
FILE * FOpen(const char *path, const char *mode)
Definition: ts_gtest.h:2930
void AssertHeld() const
Definition: ts_gtest.h:2515
Definition: ts_gtest.h:7853
Types45< 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 > Tail
Definition: ts_gtest.h:4380
const std::string & string() const
Definition: ts_gtest.h:3615
Types6< T2, T3, T4, T5, T6, T7 > Tail
Definition: ts_gtest.h:3905
internal::TearDownTestCaseFunc TearDownTestCaseFunc
Definition: ts_gtest.h:17831
Definition: ts_gtest.h:3861
const GLubyte * c
Definition: legacy.hpp:633
T1 Head
Definition: ts_gtest.h:3884
Definition: ts_gtest.h:5499
static void TersePrintPrefixToStrings(const Tuple &t, Strings *strings)
Definition: ts_gtest.h:10036
int int type
Definition: core_c.h:109
virtual ParamIteratorInterface< T > * Begin() const
Definition: ts_gtest.h:10250
Definition: ts_gtest.h:7045
void Unlock()
Definition: ts_gtest.h:2504
Definition: ts_gtest.h:15586
tuple(const GTEST_10_TUPLE_(U)&t)
Definition: ts_gtest.h:1309
Definition: ts_gtest.h:12949
bool IsLower(char ch)
Definition: ts_gtest.h:2826
int Close(int fd)
Definition: ts_gtest.h:2947
GLuint const GLchar * name
Definition: core_c.h:1546
Types0 Tail
Definition: ts_gtest.h:3868
Definition: ts_gtest.h:9374
TemplateSel< T1 > Head
Definition: ts_gtest.h:5500
internal::ParamGenerator< typename Container::value_type > ValuesIn(const Container &container)
Definition: ts_gtest.h:15950
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(2, Tuple)) ConstField(const Tuple &t)
Definition: ts_gtest.h:1519
T1 Head
Definition: ts_gtest.h:4430
Strings UniversalTersePrintTupleFieldsToStrings(const Tuple &value)
Definition: ts_gtest.h:10088
T1 Head
Definition: ts_gtest.h:3897
Types15< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 > Tail
Definition: ts_gtest.h:3977
bool IsXDigit(wchar_t ch)
Definition: ts_gtest.h:2838
TemplateSel< T1 > Head
Definition: ts_gtest.h:5432
linked_ptr(T *ptr=NULL)
Definition: ts_gtest.h:9163
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates26< 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 > type
Definition: ts_gtest.h:6542
GTEST_DECLARE_TUPLE_AS_FRIEND_ tuple & CopyFrom(const GTEST_10_TUPLE_(U)&t)
Definition: ts_gtest.h:1323
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types44< 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 > type
Definition: ts_gtest.h:5265
Definition: ts_gtest.h:5715
Definition: ts_gtest.h:17824
char IsNotContainer
Definition: ts_gtest.h:7888
T2 f2_
Definition: ts_gtest.h:1339
Definition: ts_gtest.h:10974
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)
Definition: ts_gtest.h:13529
TemplateSel< T1 > Head
Definition: ts_gtest.h:5638
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(8, Tuple)) ConstField(const Tuple &t)
Definition: ts_gtest.h:1591
Types39< 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 > Tail
Definition: ts_gtest.h:4279
T1 Head
Definition: ts_gtest.h:4187
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates17< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 > type
Definition: ts_gtest.h:6401
static void SetUpTestCase()
Definition: ts_gtest.h:17842
~ThreadLocal()
Definition: ts_gtest.h:2638
TemplateSel< T1 > Head
Definition: ts_gtest.h:5463
virtual ~WithParamInterface()
Definition: ts_gtest.h:19280
Definition: ts_gtest.h:5411
ParameterizedTestCaseInfo(const char *name)
Definition: ts_gtest.h:10513
static void TersePrintPrefixToStrings(const Tuple &, Strings *)
Definition: ts_gtest.h:10051
Definition: ts_gtest.h:2494
Templates31< 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 > Tail
Definition: ts_gtest.h:5772
RE(const RE &other)
Definition: ts_gtest.h:2088
GTEST_API_::std::string FormatCompilerIndependentFileLocation(const char *file, int line)
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)
Definition: ts_gtest.h:11295
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)
Definition: ts_gtest.h:13329
static AssertionResult Compare(const char *expected_expression, const char *actual_expression, const T1 &expected, const T2 &actual)
Definition: ts_gtest.h:18957
Templates37< 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 > Tail
Definition: ts_gtest.h:5887
Definition: ts_gtest.h:12684
TemplateSel< T1 > Head
Definition: ts_gtest.h:5557
TimeInMillis elapsed_time() const
Definition: ts_gtest.h:18286
bool is_reportable() const
Definition: ts_gtest.h:18145
bool has_new_fatal_failure() const
Definition: ts_gtest.h:17271
Definition: ts_gtest.h:4291
Definition: ts_gtest.h:8452
const char * ptr
Definition: core_c.h:942
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates45< 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 > type
Definition: ts_gtest.h:6936
Definition: ts_gtest.h:11728
Types17< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 > Tail
Definition: ts_gtest.h:3997
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)
Definition: ts_gtest.h:12951
static AssertionResult Compare(const char *expected_expression, const char *actual_expression, BiggestInt expected, BiggestInt actual)
Definition: ts_gtest.h:18971
class GTEST_7_TUPLE_(T)
Definition: ts_gtest.h:1137
TemplateSel< T1 > Head
Definition: ts_gtest.h:5787
Definition: ts_gtest.h:17156
GLboolean GLboolean GLboolean GLboolean a
Definition: legacy.hpp:633
ValueArray3(T1 v1, T2 v2, T3 v3)
Definition: ts_gtest.h:10790
Templates18< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 > Tail
Definition: ts_gtest.h:5572
Definition: ts_gtest.h:17157
Definition: ts_gtest.h:7896
Definition: ts_gtest.h:3889
Definition: ts_gtest.h:5424
GTEST_API_ AssertionResult AssertionFailure(const Message &msg)
testing::Types< T1, T2, T3, T4, T5, T6, T7, T8, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types8< T1, T2, T3, T4, T5, T6, T7, T8 > type
Definition: ts_gtest.h:4641
Definition: ts_gtest.h:1418
T type
Definition: ts_gtest.h:7727
GTEST_API_ std::string AppendUserMessage(const std::string >est_msg, const Message &user_msg)
::std::vector< string > Strings
Definition: ts_gtest.h:10012
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)
Definition: ts_gtest.h:15687
testing::Types< internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types0 type
Definition: ts_gtest.h:4517
Definition: ts_gtest.h:5966
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates16< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 > type
Definition: ts_gtest.h:6387
bool Passed() const
Definition: ts_gtest.h:17993
Definition: ts_gtest.h:4081
Definition: ts_gtest.h:5406
char int argc
Definition: highgui_c.h:81
const T & reference
Definition: ts_gtest.h:10162
Definition: ts_gtest.h:13426
virtual ParamIteratorInterface< ParamType > * End() const
Definition: ts_gtest.h:13965
TemplateSel< T1 > Head
Definition: ts_gtest.h:5447
bool fatally_failed() const
Definition: ts_gtest.h:17204
char ToUpper(char ch)
Definition: ts_gtest.h:2846
GTEST_API_ void InitGoogleTest(int *argc, wchar_t **argv)
void AssertHeld() const
Definition: ts_gtest.h:2708
TestRole
Definition: ts_gtest.h:8317
ValueArray5(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5)
Definition: ts_gtest.h:10834
T1 Head
Definition: ts_gtest.h:3890
T1 Head
Definition: ts_gtest.h:4145
GTEST_API_ AssertionResult FloatLE(const char *expr1, const char *expr2, float val1, float val2)
FilePath(const FilePath &rhs)
Definition: ts_gtest.h:3600
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(7, Tuple)) ConstField(const Tuple &t)
Definition: ts_gtest.h:1579
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
Definition: ts_gtest.h:5471
GTEST_API_ void CaptureStderr()
testing::Types< T1, T2, T3, T4, T5, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types5< T1, T2, T3, T4, T5 > type
Definition: ts_gtest.h:4594
virtual ParamIteratorInterface< T > * Begin() const
Definition: ts_gtest.h:10335
static RawType Infinity()
Definition: ts_gtest.h:7315
Definition: ts_gtest.h:15685
Definition: ts_gtest.h:10413
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates22< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22 > type
Definition: ts_gtest.h:6476
__int64 Int
Definition: ts_gtest.h:3049
Definition: ts_gtest.h:3956
void Abort()
Definition: ts_gtest.h:2974
Definition: ts_gtest.h:2631
T value_type
Definition: ts_gtest.h:2791
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)
Definition: ts_gtest.h:12061
T1 Head
Definition: ts_gtest.h:4106
char * argv[]
Definition: highgui_c.h:81
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates19< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 > type
Definition: ts_gtest.h:6430
Definition: ts_gtest.h:18436
const T * operator->() const
Definition: ts_gtest.h:10174
T1 Head
Definition: ts_gtest.h:4118
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)
Definition: ts_gtest.h:15727
Definition: ts_gtest.h:10788
static T shared_
Definition: ts_gtest.h:17333
virtual ParamIteratorInterface< ParamType > * End() const
Definition: ts_gtest.h:13849
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types25< 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 > type
Definition: ts_gtest.h:4920
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(3, Tuple)) ConstField(const Tuple &t)
Definition: ts_gtest.h:1531
class GTEST_1_TUPLE_(T)
Definition: ts_gtest.h:893
class GTEST_3_TUPLE_(T)
Definition: ts_gtest.h:968
void PrintTo(const ::std::pair< T1, T2 > &value,::std::ostream *os)
Definition: ts_gtest.h:9818
Definition: ts_gtest.h:5786
virtual ~CartesianProductGenerator10()
Definition: ts_gtest.h:15266
void DeleteThreadLocalValue(void *value_holder)
Definition: ts_gtest.h:2597
Definition: ts_gtest.h:5667
Definition: ts_gtest.h:4496
virtual ParamIteratorInterface< ParamType > * End() const
Definition: ts_gtest.h:15273
Types3< T2, T3, T4 > Tail
Definition: ts_gtest.h:3885
virtual ~DeathTest()
Definition: ts_gtest.h:8300
void FlushInfoLog()
Definition: ts_gtest.h:2202
const char * StrNCpy(char *dest, const char *src, size_t n)
Definition: ts_gtest.h:2919
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types28< 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 > type
Definition: ts_gtest.h:4974
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates32< 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 > type
Definition: ts_gtest.h:6654
const T1 const T2 const T3 const T4 const T5 & f5
Definition: ts_gtest.h:1386
Types7< T2, T3, T4, T5, T6, T7, T8 > Tail
Definition: ts_gtest.h:3912
GTEST_API_ Int32 Int32FromGTestEnv(const char *flag, Int32 default_val)
TypeWithSize< 8 >::UInt UInt64
Definition: ts_gtest.h:3061
const ParamType & GetParam() const
Definition: ts_gtest.h:19287
void set(const T &value)
Definition: ts_gtest.h:2650
char(& IsNullLiteralHelper(...))[2]
bool StaticAssertTypeEq()
Definition: ts_gtest.h:20039
TemplateSel< T1 > Head
Definition: ts_gtest.h:5904
T6 f6_
Definition: ts_gtest.h:1343
int line() const
Definition: ts_gtest.h:8467
T1 Head
Definition: ts_gtest.h:4173
void PrintTupleTo(const T &t,::std::ostream *os)
Definition: ts_gtest.h:10077
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)
Definition: ts_gtest.h:13736
Definition: ts_gtest.h:6132
testing::internal::Templates< 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, NoneT, NoneT, NoneT >::type Templates47< 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 > type
Definition: ts_gtest.h:6986
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types45< 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 > type
Definition: ts_gtest.h:5284
Definition: ts_gtest.h:10616
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates21< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21 > type
Definition: ts_gtest.h:6460
bool operator!=(const GTEST_10_TUPLE_(T)&t, const GTEST_10_TUPLE_(U)&u)
Definition: ts_gtest.h:1662
CartesianProductHolder6(const Generator1 &g1, const Generator2 &g2, const Generator3 &g3, const Generator4 &g4, const Generator5 &g5, const Generator6 &g6)
Definition: ts_gtest.h:15617
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(9, Tuple)) Field(Tuple &t)
Definition: ts_gtest.h:1599
Definition: ts_gtest.h:11988
const T & type
Definition: ts_gtest.h:807
Definition: ts_gtest.h:4245
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)
Definition: ts_gtest.h:11082
virtual ParamIteratorInterface< ParamType > * End() const
Definition: ts_gtest.h:14419
virtual void OnTestProgramEnd(const UnitTest &)
Definition: ts_gtest.h:18505
bool IsUpper(char ch)
Definition: ts_gtest.h:2832
Definition: ts_gtest.h:11442
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
Definition: ts_gtest.h:20121
T type
Definition: ts_gtest.h:7740
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates14< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 > type
Definition: ts_gtest.h:6360
Notification()
Definition: ts_gtest.h:2362
GTestMutexLock(Mutex *)
Definition: ts_gtest.h:2718
TYPED_TEST_CASE_P(FooTest)
Templates17< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 > Tail
Definition: ts_gtest.h:5559
Types30< 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 > Tail
Definition: ts_gtest.h:4148
internal::ParamGenerator< T > Range(T start, T end)
Definition: ts_gtest.h:15875
T2 type
Definition: ts_gtest.h:844
false
Definition: color.hpp:230
virtual ParamIteratorInterface< ParamType > * Begin() const
Definition: ts_gtest.h:15268
Definition: ts_gtest.h:7972
Definition: ts_gtest.h:5544
testing::Types< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types10< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 > type
Definition: ts_gtest.h:4671
::std::tr1::tuple< T1, T2, T3, T4, T5, T6, T7, T8, T9 > ParamType
Definition: ts_gtest.h:15017
const char * message() const
Definition: ts_gtest.h:17751
Definition: ts_gtest.h:4025
Types29< 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 > Tail
Definition: ts_gtest.h:4134
Random(UInt32 seed)
Definition: ts_gtest.h:7701
T4 type
Definition: ts_gtest.h:854
Definition: ts_gtest.h:13951
Definition: ts_gtest.h:13327
testing::Types< 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, internal::None >::type internal::Types49< 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 > type
Definition: ts_gtest.h:5360
Types12< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 > Tail
Definition: ts_gtest.h:3950
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates12< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 > type
Definition: ts_gtest.h:6334
AssertionResult AssertPred1Helper(const char *pred_text, const char *e1, Pred pred, const T1 &v1)
Definition: ts_gtest.h:19492
true
Definition: color.hpp:221
ParamIterator & operator=(const ParamIterator &other)
Definition: ts_gtest.h:10167
TestPartResult(Type a_type, const char *a_file_name, int a_line_number, const char *a_message)
Definition: ts_gtest.h:17164
GTEST_API_ GTEST_DECLARE_STATIC_MUTEX_(g_linked_ptr_mutex)
T1 Head
Definition: ts_gtest.h:3872
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates37< 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 > type
Definition: ts_gtest.h:6754
virtual void OnTestEnd(const TestInfo &)
Definition: ts_gtest.h:18499
const T1 & f1
Definition: ts_gtest.h:1368
RE(const ::std::string ®ex)
Definition: ts_gtest.h:2091
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)
Definition: ts_gtest.h:16810
Definition: ts_gtest.h:19277
Templates20< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21 > Tail
Definition: ts_gtest.h:5598
bool has_owner_
Definition: ts_gtest.h:2533
int x
Definition: highgui_c.h:186
Definition: ts_gtest.h:10475
Definition: ts_gtest.h:18953
TemplateSel< T1 > Head
Definition: ts_gtest.h:6013
size_t size() const
Definition: ts_gtest.h:8012
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)
Definition: ts_gtest.h:13632
void join_new()
Definition: ts_gtest.h:9113
GLboolean GLenum GLenum GLvoid * values
Definition: ts_gtest.h:2552
Definition: ts_gtest.h:11119
Templates44< 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 > Tail
Definition: ts_gtest.h:6040
const Bits & bits() const
Definition: ts_gtest.h:7325
T9 f9_
Definition: ts_gtest.h:1346
double double end
Definition: core_c.h:774
Definition: ts_gtest.h:1970
T0 f0_
Definition: ts_gtest.h:1337
Templates47< 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 > Tail
Definition: ts_gtest.h:6112
const ::std::vector< testing::internal::string > & GetInjectableArgvs()
virtual ParamIteratorInterface< T > * End() const
Definition: ts_gtest.h:10253
Definition: ts_gtest.h:10912
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)
Definition: ts_gtest.h:11045
tuple()
Definition: ts_gtest.h:1296
Definition: ts_gtest.h:9513
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types40< 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 > type
Definition: ts_gtest.h:5189
Iter ArrayAwareFind(Iter begin, Iter end, const Element &elem)
Definition: ts_gtest.h:7933
int line_number() const
Definition: ts_gtest.h:17186
Definition: ts_gtest.h:5732
CartesianProductGenerator4(const ParamGenerator< T1 > &g1, const ParamGenerator< T2 > &g2, const ParamGenerator< T3 > &g3, const ParamGenerator< T4 > &g4)
Definition: ts_gtest.h:14088
T1 f1_
Definition: ts_gtest.h:1338
const char * value
Definition: ts_gtest.h:7689
INSTANTIATE_TEST_CASE_P(InstantiationName, FooTest, Values("meeny","miny","moe"))
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)
Definition: ts_gtest.h:19702
Definition: ts_gtest.h:7971
~NativeArray()
Definition: ts_gtest.h:8002
GTEST_API_ AssertionResult IsHRESULTFailure(const char *expr, long hr)
Definition: ts_gtest.h:4357
bool operator==(const NativeArray &rhs) const
Definition: ts_gtest.h:8015
TypeWithSize< 8 >::Int Int64
Definition: ts_gtest.h:3060
int Int
Definition: ts_gtest.h:3040
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates44< 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 > type
Definition: ts_gtest.h:6912
Definition: ts_gtest.h:7633
T1 Head
Definition: ts_gtest.h:3918
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)
Definition: ts_gtest.h:12519
virtual ~CartesianProductGenerator6()
Definition: ts_gtest.h:14413
~ThreadWithParam()
Definition: ts_gtest.h:2448
Definition: ts_gtest.h:7455
Iterator::value_type value_type
Definition: ts_gtest.h:2786
Definition: ts_gtest.h:5454
const T1 const T2 & f2
Definition: ts_gtest.h:1368
Definition: ts_gtest.h:6059
Templates38< 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 > Tail
Definition: ts_gtest.h:5907
int number
Definition: imgproc_c.h:478
Definition: ts_gtest.h:2048
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types41< 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 > type
Definition: ts_gtest.h:5208
Message(const Message &msg)
Definition: ts_gtest.h:3219
pthread_t owner_
Definition: ts_gtest.h:2534
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates28< 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 > type
Definition: ts_gtest.h:6579
tuple & operator=(const tuple &t)
Definition: ts_gtest.h:1313
CartesianProductHolder2(const Generator1 &g1, const Generator2 &g2)
Definition: ts_gtest.h:15515
Bits exponent_bits() const
Definition: ts_gtest.h:7328
TemplateSel< T1 > Head
Definition: ts_gtest.h:5925
Templates14< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 > Tail
Definition: ts_gtest.h:5523
Templates40< 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 > Tail
Definition: ts_gtest.h:5949
Definition: ts_gtest.h:4172
static bool PartialMatch(const ::string &str, const RE &re)
Definition: ts_gtest.h:2124
tuple(const tuple &t)
Definition: ts_gtest.h:1305
Templates10< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 > Tail
Definition: ts_gtest.h:5482
Templates26< 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 > Tail
Definition: ts_gtest.h:5685
long long Int
Definition: ts_gtest.h:3052
~ReturnSentinel()
Definition: ts_gtest.h:8306
RelationToSource
Definition: ts_gtest.h:7970
ThreadLocal()
Definition: ts_gtest.h:2633
Types23< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24 > Tail
Definition: ts_gtest.h:4061
FILE * FDOpen(int fd, const char *mode)
Definition: ts_gtest.h:2937
const BiggestInt kMaxBiggestInt
Definition: ts_gtest.h:3003
GTEST_DECLARE_int32_(stack_trace_depth)
::std::tr1::tuple< T1, T2 > ParamType
Definition: ts_gtest.h:13839
Definition: ts_gtest.h:3851
Templates27< 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 > Tail
Definition: ts_gtest.h:5702
GTEST_API_ AssertionResult CmpHelperSTRCASEEQ(const char *expected_expression, const char *actual_expression, const char *expected, const char *actual)
static void Print(const T &value,::std::ostream *os)
Definition: ts_gtest.h:9914
Definition: ts_gtest.h:5509
Templates28< 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 > Tail
Definition: ts_gtest.h:5719
Templates30< 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 > Tail
Definition: ts_gtest.h:5754
Definition: ts_gtest.h:15559
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates40< 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 > type
Definition: ts_gtest.h:6818
Definition: ts_gtest.h:17230
TestEventListener * default_result_printer() const
Definition: ts_gtest.h:18529
Definition: ts_gtest.h:3994
virtual ~CartesianProductGenerator7()
Definition: ts_gtest.h:14599
virtual ParamIteratorInterface< ParamType > * End() const
Definition: ts_gtest.h:14098
iterator begin() const
Definition: ts_gtest.h:10231
Types46< 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 > Tail
Definition: ts_gtest.h:4398
Definition: ts_gtest.h:12859
T1 Head
Definition: ts_gtest.h:3995
T1 Head
Definition: ts_gtest.h:4412
T1 Head
Definition: ts_gtest.h:3867
virtual ParamIteratorInterface< T > * End() const
Definition: ts_gtest.h:10338
tuple()
Definition: ts_gtest.h:887
testing::Types< 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, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types38< 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 > type
Definition: ts_gtest.h:5152
T9 type
Definition: ts_gtest.h:879
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)
Definition: ts_gtest.h:19583
::std::tr1::tuple< T1, T2, T3, T4 > ParamType
Definition: ts_gtest.h:14086
Templates34< 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 > Tail
Definition: ts_gtest.h:5828
TemplateSel< T1 > Head
Definition: ts_gtest.h:5864
const char * StrError(int errnum)
Definition: ts_gtest.h:2948
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates15< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 > type
Definition: ts_gtest.h:6373
Derived * CheckedDowncastToActualType(Base *base)
Definition: ts_gtest.h:2303
T1 Head
Definition: ts_gtest.h:4159
Definition: ts_gtest.h:8321
Definition: ts_gtest.h:8287
bool ArrayEq(const T(&lhs)[N], const U(&rhs)[N])
Definition: ts_gtest.h:7914
bool Passed() const
Definition: ts_gtest.h:18280
virtual ~CartesianProductGenerator9()
Definition: ts_gtest.h:15026
ValueArray9(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9)
Definition: ts_gtest.h:10944
T1 Head
Definition: ts_gtest.h:4246
Types27< 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 > Tail
Definition: ts_gtest.h:4108
testing::Types< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types16< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 > type
Definition: ts_gtest.h:4770
class GTEST_API_ testing::internal::ScopedTrace GTEST_ATTRIBUTE_UNUSED_
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates29< 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 > type
Definition: ts_gtest.h:6598
Definition: ts_gtest.h:7740
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates20< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20 > type
Definition: ts_gtest.h:6445
static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(5, Tuple)) ConstField(const Tuple &t)
Definition: ts_gtest.h:1555
T & operator*() const
Definition: ts_gtest.h:9195
static bool Register(const char *, const char *, const char *)
Definition: ts_gtest.h:7653
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates41< 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 > type
Definition: ts_gtest.h:6841
testing::internal::Templates< T1, T2, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates2< T1, T2 > type
Definition: ts_gtest.h:6236
TemplateSel< T1 > Head
Definition: ts_gtest.h:6060
GTEST_API_ TypeId GetTestTypeId()
::std::tr1::tuple< T1, T2, T3, T4, T5 > ParamType
Definition: ts_gtest.h:14237
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)
Definition: ts_gtest.h:11857
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)
Definition: ts_gtest.h:19639
Types9< T2, T3, T4, T5, T6, T7, T8, T9, T10 > Tail
Definition: ts_gtest.h:3926
Definition: ts_gtest.h:10754
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)
Definition: ts_gtest.h:1299
linked_ptr & operator=(linked_ptr const &ptr)
Definition: ts_gtest.h:9180
ptrdiff_t difference_type
Definition: ts_gtest.h:10163
T1 Head
Definition: ts_gtest.h:3878
Types1< T > type
Definition: ts_gtest.h:7046
Templates13< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 > Tail
Definition: ts_gtest.h:5512
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates36< 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 > type
Definition: ts_gtest.h:6733
GLsizeiptr size
Definition: core_c.h:939
T & operator*() const
Definition: ts_gtest.h:2055
TYPED_TEST_P(FooTest, DoesBlah)
Definition: ts_gtest.h:17400
Definition: ts_gtest.h:3208
Definition: ts_gtest.h:7697
Definition: ts_gtest.h:8957
Definition: ts_gtest.h:12280
static void Print(const wchar_t *str,::std::ostream *os)
Definition: ts_gtest.h:9976
Type
Definition: ts_gtest.h:17155
Templates3< T2, T3, T4 > Tail
Definition: ts_gtest.h:5426
ValueArray6(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6)
Definition: ts_gtest.h:10859
class UnitTestImpl * GetUnitTestImpl()
T element_type
Definition: ts_gtest.h:9159
Definition: ts_gtest.h:11667
TestPartResultArray()
Definition: ts_gtest.h:17232
Type type() const
Definition: ts_gtest.h:17176
TemplateSel< T1 > Head
Definition: ts_gtest.h:5884
T7 type
Definition: ts_gtest.h:869
const char * StringFromGTestEnv(const char *flag, const char *default_val)
Definition: ts_gtest.h:825
static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(6, Tuple)) Field(Tuple &t)
Definition: ts_gtest.h:1563
TemplateSel< T1 > Head
Definition: ts_gtest.h:6158
const char * test_case_name() const
Definition: ts_gtest.h:18105
Definition: ts_gtest.h:3910
virtual ~CartesianProductGenerator4()
Definition: ts_gtest.h:14092
T8 type
Definition: ts_gtest.h:874
TemplateSel< T1 > Head
Definition: ts_gtest.h:5596
Definition: ts_gtest.h:17977
testing::internal::Templates< 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, NoneT, NoneT >::type Templates48< 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 > type
Definition: ts_gtest.h:7011
virtual void OnEnvironmentsSetUpStart(const UnitTest &)
Definition: ts_gtest.h:18494
Types8< T2, T3, T4, T5, T6, T7, T8, T9 > Tail
Definition: ts_gtest.h:3919
T & type
Definition: ts_gtest.h:819
Definition: ts_gtest.h:4069
Definition: ts_gtest.h:10243
Definition: ts_gtest.h:14588
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)
Definition: ts_gtest.h:12282
TemplateSel< T1 > Head
Definition: ts_gtest.h:5481
Definition: ts_gtest.h:4158
testing::Types< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None, internal::None >::type internal::Types17< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 > type
Definition: ts_gtest.h:4787
Types28< 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 > Tail
Definition: ts_gtest.h:4121
TemplateSel< T1 > Head
Definition: ts_gtest.h:5806
ParameterizedTestCaseInfo< TestCase > * GetTestCasePatternHolder(const char *test_case_name, const char *file, int line)
Definition: ts_gtest.h:10629
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)
Definition: ts_gtest.h:14594
T * pointer()
Definition: ts_gtest.h:2647
T1 Head
Definition: ts_gtest.h:4376
T element_type
Definition: ts_gtest.h:2050
Types21< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22 > Tail
Definition: ts_gtest.h:4039
Templates7< T2, T3, T4, T5, T6, T7, T8 > Tail
Definition: ts_gtest.h:5456
testing::internal::Templates< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates10< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 > type
Definition: ts_gtest.h:6312
TemplateSel< T1 > Head
Definition: ts_gtest.h:5751
static void Print(const T &value,::std::ostream *os)
Definition: ts_gtest.h:9935
Definition: ts_gtest.h:5480
static void Print(const T &value,::std::ostream *os)
Definition: ts_gtest.h:9942
Definition: ts_gtest.h:15648
Types24< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 > Tail
Definition: ts_gtest.h:4072
Definition: ts_gtest.h:3948
Definition: ts_gtest.h:9373
Types11< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 > Tail
Definition: ts_gtest.h:3942
GLsizei const GLvoid * pointer
Definition: ts_gtest.h:11293
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)
Definition: ts_gtest.h:11498
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates33< 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 > type
Definition: ts_gtest.h:6673
TimeInMillis elapsed_time() const
Definition: ts_gtest.h:18005
testing::internal::Templates< 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, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT >::type Templates38< 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 > type
Definition: ts_gtest.h:6775
GLfloat GLfloat GLfloat GLfloat v3
bool IsAlNum(char ch)
Definition: ts_gtest.h:2820
Definition: ts_gtest.h:2590
GLuint color
Definition: core_c.h:1276
Definition: ts_gtest.h:10809