"...git@developer.sourcefind.cn:tsoc/superbenchmark.git" did not exist on "6e50f0228f31eab876f5b17f45687f8743c7af5e"
Commit a3c2e107 authored by Gennadiy Civil's avatar Gennadiy Civil
Browse files

cl 189032107, again

parent 080fcbe0
...@@ -933,19 +933,34 @@ struct IsHashTable { ...@@ -933,19 +933,34 @@ struct IsHashTable {
template <typename T> template <typename T>
const bool IsHashTable<T>::value; const bool IsHashTable<T>::value;
template<typename T>
struct VoidT {
typedef void value_type;
};
template <typename T, typename = void>
struct HasValueType : false_type {};
template <typename T>
struct HasValueType<T, VoidT<typename T::value_type> > : true_type {
};
template <typename C, template <typename C,
bool = sizeof(IsContainerTest<C>(0)) == sizeof(IsContainer)> bool = sizeof(IsContainerTest<C>(0)) == sizeof(IsContainer),
bool = HasValueType<C>::value>
struct IsRecursiveContainerImpl; struct IsRecursiveContainerImpl;
template <typename C> template <typename C, bool HV>
struct IsRecursiveContainerImpl<C, false> : public false_type {}; struct IsRecursiveContainerImpl<C, false, HV> : public false_type {};
// Since the IsRecursiveContainerImpl depends on the IsContainerTest we need to // Since the IsRecursiveContainerImpl depends on the IsContainerTest we need to
// obey the same inconsistencies as the IsContainerTest, namely check if // obey the same inconsistencies as the IsContainerTest, namely check if
// something is a container is relying on only const_iterator in C++11 and // something is a container is relying on only const_iterator in C++11 and
// is relying on both const_iterator and iterator otherwise // is relying on both const_iterator and iterator otherwise
template <typename C> template <typename C>
struct IsRecursiveContainerImpl<C, true> { struct IsRecursiveContainerImpl<C, true, false> : public false_type {};
template <typename C>
struct IsRecursiveContainerImpl<C, true, true> {
#if GTEST_LANG_CXX11 #if GTEST_LANG_CXX11
typedef typename IteratorTraits<typename C::const_iterator>::value_type typedef typename IteratorTraits<typename C::const_iterator>::value_type
value_type; value_type;
......
...@@ -195,7 +195,6 @@ class PathLike { ...@@ -195,7 +195,6 @@ class PathLike {
struct iterator { struct iterator {
typedef PathLike value_type; typedef PathLike value_type;
}; };
typedef iterator const_iterator;
PathLike() {} PathLike() {}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment