New user self-registration is currently disabled. Please email eigen-core-team @ lists.tuxfamily.org if you need an account.
Bug 1067 - name conflict: IsRowMajor in GeneralProduct<Lhs,Rhs,OuterProduct>
name conflict: IsRowMajor in GeneralProduct<Lhs,Rhs,OuterProduct>
Status: RESOLVED FIXED
Product: Eigen
Classification: Unclassified
Component: Core - general
3.2
All All
: Normal Compilation Problem
Assigned To: Nobody
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2015-09-18 03:58 UTC by thduynguyen
Modified: 2015-09-19 19:46 UTC (History)
3 users (show)



Attachments

Description thduynguyen 2015-09-18 03:58:36 UTC
IsRowMajor is an enum value defined in DenseBase. However, in the template specialization of GeneralProduct<Lhs,Rhs,OuterProduct>, derived from ProductBase<--MatrixBase<--DenseBase, another struct is defined with the same name IsRowMajor. This causes a compilation error in Assign_MKL.h, line 51 when MKL is enabled: 
----
Eigen/Eigen/src/Core/Assign_MKL.h:51:50: error: dependent-name ‘Src:: IsRowMajor’ is parsed as a non-type, but instantiation yields a type
       StorageOrdersAgree = (int(Dst::IsRowMajor) == int(Src::IsRowMajor)),
----
Changing the struct's name seems to fix the problem.
Comment 1 Gael Guennebaud 2015-09-19 19:46:36 UTC
Thank you for the report.

Devel: https://bitbucket.org/eigen/eigen/commits/25c4b01d1bbc/
3.2:   https://bitbucket.org/eigen/eigen/commits/789ae94e2002/

Note You need to log in before you can comment on or make changes to this bug.