diff options
author | Feng Xiao <xiaofeng@google.com> | 2016-10-11 10:28:05 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-11 10:28:05 -0700 |
commit | 0321baf9e855a2b664436605c7067f348e1d7284 (patch) | |
tree | e03270ce217b0e912f1a253fe8d841829fa30702 /src | |
parent | bc3bff165fac28f7ad967d70dcf572ccb062c481 (diff) | |
parent | 1d2c7b6c7376f396c8c7dd9b6afd2d4f83f3cb05 (diff) | |
download | protobuf-0321baf9e855a2b664436605c7067f348e1d7284.tar.gz protobuf-0321baf9e855a2b664436605c7067f348e1d7284.tar.bz2 protobuf-0321baf9e855a2b664436605c7067f348e1d7284.zip |
Merge pull request #2203 from mrry/msvc_fix
Fix MSVC build when HAVE_LONG_LONG is defined.
Diffstat (limited to 'src')
-rw-r--r-- | src/google/protobuf/stubs/type_traits.h | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/src/google/protobuf/stubs/type_traits.h b/src/google/protobuf/stubs/type_traits.h index 8d48c6aa..3ab5ea7d 100644 --- a/src/google/protobuf/stubs/type_traits.h +++ b/src/google/protobuf/stubs/type_traits.h @@ -139,18 +139,10 @@ template<> struct is_integral<int> : true_type { }; template<> struct is_integral<unsigned int> : true_type { }; template<> struct is_integral<long> : true_type { }; template<> struct is_integral<unsigned long> : true_type { }; -#ifdef HAVE_LONG_LONG +#if defined(HAVE_LONG_LONG) || defined(_MSC_VER) template<> struct is_integral<long long> : true_type { }; template<> struct is_integral<unsigned long long> : true_type { }; #endif -#if defined(_MSC_VER) -// With VC, __int8, __int16, and __int32 are synonymous with standard types -// with the same size, but __int64 has not equivalent (i.e., it's neither -// long, nor long long and should be treated differnetly). -// https://msdn.microsoft.com/en-us/library/29dh1w7z.aspx -template<> struct is_integral<__int64> : true_type { }; -template<> struct is_integral<unsigned __int64> : true_type {}; -#endif template <class T> struct is_integral<const T> : is_integral<T> { }; template <class T> struct is_integral<volatile T> : is_integral<T> { }; template <class T> struct is_integral<const volatile T> : is_integral<T> { }; |