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

            Bug ID: 102653
           Summary: operator* doesn't work for enum classes
           Product: gcc
           Version: 8.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: woweric at live dot com
  Target Milestone: ---

enum class TextWrap {NONE = 0, DOWN = 1, UP = -1};

int main()
{
    TextWrap wrap = TextWrap::NONE;
    int num = 20 * wrap;
}

gives the error:
test.cpp:6:18: error: no match for 'operator*' (operand types are 'int' and
'TextWrap')

but the following code compiles fine:

enum TextWrap {NONE = 0, DOWN = 1, UP = -1};

int main()
{
    TextWrap wrap = NONE;
    int num = 20 * wrap;
}

Reply via email to