aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Collingbourne <pcc@google.com>2018-01-17 16:05:47 -0800
committerPeter Collingbourne <pcc@google.com>2018-01-17 16:05:49 -0800
commit3ba21cd5f724528ab8792c05bda6e06ceb557bff (patch)
treea36bcbf4c7eb77662b5ad6a36fda92442bc77e8b /src
parent47b7d2c7cadf74ceec90fc5042232819cd0dd557 (diff)
downloadprotobuf-3ba21cd5f724528ab8792c05bda6e06ceb557bff.tar.gz
protobuf-3ba21cd5f724528ab8792c05bda6e06ceb557bff.tar.bz2
protobuf-3ba21cd5f724528ab8792c05bda6e06ceb557bff.zip
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++.
Diffstat (limited to 'src')
-rw-r--r--src/google/protobuf/arena.h2
-rw-r--r--src/google/protobuf/stubs/hash.h3
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> {