http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51319
Bug #: 51319
Summary: [4.7 Regression] Eigen3 enums not accepted
Classification: Unclassified
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: [email protected]
ReportedBy: [email protected]
This is likely related to Bug 51312 and/or Bug 51305, but let me report it just
to be sure:
template<int> struct X{};
struct Base {
enum { a=1 };
};
struct Der : Base {
using Base::a;
typedef X<(int)a> Y;
};
$ g++ u.cc -c
u.cc:7:26: error: 'using Base::a' cannot appear in a constant-expression
u.cc:7:27: error: template argument 1 is invalid
$ g++ -std=c++0x u.cc -c
u.cc:7:26: error: invalid cast from type 'Base' to type 'int'
u.cc:7:27: error: template argument 1 is invalid