This bugzilla service is closed. All entries have been migrated to

Bug 361

Summary: Removing compiler-reserved names (e.g. _Scalar, _Rows, etc.)
Product: Eigen Reporter: michel_morin <mimomorin>
Component: GeneralAssignee: Nobody <eigen.nobody>
Status: DECISIONNEEDED ---    
Severity: Internal Design CC: chtz, gael.guennebaud, jacob.benoit.1
Priority: Normal    
Version: 3.0   
Hardware: All   
OS: All   

Description michel_morin 2011-10-13 20:14:14 UTC
Maybe you know this, but let me explain this. 
Names begin with an underscore followed by an uppercase letter are 
reserved to compilers for any use (C++ Standard § 
So it is unsafe to use template parameter's name like _Scalar, _Rows, etc. 
How about changing these names to Scalar_, Rows_, …?
Comment 1 Benoit Jacob 2011-10-13 20:18:21 UTC
We know this, and we don't really care until we actually run into a collision. Let us know if you have.
Comment 2 michel_morin 2011-10-13 20:41:04 UTC
I didn't have any problem with this. So it may be unnecessary concern.
Comment 3 Christoph Hertzberg 2013-09-18 18:15:18 UTC
Bug 658 is an example for a collision.
I would vote for changing all possibly colliding names (even though some are unlikely to be used by a compiler).
Comment 4 Nobody 2019-12-04 11:11:39 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: