aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/util/Meta.h
diff options
context:
space:
mode:
authorGravatar David Tellenbach <david.tellenbach@me.com>2020-08-14 17:24:37 +0200
committerGravatar David Tellenbach <david.tellenbach@me.com>2020-08-14 17:24:37 +0200
commitc6820a6316c86fb7f67fd344832f8e31cac62dc1 (patch)
tree75380cec4f500ed53894b218c24933e7df75fb13 /Eigen/src/Core/util/Meta.h
parent8ba1b0f41a7950dc3e1d4ed75859e36c73311235 (diff)
Replace the call to int64_t in the blasutil test by explicit types
Some platforms define int64_t to be long long even for C++03. If this is the case we miss the definition of internal::make_unsigned for this type. If we just define the template we get duplicated definitions errors for platforms defining int64_t as signed long for C++03. We need to find a way to distinguish both cases at compile-time.
Diffstat (limited to 'Eigen/src/Core/util/Meta.h')
-rwxr-xr-xEigen/src/Core/util/Meta.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/Eigen/src/Core/util/Meta.h b/Eigen/src/Core/util/Meta.h
index c892e499c..68452ecfa 100755
--- a/Eigen/src/Core/util/Meta.h
+++ b/Eigen/src/Core/util/Meta.h
@@ -160,6 +160,10 @@ template<> struct make_unsigned<unsigned long> { typedef unsigned long type;
template<> struct make_unsigned<signed __int64> { typedef unsigned __int64 type; };
template<> struct make_unsigned<unsigned __int64> { typedef unsigned __int64 type; };
#endif
+
+// TODO: 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
#endif
template <typename T> struct add_const { typedef const T type; };