https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102898
Bug ID: 102898 Summary: declaration of 'using Foo = enum class Foo' changes meaning of 'Foo' Product: gcc Version: 11.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: roehling at debian dot org Target Milestone: --- The following C++ code fails to compile: enum class Foo { foo }; class Bar { using Foo = Foo; }; The generated error is <source>:5:11: error: declaration of 'using Foo = enum class Foo' changes meaning of 'Foo' [-fpermissive] 5 | using Foo = Foo; | ^~~ <source>:1:12: note: 'Foo' declared here as 'enum class Foo' 1 | enum class Foo { foo }; | ^~~ The code does compile with using Baz = Foo; or using Foo = enum Foo;