diff options
author | Gennadiy Civil <misterg@google.com> | 2018-03-16 17:36:36 (GMT) |
---|---|---|
committer | Gennadiy Civil <misterg@google.com> | 2018-03-16 17:36:36 (GMT) |
commit | 080fcbe0aae28dec00c2903ea04f2d2b022deb12 (patch) | |
tree | 3b6fc12bfdfec27cc96211c4ed4fa6e61b6eabc3 | |
parent | a178cc7ef73ce7e6e7e688d3d5cbccfc3c1d5d6b (diff) | |
download | googletest-080fcbe0aae28dec00c2903ea04f2d2b022deb12.zip googletest-080fcbe0aae28dec00c2903ea04f2d2b022deb12.tar.gz googletest-080fcbe0aae28dec00c2903ea04f2d2b022deb12.tar.bz2 |
cl 189032107
-rw-r--r-- | googlemock/include/gmock/gmock-spec-builders.h | 1 | ||||
-rw-r--r-- | googlemock/test/gmock-matchers_test.cc | 1 | ||||
-rw-r--r-- | googletest/include/gtest/internal/gtest-internal.h | 26 |
3 files changed, 9 insertions, 19 deletions
diff --git a/googlemock/include/gmock/gmock-spec-builders.h b/googlemock/include/gmock/gmock-spec-builders.h index f8e1c6a..c1b6301 100644 --- a/googlemock/include/gmock/gmock-spec-builders.h +++ b/googlemock/include/gmock/gmock-spec-builders.h @@ -563,7 +563,6 @@ class ExpectationSet { public: // A bidirectional iterator that can read a const element in the set. typedef Expectation::Set::const_iterator const_iterator; - typedef Expectation::Set::iterator iterator; // An object stored in the set. This is an alias of Expectation. typedef Expectation::Set::value_type value_type; diff --git a/googlemock/test/gmock-matchers_test.cc b/googlemock/test/gmock-matchers_test.cc index f7bf2a8..829935e 100644 --- a/googlemock/test/gmock-matchers_test.cc +++ b/googlemock/test/gmock-matchers_test.cc @@ -4526,7 +4526,6 @@ class Streamlike { class ConstIter; public: typedef ConstIter const_iterator; - typedef ConstIter iterator; typedef T value_type; template <typename InIter> diff --git a/googletest/include/gtest/internal/gtest-internal.h b/googletest/include/gtest/internal/gtest-internal.h index 612f8a4..6e904a8 100644 --- a/googletest/include/gtest/internal/gtest-internal.h +++ b/googletest/include/gtest/internal/gtest-internal.h @@ -940,27 +940,19 @@ struct IsRecursiveContainerImpl; template <typename C> struct IsRecursiveContainerImpl<C, false> : public false_type {}; +// Since the IsRecursiveContainerImpl depends on the IsContainerTest we need to +// obey the same inconsistencies as the IsContainerTest, namely check if +// something is a container is relying on only const_iterator in C++11 and +// is relying on both const_iterator and iterator otherwise template <typename C> struct IsRecursiveContainerImpl<C, true> { - template <typename T> - struct VoidT { - typedef void value_type; - }; - template <typename C1, typename VT = void> - struct PathTraits { - typedef typename C1::const_iterator::value_type value_type; - }; - template <typename C2> - struct PathTraits< - C2, typename VoidT<typename C2::iterator::value_type>::value_type> { - typedef typename C2::iterator::value_type value_type; - }; - typedef typename IteratorTraits<typename C::iterator>::value_type value_type; -#if GTEST_LANG_CXX11 - typedef std::is_same<value_type, C> type; + #if GTEST_LANG_CXX11 + typedef typename IteratorTraits<typename C::const_iterator>::value_type + value_type; #else - typedef is_same<value_type, C> type; + typedef typename IteratorTraits<typename C::iterator>::value_type value_type; #endif + typedef is_same<value_type, C> type; }; // IsRecursiveContainer<Type> is a unary compile-time predicate that |