mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-01-24 14:45:14 +08:00
Fix duplicate definitions on Mac
This commit is contained in:
parent
91e99ec1e0
commit
eb04775903
@ -189,19 +189,17 @@ template<> struct make_unsigned<signed int> { typedef unsigned int type; }
|
||||
template<> struct make_unsigned<unsigned int> { typedef unsigned int type; };
|
||||
template<> struct make_unsigned<signed long> { typedef unsigned long type; };
|
||||
template<> struct make_unsigned<unsigned long> { typedef unsigned long type; };
|
||||
template<> struct make_unsigned<signed long long> { typedef unsigned long long type; };
|
||||
template<> struct make_unsigned<unsigned long long> { typedef unsigned long long type; };
|
||||
#if EIGEN_COMP_MSVC
|
||||
template<> struct make_unsigned<signed __int64> { typedef unsigned __int64 type; };
|
||||
template<> struct make_unsigned<unsigned __int64> { typedef unsigned __int64 type; };
|
||||
#endif
|
||||
|
||||
// Some platforms define int64_t as long long even for C++03. In this case we
|
||||
// are missing the definition for make_unsigned. If we just define it, we get
|
||||
// duplicated definitions for platforms defining int64_t as signed long for
|
||||
// C++03. We therefore add the specialization for C++03 long long for these
|
||||
// platforms only.
|
||||
#if EIGEN_OS_MAC
|
||||
// Some platforms define int64_t as `long long` even for C++03, where
|
||||
// `long long` is not guaranteed by the standard. In this case we are missing
|
||||
// the definition for make_unsigned. If we just define it, we run into issues
|
||||
// where `long long` doesn't exist in some compilers for C++03. We therefore add
|
||||
// the specialization for these platforms only.
|
||||
#if EIGEN_OS_MAC || EIGEN_COMP_MINGW
|
||||
template<> struct make_unsigned<unsigned long long> { typedef unsigned long long type; };
|
||||
template<> struct make_unsigned<long long> { typedef unsigned long long type; };
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user