diff options
-rw-r--r-- | googletest/test/gtest-printers_test.cc | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/googletest/test/gtest-printers_test.cc b/googletest/test/gtest-printers_test.cc index 686e62a8..1584de43 100644 --- a/googletest/test/gtest-printers_test.cc +++ b/googletest/test/gtest-printers_test.cc @@ -50,6 +50,15 @@ #include "gtest/gtest.h" +// hash_set are available under Visual C++, or on Linux. +#if GTEST_HAS_HASH_MAP_ +# include <hash_map> // NOLINT +#endif // GTEST_HAS_HASH_MAP_ + +#if GTEST_HAS_HASH_SET_ +# include <hash_set> // NOLINT +#endif // GTEST_HAS_HASH_SET_ + #if GTEST_HAS_STD_FORWARD_LIST_ # include <forward_list> // NOLINT #endif // GTEST_HAS_STD_FORWARD_LIST_ @@ -227,6 +236,34 @@ 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_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_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> |