New user self-registration is disabled due to spam. Please email eigen-core-team @ lists.tuxfamily.org if you need an account.
Before reporting a bug, please make sure that your Eigen version is up-to-date!
Bug 1067 - name conflict: IsRowMajor in GeneralProduct<Lhs,Rhs,OuterProduct>
Summary: name conflict: IsRowMajor in GeneralProduct<Lhs,Rhs,OuterProduct>
Status: RESOLVED FIXED
Alias: None
Product: Eigen
Classification: Unclassified
Component: Core - general (show other bugs)
Version: 3.2
Hardware: All All
: Normal Compilation Problem
Assignee: Nobody
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
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.