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.