diff options
-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 f8e1c6ab..c1b63014 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 f7bf2a82..829935ef 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 612f8a4d..6e904a82 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 |