43 lines
1.5 KiB
Diff
43 lines
1.5 KiB
Diff
From 3ba21cd5f724528ab8792c05bda6e06ceb557bff Mon Sep 17 00:00:00 2001
|
|
From: Peter Collingbourne <pcc@google.com>
|
|
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 <google/protobuf/stubs/type_traits.h>
|
|
#endif
|
|
-#if defined(_MSC_VER) && !_HAS_EXCEPTIONS
|
|
+#if defined(_MSC_VER) && !defined(_LIBCPP_STD_VER) && !_HAS_EXCEPTIONS
|
|
// Work around bugs in MSVC <typeinfo> header when _HAS_EXCEPTIONS=0.
|
|
#include <exception>
|
|
#include <typeinfo>
|
|
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<Key, HashFcn> {
|
|
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 <typename Key>
|
|
struct hash : public GOOGLE_PROTOBUF_HASH_COMPARE<Key> {
|
|
--
|
|
2.16.2.395.g2e18187dfd-goog
|
|
|