From 27a4a748cb5cce6f68b6127d6c165a9808b8b2a7 Mon Sep 17 00:00:00 2001 From: Hauke Heibel Date: Thu, 22 Apr 2010 13:56:06 +0200 Subject: [PATCH] MSVC runs into problems when a forward declaration is using a different template type name than the actual declaration. This fixes the recent issues we observed on MSVC systems. --- Eigen/src/Core/util/ForwardDeclarations.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Eigen/src/Core/util/ForwardDeclarations.h b/Eigen/src/Core/util/ForwardDeclarations.h index 9379b64f8..9434bfd14 100644 --- a/Eigen/src/Core/util/ForwardDeclarations.h +++ b/Eigen/src/Core/util/ForwardDeclarations.h @@ -54,13 +54,13 @@ template class Minor; // is used as default template parameter value here, it gets mis-evaluated as just ei_traits::Flags // Moreover, adding brackets tends to give compilation errors with MSVC. // Solution: defer that to a helper struct. -template +template struct ei_block_direct_access_status { - enum { ret = ei_traits::Flags&DirectAccessBit ? HasDirectAccess : NoDirectAccess }; + enum { ret = ei_traits::Flags&DirectAccessBit ? HasDirectAccess : NoDirectAccess }; }; -template::ret> class Block; +template::ret> class Block; template class VectorBlock; template class Transpose;