Googletest export
Use a tagged constructor for FlatTuple instead. Some versions of MSVC are getting confused with that constructor and generating invalid code. PiperOrigin-RevId: 342050957
This commit is contained in:
committed by
Mark Barolak
parent
e7ed50fd13
commit
a1adec799a
@@ -7555,7 +7555,8 @@ TEST(FlatTuple, Basic) {
|
||||
EXPECT_EQ(0.0, tuple.Get<1>());
|
||||
EXPECT_EQ(nullptr, tuple.Get<2>());
|
||||
|
||||
tuple = FlatTuple<int, double, const char*>(7, 3.2, "Foo");
|
||||
tuple = FlatTuple<int, double, const char*>(
|
||||
testing::internal::FlatTupleConstructTag{}, 7, 3.2, "Foo");
|
||||
EXPECT_EQ(7, tuple.Get<0>());
|
||||
EXPECT_EQ(3.2, tuple.Get<1>());
|
||||
EXPECT_EQ(std::string("Foo"), tuple.Get<2>());
|
||||
@@ -7573,7 +7574,8 @@ std::string AddIntToString(int i, const std::string& s) {
|
||||
TEST(FlatTuple, Apply) {
|
||||
using testing::internal::FlatTuple;
|
||||
|
||||
FlatTuple<int, std::string> tuple{5, "Hello"};
|
||||
FlatTuple<int, std::string> tuple{testing::internal::FlatTupleConstructTag{},
|
||||
5, "Hello"};
|
||||
|
||||
// Lambda.
|
||||
EXPECT_TRUE(tuple.Apply([](int i, const std::string& s) -> bool {
|
||||
@@ -7647,7 +7649,8 @@ TEST(FlatTuple, ConstructorCalls) {
|
||||
ConstructionCounting::Reset();
|
||||
{
|
||||
ConstructionCounting elem;
|
||||
FlatTuple<ConstructionCounting> tuple{elem};
|
||||
FlatTuple<ConstructionCounting> tuple{
|
||||
testing::internal::FlatTupleConstructTag{}, elem};
|
||||
}
|
||||
EXPECT_EQ(ConstructionCounting::default_ctor_calls, 1);
|
||||
EXPECT_EQ(ConstructionCounting::dtor_calls, 2);
|
||||
@@ -7658,7 +7661,10 @@ TEST(FlatTuple, ConstructorCalls) {
|
||||
|
||||
// Move construction.
|
||||
ConstructionCounting::Reset();
|
||||
{ FlatTuple<ConstructionCounting> tuple{ConstructionCounting{}}; }
|
||||
{
|
||||
FlatTuple<ConstructionCounting> tuple{
|
||||
testing::internal::FlatTupleConstructTag{}, ConstructionCounting{}};
|
||||
}
|
||||
EXPECT_EQ(ConstructionCounting::default_ctor_calls, 1);
|
||||
EXPECT_EQ(ConstructionCounting::dtor_calls, 2);
|
||||
EXPECT_EQ(ConstructionCounting::copy_ctor_calls, 0);
|
||||
|
||||
Reference in New Issue
Block a user