commit
						a325ad2db5
					
				| @ -46,9 +46,10 @@ | ||||
| #include "gmock/internal/gmock-internal-utils.h" | ||||
| #include "gmock/internal/gmock-port.h" | ||||
| 
 | ||||
| #if GTEST_HAS_STD_TYPE_TRAITS_  // Defined by gtest-port.h via gmock-port.h.
 | ||||
| #if GTEST_LANG_CXX11  // Defined by gtest-port.h via gmock-port.h.
 | ||||
| #include <functional> | ||||
| #include <type_traits> | ||||
| #endif | ||||
| #endif  // GTEST_LANG_CXX11
 | ||||
| 
 | ||||
| namespace testing { | ||||
| 
 | ||||
| @ -96,7 +97,7 @@ struct BuiltInDefaultValueGetter<T, false> { | ||||
| template <typename T> | ||||
| class BuiltInDefaultValue { | ||||
|  public: | ||||
| #if GTEST_HAS_STD_TYPE_TRAITS_ | ||||
| #if GTEST_LANG_CXX11 | ||||
|   // This function returns true iff type T has a built-in default value.
 | ||||
|   static bool Exists() { | ||||
|     return ::std::is_default_constructible<T>::value; | ||||
| @ -107,7 +108,7 @@ class BuiltInDefaultValue { | ||||
|         T, ::std::is_default_constructible<T>::value>::Get(); | ||||
|   } | ||||
| 
 | ||||
| #else  // GTEST_HAS_STD_TYPE_TRAITS_
 | ||||
| #else  // GTEST_LANG_CXX11
 | ||||
|   // This function returns true iff type T has a built-in default value.
 | ||||
|   static bool Exists() { | ||||
|     return false; | ||||
| @ -117,7 +118,7 @@ class BuiltInDefaultValue { | ||||
|     return BuiltInDefaultValueGetter<T, false>::Get(); | ||||
|   } | ||||
| 
 | ||||
| #endif  // GTEST_HAS_STD_TYPE_TRAITS_
 | ||||
| #endif  // GTEST_LANG_CXX11
 | ||||
| }; | ||||
| 
 | ||||
| // This partial specialization says that we use the same built-in
 | ||||
|  | ||||
| @ -218,7 +218,7 @@ class MyNonDefaultConstructible { | ||||
|   int value_; | ||||
| }; | ||||
| 
 | ||||
| #if GTEST_HAS_STD_TYPE_TRAITS_ | ||||
| #if GTEST_LANG_CXX11 | ||||
| 
 | ||||
| TEST(BuiltInDefaultValueTest, ExistsForDefaultConstructibleType) { | ||||
|   EXPECT_TRUE(BuiltInDefaultValue<MyDefaultConstructible>::Exists()); | ||||
| @ -228,7 +228,7 @@ TEST(BuiltInDefaultValueTest, IsDefaultConstructedForDefaultConstructibleType) { | ||||
|   EXPECT_EQ(42, BuiltInDefaultValue<MyDefaultConstructible>::Get().value()); | ||||
| } | ||||
| 
 | ||||
| #endif  // GTEST_HAS_STD_TYPE_TRAITS_
 | ||||
| #endif  // GTEST_LANG_CXX11
 | ||||
| 
 | ||||
| TEST(BuiltInDefaultValueTest, DoesNotExistForNonDefaultConstructibleType) { | ||||
|   EXPECT_FALSE(BuiltInDefaultValue<MyNonDefaultConstructible>::Exists()); | ||||
|  | ||||
| @ -363,14 +363,14 @@ | ||||
| #if GTEST_STDLIB_CXX11 | ||||
| # define GTEST_HAS_STD_BEGIN_AND_END_ 1 | ||||
| # define GTEST_HAS_STD_FORWARD_LIST_ 1 | ||||
| # if !defined(_MSC_VER) || (_MSC_FULL_VER >= 190023824) // works only with VS2015U2 and better
 | ||||
| # if !defined(_MSC_VER) || (_MSC_FULL_VER >= 190023824) | ||||
| // works only with VS2015U2 and better
 | ||||
| #   define GTEST_HAS_STD_FUNCTION_ 1 | ||||
| # endif | ||||
| # define GTEST_HAS_STD_INITIALIZER_LIST_ 1 | ||||
| # define GTEST_HAS_STD_MOVE_ 1 | ||||
| # define GTEST_HAS_STD_SHARED_PTR_ 1 | ||||
| # define GTEST_HAS_STD_TYPE_TRAITS_ 1 | ||||
| # define GTEST_HAS_STD_UNIQUE_PTR_ 1 | ||||
| # define GTEST_HAS_STD_SHARED_PTR_ 1 | ||||
| # define GTEST_HAS_UNORDERED_MAP_ 1 | ||||
| # define GTEST_HAS_UNORDERED_SET_ 1 | ||||
| #endif | ||||
| @ -982,13 +982,13 @@ using ::std::tuple_size; | ||||
| # endif | ||||
| #elif __GNUC__ >= 4 || defined(__clang__) | ||||
| # define GTEST_API_ __attribute__((visibility ("default"))) | ||||
| #endif // _MSC_VER
 | ||||
| #endif  // _MSC_VER
 | ||||
| 
 | ||||
| #endif // GTEST_API_
 | ||||
| #endif  // GTEST_API_
 | ||||
| 
 | ||||
| #ifndef GTEST_API_ | ||||
| # define GTEST_API_ | ||||
| #endif // GTEST_API_
 | ||||
| #endif  // GTEST_API_
 | ||||
| 
 | ||||
| #ifndef GTEST_DEFAULT_DEATH_TEST_STYLE | ||||
| # define GTEST_DEFAULT_DEATH_TEST_STYLE  "fast" | ||||
|  | ||||
| @ -50,18 +50,13 @@ | ||||
| 
 | ||||
| #include "gtest/gtest.h" | ||||
| 
 | ||||
| // hash_map and hash_set are available under Visual C++, or on Linux.
 | ||||
| #if GTEST_HAS_UNORDERED_MAP_ | ||||
| # include <unordered_map>  // NOLINT
 | ||||
| #elif GTEST_HAS_HASH_MAP_ | ||||
| # include <hash_map>            // NOLINT
 | ||||
| #endif  // GTEST_HAS_HASH_MAP_
 | ||||
| #endif  // GTEST_HAS_UNORDERED_MAP_
 | ||||
| 
 | ||||
| #if GTEST_HAS_UNORDERED_SET_ | ||||
| # include <unordered_set>  // NOLINT
 | ||||
| #elif GTEST_HAS_HASH_SET_ | ||||
| # include <hash_set>            // NOLINT
 | ||||
| #endif  // GTEST_HAS_HASH_SET_
 | ||||
| #endif  // GTEST_HAS_UNORDERED_SET_
 | ||||
| 
 | ||||
| #if GTEST_HAS_STD_FORWARD_LIST_ | ||||
| # include <forward_list> // NOLINT
 | ||||
| @ -240,50 +235,6 @@ using ::testing::internal::UniversalTersePrint; | ||||
| using ::testing::internal::UniversalTersePrintTupleFieldsToStrings; | ||||
| #endif | ||||
| 
 | ||||
| 
 | ||||
| // The hash_* classes are not part of the C++ standard.  STLport
 | ||||
| // defines them in namespace std.  MSVC defines them in ::stdext.  GCC
 | ||||
| // defines them in ::.
 | ||||
| #if GTEST_HAS_UNORDERED_MAP_ | ||||
| 
 | ||||
| #define GTEST_HAS_HASH_MAP_ 1 | ||||
| template <class Key, class T> | ||||
| using hash_map = ::std::unordered_map<Key, T>; | ||||
| template <class Key, class T> | ||||
| using hash_multimap = ::std::unordered_multimap<Key, T>; | ||||
| 
 | ||||
| #elif GTEST_HAS_HASH_MAP_ | ||||
| 
 | ||||
| #ifdef _STLP_HASH_MAP  // We got <hash_map> from STLport.
 | ||||
| using ::std::hash_map; | ||||
| using ::std::hash_multimap; | ||||
| #elif _MSC_VER | ||||
| using ::stdext::hash_map; | ||||
| using ::stdext::hash_multimap; | ||||
| #endif | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| #if GTEST_HAS_UNORDERED_SET_ | ||||
| 
 | ||||
| #define GTEST_HAS_HASH_SET_ 1 | ||||
| template <class Key> | ||||
| using hash_set = ::std::unordered_set<Key>; | ||||
| template <class Key> | ||||
| using hash_multiset = ::std::unordered_multiset<Key>; | ||||
| 
 | ||||
| #elif GTEST_HAS_HASH_SET_ | ||||
| 
 | ||||
| #ifdef _STLP_HASH_MAP  // We got <hash_map> from STLport.
 | ||||
| using ::std::hash_map; | ||||
| using ::std::hash_multimap; | ||||
| #elif _MSC_VER | ||||
| using ::stdext::hash_map; | ||||
| using ::stdext::hash_multimap; | ||||
| #endif | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| // Prints a value to a string using the universal value printer.  This
 | ||||
| // is a helper for testing UniversalPrinter<T>::Print() for various types.
 | ||||
| template <typename T> | ||||
| @ -868,16 +819,16 @@ TEST(PrintStlContainerTest, NonEmptyDeque) { | ||||
|   EXPECT_EQ("{ 1, 3 }", Print(non_empty)); | ||||
| } | ||||
| 
 | ||||
| #if GTEST_HAS_HASH_MAP_ | ||||
| #if GTEST_HAS_UNORDERED_MAP_ | ||||
| 
 | ||||
| TEST(PrintStlContainerTest, OneElementHashMap) { | ||||
|   hash_map<int, char> map1; | ||||
|   ::std::unordered_map<int, char> map1; | ||||
|   map1[1] = 'a'; | ||||
|   EXPECT_EQ("{ (1, 'a' (97, 0x61)) }", Print(map1)); | ||||
| } | ||||
| 
 | ||||
| TEST(PrintStlContainerTest, HashMultiMap) { | ||||
|   hash_multimap<int, bool> map1; | ||||
|   ::std::unordered_multimap<int, bool> map1; | ||||
|   map1.insert(make_pair(5, true)); | ||||
|   map1.insert(make_pair(5, false)); | ||||
| 
 | ||||
| @ -888,12 +839,12 @@ TEST(PrintStlContainerTest, HashMultiMap) { | ||||
|                   << " where Print(map1) returns \"" << result << "\"."; | ||||
| } | ||||
| 
 | ||||
| #endif  // GTEST_HAS_HASH_MAP_
 | ||||
| #endif  // GTEST_HAS_UNORDERED_MAP_
 | ||||
| 
 | ||||
| #if GTEST_HAS_HASH_SET_ | ||||
| #if GTEST_HAS_UNORDERED_SET_ | ||||
| 
 | ||||
| TEST(PrintStlContainerTest, HashSet) { | ||||
|   hash_set<int> set1; | ||||
|   ::std::unordered_set<int> set1; | ||||
|   set1.insert(1); | ||||
|   EXPECT_EQ("{ 1 }", Print(set1)); | ||||
| } | ||||
| @ -901,7 +852,7 @@ TEST(PrintStlContainerTest, HashSet) { | ||||
| TEST(PrintStlContainerTest, HashMultiSet) { | ||||
|   const int kSize = 5; | ||||
|   int a[kSize] = { 1, 1, 2, 5, 1 }; | ||||
|   hash_multiset<int> set1(a, a + kSize); | ||||
|   ::std::unordered_multiset<int> set1(a, a + kSize); | ||||
| 
 | ||||
|   // Elements of hash_multiset can be printed in any order.
 | ||||
|   const std::string result = Print(set1); | ||||
| @ -927,7 +878,7 @@ TEST(PrintStlContainerTest, HashMultiSet) { | ||||
|   EXPECT_TRUE(std::equal(a, a + kSize, numbers.begin())); | ||||
| } | ||||
| 
 | ||||
| #endif  // GTEST_HAS_HASH_SET_
 | ||||
| #endif  //  GTEST_HAS_UNORDERED_SET_
 | ||||
| 
 | ||||
| TEST(PrintStlContainerTest, List) { | ||||
|   const std::string a[] = {"hello", "world"}; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user