[Bug c++/72756] New: Using an enum as a constant expression via dot operator should not compile.
claas.bontus at web dot de
gcc-bugzilla@gcc.gnu.org
Fri Jul 29 22:16:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72756
Bug ID: 72756
Summary: Using an enum as a constant expression via dot
operator should not compile.
Product: gcc
Version: 6.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: claas.bontus at web dot de
Target Milestone: ---
This is a follow up from discussion at
http://stackoverflow.com/q/38398475/3876684
The following should not compile, since enum m is accessed via dot operator at
//1. Compiler should at least emit a warning.
template<size_t n> struct A{};
template<size_t n>
struct tst
{ enum : size_t { m= n % 15 };
template<size_t p>
void
call( tst<p> const &t2 ) {
A<t2.m> a; // 1
}
};
More information about the Gcc-bugs
mailing list