Assigning to enum variables - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


Assigning to enum variables

I have recently upgraded from Builder 6 to XE2, and have been stumped by the following:

[color=Purple] enum eNumber { one, two, three };
eNumber num = one;
num |= three; // E2277[/color]

E2277 says 'Lvalue required'. Well the enum variable num is a valid Lvalue. It is OK to assign to it with a simple assigment operator, e.g: num = 2;
But one cannot use the 'combined' operators like |= or &=.
I even ticked the project option C++ Compiler --> Integer-typed enums, so that it would be treated line an int, but still got the same error.
I don't know if XE2 is fully C11 conformant, but I can't see anything in C11 that forbids using this syntax.
Any ideas much appreciated.
Sign In or Register to comment.