Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
yangql
googletest
Commits
e3a9a567
Commit
e3a9a567
authored
Aug 08, 2019
by
Krystian Kuzniarek
Browse files
replace autogenerated TemplatesX classes by variadic ones
parent
eed64b5f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
28 additions
and
1743 deletions
+28
-1743
googletest/include/gtest/gtest-typed-test.h
googletest/include/gtest/gtest-typed-test.h
+7
-7
googletest/include/gtest/internal/gtest-internal.h
googletest/include/gtest/internal/gtest-internal.h
+1
-1
googletest/include/gtest/internal/gtest-type-util.h
googletest/include/gtest/internal/gtest-type-util.h
+10
-1657
googletest/include/gtest/internal/gtest-type-util.h.pump
googletest/include/gtest/internal/gtest-type-util.h.pump
+10
-78
No files found.
googletest/include/gtest/gtest-typed-test.h
View file @
e3a9a567
...
...
@@ -284,13 +284,13 @@ INSTANTIATE_TYPED_TEST_SUITE_P(My, FooTest, MyTypes);
void GTEST_SUITE_NAMESPACE_( \
SuiteName)::TestName<gtest_TypeParam_>::TestBody()
#define REGISTER_TYPED_TEST_SUITE_P(SuiteName, ...)
\
namespace GTEST_SUITE_NAMESPACE_(SuiteName) {
\
typedef ::testing::internal::Templates<__VA_ARGS__>
::type
gtest_AllTests_; \
}
\
static const char* const GTEST_REGISTERED_TEST_NAMES_(
\
SuiteName) GTEST_ATTRIBUTE_UNUSED_ =
\
GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName).VerifyRegisteredTestNames(
\
#define REGISTER_TYPED_TEST_SUITE_P(SuiteName, ...) \
namespace GTEST_SUITE_NAMESPACE_(SuiteName) { \
typedef ::testing::internal::Templates<__VA_ARGS__> gtest_AllTests_;
\
} \
static const char* const GTEST_REGISTERED_TEST_NAMES_( \
SuiteName) GTEST_ATTRIBUTE_UNUSED_ = \
GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName).VerifyRegisteredTestNames( \
__FILE__, __LINE__, #__VA_ARGS__)
// Legacy API is deprecated but still available
...
...
googletest/include/gtest/internal/gtest-internal.h
View file @
e3a9a567
...
...
@@ -781,7 +781,7 @@ class TypeParameterizedTestSuite {
// The base case for the compile time recursion.
template
<
GTEST_TEMPLATE_
Fixture
,
typename
Types
>
class
TypeParameterizedTestSuite
<
Fixture
,
Templates0
,
Types
>
{
class
TypeParameterizedTestSuite
<
Fixture
,
internal
::
None
,
Types
>
{
public:
static
bool
Register
(
const
char
*
/*prefix*/
,
const
CodeLocation
&
,
const
TypedTestSuitePState
*
/*state*/
,
...
...
googletest/include/gtest/internal/gtest-type-util.h
View file @
e3a9a567
...
...
@@ -34,11 +34,6 @@
// Type utilities needed for implementing typed and type-parameterized
// tests. This file is generated by a SCRIPT. DO NOT EDIT BY HAND!
//
// Currently we support at most 50 type-parameterized tests
// in one type-parameterized test suite.
// Please contact googletestframework@googlegroups.com if you need
// more.
// GOOGLETEST_CM0001 DO NOT DELETE
...
...
@@ -106,6 +101,9 @@ std::string GetTypeName() {
#if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
// A unique type indicating an empty node
struct
None
{};
# define GTEST_TEMPLATE_ template <typename T> class
// The template "selector" struct TemplateSel<Tmpl> is used to
...
...
@@ -127,1662 +125,17 @@ struct TemplateSel {
# define GTEST_BIND_(TmplSel, T) \
TmplSel::template Bind<T>::type
// A unique struct template used as the default value for the
// arguments of class template Templates. This allows us to simulate
// variadic templates (e.g. Templates<int>, Templates<int, double>,
// and etc), which C++ doesn't support directly.
template
<
typename
T
>
struct
NoneT
{};
// The following family of struct and struct templates are used to
// represent template lists. In particular, TemplatesN<T1, T2, ...,
// TN> represents a list of N templates (T1, T2, ..., and TN). Except
// for Templates0, every struct in the family has two member types:
// Head for the selector of the first template in the list, and Tail
// for the rest of the list.
// The empty template list.
struct
Templates0
{};
// Template lists of length 1, 2, 3, and so on.
template
<
GTEST_TEMPLATE_
T1
>
struct
Templates1
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates0
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
>
struct
Templates2
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates1
<
T2
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
>
struct
Templates3
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates2
<
T2
,
T3
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
>
struct
Templates4
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates3
<
T2
,
T3
,
T4
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
>
struct
Templates5
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates4
<
T2
,
T3
,
T4
,
T5
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
>
struct
Templates6
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates5
<
T2
,
T3
,
T4
,
T5
,
T6
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
>
struct
Templates7
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates6
<
T2
,
T3
,
T4
,
T5
,
T6
,
T7
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
>
struct
Templates8
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates7
<
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
>
struct
Templates9
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates8
<
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
>
struct
Templates10
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates9
<
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
>
struct
Templates11
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates10
<
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
>
struct
Templates12
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates11
<
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
>
struct
Templates13
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates12
<
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
>
struct
Templates14
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates13
<
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
>
struct
Templates15
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates14
<
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
,
T15
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
>
struct
Templates16
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates15
<
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
,
T15
,
T16
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
>
struct
Templates17
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates16
<
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
,
T15
,
T16
,
T17
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
>
struct
Templates18
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates17
<
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
,
T15
,
T16
,
T17
,
T18
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
>
struct
Templates19
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates18
<
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
,
T15
,
T16
,
T17
,
T18
,
T19
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
>
struct
Templates20
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates19
<
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
,
T15
,
T16
,
T17
,
T18
,
T19
,
T20
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
>
struct
Templates21
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates20
<
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
,
T15
,
T16
,
T17
,
T18
,
T19
,
T20
,
T21
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
>
struct
Templates22
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates21
<
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
,
T15
,
T16
,
T17
,
T18
,
T19
,
T20
,
T21
,
T22
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
>
struct
Templates23
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates22
<
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
,
T15
,
T16
,
T17
,
T18
,
T19
,
T20
,
T21
,
T22
,
T23
>
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
>
struct
Templates24
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
>
struct
Templates25
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
>
struct
Templates26
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
>
struct
Templates27
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
>
struct
Templates28
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
>
struct
Templates29
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
>
struct
Templates30
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
>
struct
Templates31
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
>
struct
Templates32
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
>
struct
Templates33
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
>
struct
Templates34
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
>
struct
Templates35
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
>
struct
Templates36
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
>
struct
Templates37
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
>
struct
Templates38
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
>
struct
Templates39
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
>
struct
Templates40
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
>
struct
Templates41
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
,
GTEST_TEMPLATE_
T42
>
struct
Templates42
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
,
GTEST_TEMPLATE_
T42
,
GTEST_TEMPLATE_
T43
>
struct
Templates43
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
,
GTEST_TEMPLATE_
T42
,
GTEST_TEMPLATE_
T43
,
GTEST_TEMPLATE_
T44
>
struct
Templates44
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
,
GTEST_TEMPLATE_
T42
,
GTEST_TEMPLATE_
T43
,
GTEST_TEMPLATE_
T44
,
GTEST_TEMPLATE_
T45
>
struct
Templates45
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
,
GTEST_TEMPLATE_
T42
,
GTEST_TEMPLATE_
T43
,
GTEST_TEMPLATE_
T44
,
GTEST_TEMPLATE_
T45
,
GTEST_TEMPLATE_
T46
>
struct
Templates46
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
,
GTEST_TEMPLATE_
T42
,
GTEST_TEMPLATE_
T43
,
GTEST_TEMPLATE_
T44
,
GTEST_TEMPLATE_
T45
,
GTEST_TEMPLATE_
T46
,
GTEST_TEMPLATE_
T47
>
struct
Templates47
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
,
GTEST_TEMPLATE_
T42
,
GTEST_TEMPLATE_
T43
,
GTEST_TEMPLATE_
T44
,
GTEST_TEMPLATE_
T45
,
GTEST_TEMPLATE_
T46
,
GTEST_TEMPLATE_
T47
,
GTEST_TEMPLATE_
T48
>
struct
Templates48
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
,
GTEST_TEMPLATE_
T42
,
GTEST_TEMPLATE_
T43
,
GTEST_TEMPLATE_
T44
,
GTEST_TEMPLATE_
T45
,
GTEST_TEMPLATE_
T46
,
GTEST_TEMPLATE_
T47
,
GTEST_TEMPLATE_
T48
,
GTEST_TEMPLATE_
T49
>
struct
Templates49
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
,
GTEST_TEMPLATE_
T42
,
GTEST_TEMPLATE_
T43
,
GTEST_TEMPLATE_
T44
,
GTEST_TEMPLATE_
T45
,
GTEST_TEMPLATE_
T46
,
GTEST_TEMPLATE_
T47
,
GTEST_TEMPLATE_
T48
,
GTEST_TEMPLATE_
T49
,
GTEST_TEMPLATE_
T50
>
struct
Templates50
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
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
;
};
// We don't want to require the users to write TemplatesN<...> directly,
// as that would require them to count the length. Templates<...> is much
// easier to write, but generates horrible messages when there is a
// compiler error, as gcc insists on printing out each template
// argument, even if it has the default value (this means Templates<list>
// will appear as Templates<list, NoneT, NoneT, ..., NoneT> in the compiler
// errors).
//
// Our solution is to combine the best part of the two approaches: a
// user would write Templates<T1, ..., TN>, and Google Test will translate
// that to TemplatesN<T1, ..., TN> internally to make error messages
// readable. The translation is done by the 'type' member of the
// Templates template.
template
<
GTEST_TEMPLATE_
T1
=
NoneT
,
GTEST_TEMPLATE_
T2
=
NoneT
,
GTEST_TEMPLATE_
T3
=
NoneT
,
GTEST_TEMPLATE_
T4
=
NoneT
,
GTEST_TEMPLATE_
T5
=
NoneT
,
GTEST_TEMPLATE_
T6
=
NoneT
,
GTEST_TEMPLATE_
T7
=
NoneT
,
GTEST_TEMPLATE_
T8
=
NoneT
,
GTEST_TEMPLATE_
T9
=
NoneT
,
GTEST_TEMPLATE_
T10
=
NoneT
,
GTEST_TEMPLATE_
T11
=
NoneT
,
GTEST_TEMPLATE_
T12
=
NoneT
,
GTEST_TEMPLATE_
T13
=
NoneT
,
GTEST_TEMPLATE_
T14
=
NoneT
,
GTEST_TEMPLATE_
T15
=
NoneT
,
GTEST_TEMPLATE_
T16
=
NoneT
,
GTEST_TEMPLATE_
T17
=
NoneT
,
GTEST_TEMPLATE_
T18
=
NoneT
,
GTEST_TEMPLATE_
T19
=
NoneT
,
GTEST_TEMPLATE_
T20
=
NoneT
,
GTEST_TEMPLATE_
T21
=
NoneT
,
GTEST_TEMPLATE_
T22
=
NoneT
,
GTEST_TEMPLATE_
T23
=
NoneT
,
GTEST_TEMPLATE_
T24
=
NoneT
,
GTEST_TEMPLATE_
T25
=
NoneT
,
GTEST_TEMPLATE_
T26
=
NoneT
,
GTEST_TEMPLATE_
T27
=
NoneT
,
GTEST_TEMPLATE_
T28
=
NoneT
,
GTEST_TEMPLATE_
T29
=
NoneT
,
GTEST_TEMPLATE_
T30
=
NoneT
,
GTEST_TEMPLATE_
T31
=
NoneT
,
GTEST_TEMPLATE_
T32
=
NoneT
,
GTEST_TEMPLATE_
T33
=
NoneT
,
GTEST_TEMPLATE_
T34
=
NoneT
,
GTEST_TEMPLATE_
T35
=
NoneT
,
GTEST_TEMPLATE_
T36
=
NoneT
,
GTEST_TEMPLATE_
T37
=
NoneT
,
GTEST_TEMPLATE_
T38
=
NoneT
,
GTEST_TEMPLATE_
T39
=
NoneT
,
GTEST_TEMPLATE_
T40
=
NoneT
,
GTEST_TEMPLATE_
T41
=
NoneT
,
GTEST_TEMPLATE_
T42
=
NoneT
,
GTEST_TEMPLATE_
T43
=
NoneT
,
GTEST_TEMPLATE_
T44
=
NoneT
,
GTEST_TEMPLATE_
T45
=
NoneT
,
GTEST_TEMPLATE_
T46
=
NoneT
,
GTEST_TEMPLATE_
T47
=
NoneT
,
GTEST_TEMPLATE_
T48
=
NoneT
,
GTEST_TEMPLATE_
T49
=
NoneT
,
GTEST_TEMPLATE_
T50
=
NoneT
>
template
<
GTEST_TEMPLATE_
Head_
,
GTEST_TEMPLATE_
...
Tail_
>
struct
Templates
{
typedef
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
;
using
Head
=
TemplateSel
<
Head_
>
;
using
Tail
=
Templates
<
Tail_
...
>
;
};
template
<
>
struct
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
>
{
typedef
Templates0
type
;
};
template
<
GTEST_TEMPLATE_
T1
>
struct
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
>
{
typedef
Templates1
<
T1
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
>
struct
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
>
{
typedef
Templates2
<
T1
,
T2
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
>
struct
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
>
{
typedef
Templates3
<
T1
,
T2
,
T3
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
>
struct
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
>
{
typedef
Templates4
<
T1
,
T2
,
T3
,
T4
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
>
struct
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
>
{
typedef
Templates5
<
T1
,
T2
,
T3
,
T4
,
T5
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
>
struct
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
>
{
typedef
Templates6
<
T1
,
T2
,
T3
,
T4
,
T5
,
T6
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
>
struct
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
>
{
typedef
Templates7
<
T1
,
T2
,
T3
,
T4
,
T5
,
T6
,
T7
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
>
struct
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
>
{
typedef
Templates8
<
T1
,
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
>
struct
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
>
{
typedef
Templates9
<
T1
,
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
>
struct
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
>
{
typedef
Templates10
<
T1
,
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
>
struct
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
>
{
typedef
Templates11
<
T1
,
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
>
struct
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
>
{
typedef
Templates12
<
T1
,
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
>
type
;
template
<
GTEST_TEMPLATE_
Head_
>
struct
Templates
<
Head_
>
{
typedef
TemplateSel
<
Head_
>
Head
;
typedef
None
Tail
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
>
struct
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
>
{
typedef
Templates13
<
T1
,
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
>
struct
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
>
{
typedef
Templates14
<
T1
,
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
>
struct
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
>
{
typedef
Templates15
<
T1
,
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
,
T15
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
>
struct
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
>
{
typedef
Templates16
<
T1
,
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
,
T15
,
T16
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
>
struct
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
>
{
typedef
Templates17
<
T1
,
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
,
T15
,
T16
,
T17
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
>
struct
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
>
{
typedef
Templates18
<
T1
,
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
,
T15
,
T16
,
T17
,
T18
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
>
struct
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
>
{
typedef
Templates19
<
T1
,
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
,
T15
,
T16
,
T17
,
T18
,
T19
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
>
struct
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
>
{
typedef
Templates20
<
T1
,
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
,
T15
,
T16
,
T17
,
T18
,
T19
,
T20
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
>
struct
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
>
{
typedef
Templates21
<
T1
,
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
,
T15
,
T16
,
T17
,
T18
,
T19
,
T20
,
T21
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
>
struct
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
>
{
typedef
Templates22
<
T1
,
T2
,
T3
,
T4
,
T5
,
T6
,
T7
,
T8
,
T9
,
T10
,
T11
,
T12
,
T13
,
T14
,
T15
,
T16
,
T17
,
T18
,
T19
,
T20
,
T21
,
T22
>
type
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
,
GTEST_TEMPLATE_
T42
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
,
GTEST_TEMPLATE_
T42
,
GTEST_TEMPLATE_
T43
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
,
GTEST_TEMPLATE_
T42
,
GTEST_TEMPLATE_
T43
,
GTEST_TEMPLATE_
T44
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
,
GTEST_TEMPLATE_
T42
,
GTEST_TEMPLATE_
T43
,
GTEST_TEMPLATE_
T44
,
GTEST_TEMPLATE_
T45
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
,
GTEST_TEMPLATE_
T42
,
GTEST_TEMPLATE_
T43
,
GTEST_TEMPLATE_
T44
,
GTEST_TEMPLATE_
T45
,
GTEST_TEMPLATE_
T46
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
,
GTEST_TEMPLATE_
T42
,
GTEST_TEMPLATE_
T43
,
GTEST_TEMPLATE_
T44
,
GTEST_TEMPLATE_
T45
,
GTEST_TEMPLATE_
T46
,
GTEST_TEMPLATE_
T47
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
,
GTEST_TEMPLATE_
T42
,
GTEST_TEMPLATE_
T43
,
GTEST_TEMPLATE_
T44
,
GTEST_TEMPLATE_
T45
,
GTEST_TEMPLATE_
T46
,
GTEST_TEMPLATE_
T47
,
GTEST_TEMPLATE_
T48
>
struct
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
>
{
typedef
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
;
};
template
<
GTEST_TEMPLATE_
T1
,
GTEST_TEMPLATE_
T2
,
GTEST_TEMPLATE_
T3
,
GTEST_TEMPLATE_
T4
,
GTEST_TEMPLATE_
T5
,
GTEST_TEMPLATE_
T6
,
GTEST_TEMPLATE_
T7
,
GTEST_TEMPLATE_
T8
,
GTEST_TEMPLATE_
T9
,
GTEST_TEMPLATE_
T10
,
GTEST_TEMPLATE_
T11
,
GTEST_TEMPLATE_
T12
,
GTEST_TEMPLATE_
T13
,
GTEST_TEMPLATE_
T14
,
GTEST_TEMPLATE_
T15
,
GTEST_TEMPLATE_
T16
,
GTEST_TEMPLATE_
T17
,
GTEST_TEMPLATE_
T18
,
GTEST_TEMPLATE_
T19
,
GTEST_TEMPLATE_
T20
,
GTEST_TEMPLATE_
T21
,
GTEST_TEMPLATE_
T22
,
GTEST_TEMPLATE_
T23
,
GTEST_TEMPLATE_
T24
,
GTEST_TEMPLATE_
T25
,
GTEST_TEMPLATE_
T26
,
GTEST_TEMPLATE_
T27
,
GTEST_TEMPLATE_
T28
,
GTEST_TEMPLATE_
T29
,
GTEST_TEMPLATE_
T30
,
GTEST_TEMPLATE_
T31
,
GTEST_TEMPLATE_
T32
,
GTEST_TEMPLATE_
T33
,
GTEST_TEMPLATE_
T34
,
GTEST_TEMPLATE_
T35
,
GTEST_TEMPLATE_
T36
,
GTEST_TEMPLATE_
T37
,
GTEST_TEMPLATE_
T38
,
GTEST_TEMPLATE_
T39
,
GTEST_TEMPLATE_
T40
,
GTEST_TEMPLATE_
T41
,
GTEST_TEMPLATE_
T42
,
GTEST_TEMPLATE_
T43
,
GTEST_TEMPLATE_
T44
,
GTEST_TEMPLATE_
T45
,
GTEST_TEMPLATE_
T46
,
GTEST_TEMPLATE_
T47
,
GTEST_TEMPLATE_
T48
,
GTEST_TEMPLATE_
T49
>
struct
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
>
{
typedef
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
;
};
// A unique type indicating an empty node
struct
None
{};
// Tuple-like type lists
template
<
typename
Head_
,
typename
...
Tail_
>
...
...
googletest/include/gtest/internal/gtest-type-util.h.pump
View file @
e3a9a567
...
...
@@ -32,11 +32,6 @@ $var n = 50 $$ Maximum length of type lists we want to support.
// Type utilities needed for implementing typed and type-parameterized
// tests. This file is generated by a SCRIPT. DO NOT EDIT BY HAND!
//
// Currently we support at most $n type-parameterized tests
// in one type-parameterized test suite.
// Please contact googletestframework@googlegroups.com if you need
// more.
// GOOGLETEST_CM0001 DO NOT DELETE
...
...
@@ -104,6 +99,9 @@ std::string GetTypeName() {
#if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
// A unique type indicating an empty node
struct
None
{};
# define GTEST_TEMPLATE_ template <typename T> class
// The template "selector" struct TemplateSel<Tmpl> is used to
...
...
@@ -125,84 +123,18 @@ struct TemplateSel {
# define GTEST_BIND_(TmplSel, T) \
TmplSel::template Bind<T>::type
// A unique struct template used as the default value for the
// arguments of class template Templates. This allows us to simulate
// variadic templates (e.g. Templates<int>, Templates<int, double>,
// and etc), which C++ doesn't support directly.
template
<
typename
T
>
struct
NoneT
{};
// The following family of struct and struct templates are used to
// represent template lists. In particular, TemplatesN<T1, T2, ...,
// TN> represents a list of N templates (T1, T2, ..., and TN). Except
// for Templates0, every struct in the family has two member types:
// Head for the selector of the first template in the list, and Tail
// for the rest of the list.
// The empty template list.
struct
Templates0
{};
// Template lists of length 1, 2, 3, and so on.
template
<
GTEST_TEMPLATE_
T1
>
struct
Templates1
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates0
Tail
;
};
$
range
i
2.
.
n
$
for
i
[[
$
range
j
1.
.
i
$
range
k
2.
.
i
template
<
$
for
j
,
[[
GTEST_TEMPLATE_
T
$
j
]]>
struct
Templates
$
i
{
typedef
TemplateSel
<
T1
>
Head
;
typedef
Templates
$
(
i
-
1
)
<
$
for
k
,
[[
T
$
k
]]
>
Tail
;
};
]]
// We don't want to require the users to write TemplatesN<...> directly,
// as that would require them to count the length. Templates<...> is much
// easier to write, but generates horrible messages when there is a
// compiler error, as gcc insists on printing out each template
// argument, even if it has the default value (this means Templates<list>
// will appear as Templates<list, NoneT, NoneT, ..., NoneT> in the compiler
// errors).
//
// Our solution is to combine the best part of the two approaches: a
// user would write Templates<T1, ..., TN>, and Google Test will translate
// that to TemplatesN<T1, ..., TN> internally to make error messages
// readable. The translation is done by the 'type' member of the
// Templates template.
$
range
i
1.
.
n
template
<
$
for
i
,
[[
GTEST_TEMPLATE_
T
$
i
=
NoneT
]]>
template
<
GTEST_TEMPLATE_
Head_
,
GTEST_TEMPLATE_
...
Tail_
>
struct
Templates
{
typedef
Templates
$
n
<
$
for
i
,
[[
T
$
i
]]
>
type
;
using
Head
=
TemplateSel
<
Head_
>
;
using
Tail
=
Templates
<
Tail_
...
>
;
};
template
<
>
struct
Templates
<
$
for
i
,
[[
NoneT
]]
>
{
typedef
Templates0
type
;
template
<
GTEST_TEMPLATE_
Head_
>
struct
Templates
<
Head_
>
{
typedef
TemplateSel
<
Head_
>
Head
;
typedef
None
Tail
;
};
$
range
i
1.
.
n
-
1
$
for
i
[[
$
range
j
1.
.
i
$
range
k
i
+
1.
.
n
template
<
$
for
j
,
[[
GTEST_TEMPLATE_
T
$
j
]]>
struct
Templates
<
$
for
j
,
[[
T
$
j
]]
$
for
k
[[,
NoneT
]]
>
{
typedef
Templates
$
i
<
$
for
j
,
[[
T
$
j
]]
>
type
;
};
]]
// A unique type indicating an empty node
struct
None
{};
// Tuple-like type lists
template
<
typename
Head_
,
typename
...
Tail_
>
struct
Types
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment