From 0c469a5a065e5db8093e0abd1a31648e9b459360 Mon Sep 17 00:00:00 2001 From: Brian Gianforcaro Date: Fri, 15 Nov 2019 17:26:47 -0800 Subject: [PATCH] Fix FlatTuple compilation on older msvc. googletest 1.10.0 fails to compile on msvc version 19.00.23917 with one compilation error: src\googletest\include\gtest\internal\gtest-internal.h(1188) : error C2039: 'FlatTupleBase,testing::internal::IndexSequence<0,1> >': is not a member of 'testing::internal::FlatTuple' This PR fixes the compilation error by explicitly specifying the full type that Indices is located in the base type. --- googletest/include/gtest/internal/gtest-internal.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/googletest/include/gtest/internal/gtest-internal.h b/googletest/include/gtest/internal/gtest-internal.h index f9da4899..6175bca0 100644 --- a/googletest/include/gtest/internal/gtest-internal.h +++ b/googletest/include/gtest/internal/gtest-internal.h @@ -1185,7 +1185,7 @@ struct FlatTupleBase, IndexSequence> // Analog to std::tuple but with different tradeoffs. // This class minimizes the template instantiation depth, thus allowing more -// elements that std::tuple would. std::tuple has been seen to require an +// elements than std::tuple would. std::tuple has been seen to require an // instantiation depth of more than 10x the number of elements in some // implementations. // FlatTuple and ElemFromList are not recursive and have a fixed depth @@ -1196,7 +1196,9 @@ template class FlatTuple : private FlatTupleBase, typename MakeIndexSequence::type> { - using Indices = typename FlatTuple::FlatTupleBase::Indices; + + using Indices = typename FlatTupleBase, + typename MakeIndexSequence::type>::Indices; public: FlatTuple() = default;