[Bug c++/78286] New: typename, type members and non-type members: code should be rejected, but it is not
michele.caini at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Nov 10 09:15:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78286
Bug ID: 78286
Summary: typename, type members and non-type members: code
should be rejected, but it is not
Product: gcc
Version: 6.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: michele.caini at gmail dot com
Target Milestone: ---
Consider the following code:
struct S {
struct foo {};
foo foo;
};
int main() {
typename S::foo t;
(void) t;
}
GCC compiles the code with no errors, but it should be rejected.
The non-type member foo hides the type member foo and the keyword typename
cannot help to disambiguate.
Moreover, in this case foo is not a dependent name and typename couldn't be
used.
More information about the Gcc-bugs
mailing list