From 3ba21cd5f724528ab8792c05bda6e06ceb557bff Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Wed, 17 Jan 2018 16:05:47 -0800 Subject: [PATCH] Add support for libc++ on Windows. This disables a couple of workarounds which are only necessary with MSVC's standard library and cause problems with libc++. --- src/google/protobuf/arena.h | 2 +- src/google/protobuf/stubs/hash.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/google/protobuf/arena.h b/src/google/protobuf/arena.h index f3cdedac..b500b3be 100644 --- a/src/google/protobuf/arena.h +++ b/src/google/protobuf/arena.h @@ -40,7 +40,7 @@ #if LANG_CXX11 #include #endif -#if defined(_MSC_VER) && !_HAS_EXCEPTIONS +#if defined(_MSC_VER) && !defined(_LIBCPP_STD_VER) && !_HAS_EXCEPTIONS // Work around bugs in MSVC header when _HAS_EXCEPTIONS=0. #include #include diff --git a/src/google/protobuf/stubs/hash.h b/src/google/protobuf/stubs/hash.h index 218cd948..ec1f9810 100644 --- a/src/google/protobuf/stubs/hash.h +++ b/src/google/protobuf/stubs/hash.h @@ -235,7 +235,8 @@ class hash_set : public std::set { HashFcn hash_function() const { return HashFcn(); } }; -#elif defined(_MSC_VER) && !defined(_STLPORT_VERSION) +#elif defined(_MSC_VER) && !defined(_STLPORT_VERSION) && \ + !(defined(_LIBCPP_STD_VER) && _LIBCPP_STD_VER >= 11) template struct hash : public GOOGLE_PROTOBUF_HASH_COMPARE { -- 2.16.2.395.g2e18187dfd-goog