https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102165

            Bug ID: 102165
           Summary: poor error message for enum class scope and taking the
                    address
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: enhancement
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pinskia at gcc dot gnu.org
  Target Milestone: ---

Take:
enum class enu  {a}; 
int t{&enu::a};
----- CUT ----
Currently we get:
<source>:3:13: error: 'enu' is not a class type
    3 | int t{&enu::a};
      |             ^

Which is right but wrong at the same time.

This is what clang produces:
<source>:3:7: error: cannot take the address of an rvalue of type 'enu'
int t{&enu::a};
      ^~~~~~~

Reply via email to