From 55149df4e8d147485b44bca0da858be35cc2784f Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Mon, 22 Aug 2011 10:12:10 +0200 Subject: [PATCH] fix bug #262: Compilation error of stdvector_overload test with GCC 4.6 Now our aligned allocator is automatically activatived only when the user did not specified an allocator (or specified the default std::allocator). (transplanted from b85c89c313a79fa68b3e27c64247437f51a3657e ) --- Eigen/src/StlSupport/StdVector.h | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/Eigen/src/StlSupport/StdVector.h b/Eigen/src/StlSupport/StdVector.h index 81a2d7762..9a8749c30 100644 --- a/Eigen/src/StlSupport/StdVector.h +++ b/Eigen/src/StlSupport/StdVector.h @@ -28,24 +28,16 @@ #include "Eigen/src/StlSupport/details.h" -// Define the explicit instantiation (e.g. necessary for the Intel compiler) -#if defined(__INTEL_COMPILER) || defined(__GNUC__) - #define EIGEN_EXPLICIT_STL_VECTOR_INSTANTIATION(...) template class std::vector<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> >; -#else - #define EIGEN_EXPLICIT_STL_VECTOR_INSTANTIATION(...) -#endif - /** * This section contains a convenience MACRO which allows an easy specialization of * std::vector such that for data types with alignment issues the correct allocator * is used automatically. */ #define EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(...) \ -EIGEN_EXPLICIT_STL_VECTOR_INSTANTIATION(__VA_ARGS__) \ namespace std \ { \ - template \ - class vector<__VA_ARGS__, _Ay> \ + template<> \ + class vector<__VA_ARGS__, std::allocator<__VA_ARGS__> > \ : public vector<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > \ { \ typedef vector<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > vector_base; \