diff --git a/src/google/protobuf/generated_message_util.h b/src/google/protobuf/generated_message_util.h index 19bac7dce..14101832a 100644 --- a/src/google/protobuf/generated_message_util.h +++ b/src/google/protobuf/generated_message_util.h @@ -46,7 +46,7 @@ #include #ifndef PROTOBUF_FINAL -#if __cplusplus >= 201103L +#if LANG_CXX11 #define PROTOBUF_FINAL final #else #define PROTOBUF_FINAL @@ -99,7 +99,7 @@ class ExplicitlyConstructed { } } -#if __cplusplus >= 201103L +#if LANG_CXX11 constexpr #endif const T& diff --git a/src/google/protobuf/stubs/port.h b/src/google/protobuf/stubs/port.h index d5ef166e4..72adba6d7 100644 --- a/src/google/protobuf/stubs/port.h +++ b/src/google/protobuf/stubs/port.h @@ -97,6 +97,15 @@ // =================================================================== // from google3/base/port.h + +#if (defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L || \ + (defined(_MSC_VER) && _MSC_VER >= 1900)) +// Define this to 1 if the code is compiled in C++11 mode; leave it +// undefined otherwise. Do NOT define it to 0 -- that causes +// '#ifdef LANG_CXX11' to behave differently from '#if LANG_CXX11'. +#define LANG_CXX11 1 +#endif + namespace google { namespace protobuf {