Attached a 1-line patch to fully qualify Eigen::internal::aligned_free in Memory.h. I'm new to hg and I couldn't figure out from the instructions how to push this directly (or whether I even have the permission to do so).
Anyway, this patch helps avoids a conflict on certain Windows toolchains (potentially due to some ADL name resolution bug) in the case where aligned_free is defined in the global namespace. In any case, tightening this up is harmless. Thanks, Sam
# HG changeset patch # User Sam Hasinoff <[email protected]> # Date 1551485748 28800 # Fri Mar 01 16:15:48 2019 -0800 # Node ID 5728a9b09b62a5ef83019995b3ee6f98243ea049 # Parent 1cbd54ce7b26bc92ccef84ceacf568d2be481d8a Fully qualify Eigen::internal::aligned_free This helps avoids a conflict on certain Windows toolchains (potentially due to some ADL name resolution bug) in the case where aligned_free is defined in the global namespace. In any case, tightening this up is harmless. diff --git a/Eigen/src/Core/util/Memory.h b/Eigen/src/Core/util/Memory.h --- a/Eigen/src/Core/util/Memory.h +++ b/Eigen/src/Core/util/Memory.h @@ -373,17 +373,17 @@ template<typename T, bool Align> EIGEN_D } /** \internal Deletes objects constructed with aligned_new * The \a size parameters tells on how many objects to call the destructor of T. */ template<typename T> EIGEN_DEVICE_FUNC inline void aligned_delete(T *ptr, std::size_t size) { destruct_elements_of_array<T>(ptr, size); - aligned_free(ptr); + Eigen::internal::aligned_free(ptr); } /** \internal Deletes objects constructed with conditional_aligned_new * The \a size parameters tells on how many objects to call the destructor of T. */ template<typename T, bool Align> EIGEN_DEVICE_FUNC inline void conditional_aligned_delete(T *ptr, std::size_t size) { destruct_elements_of_array<T>(ptr, size);
