|
|
|
@ -104,7 +104,14 @@
|
|
|
|
|
// And.. they are moved back to stdext in MSVC 2013 (haven't checked 2012). That
|
|
|
|
|
// said, use unordered_map for MSVC 2010 and beyond is our safest bet.
|
|
|
|
|
#elif defined(_MSC_VER)
|
|
|
|
|
# if _MSC_VER >= 1600 // Since Visual Studio 2010
|
|
|
|
|
# if _MSC_VER >= 1900 // Since Visual Studio 2019
|
|
|
|
|
# define GOOGLE_PROTOBUF_HASH_NAMESPACE std
|
|
|
|
|
# include <unordered_map>
|
|
|
|
|
# define GOOGLE_PROTOBUF_HASH_MAP_CLASS unordered_map
|
|
|
|
|
# include <unordered_set>
|
|
|
|
|
# define GOOGLE_PROTOBUF_HASH_SET_CLASS unordered_set
|
|
|
|
|
|
|
|
|
|
# elif _MSC_VER >= 1600 // Since Visual Studio 2010
|
|
|
|
|
# define GOOGLE_PROTOBUF_HAS_CXX11_HASH
|
|
|
|
|
# define GOOGLE_PROTOBUF_HASH_COMPARE std::hash_compare
|
|
|
|
|
# elif _MSC_VER >= 1500 // Since Visual Studio 2008
|
|
|
|
@ -233,7 +240,7 @@ namespace google {
|
|
|
|
|
HashFcn hash_function() const { return HashFcn(); }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#elif defined(_MSC_VER) && !defined(_STLPORT_VERSION)
|
|
|
|
|
#elif defined(_MSC_VER) && _MSC_VER < 1900 && !defined(_STLPORT_VERSION)
|
|
|
|
|
|
|
|
|
|
template <typename Key>
|
|
|
|
|
struct hash : public GOOGLE_PROTOBUF_HASH_COMPARE<Key> {
|
|
|
|
|