On 4/9/14, 5:18 AM, w0rp wrote:
On Wednesday, 9 April 2014 at 11:39:37 UTC, Jonathan M Davis wrote:
On Tuesday, April 08, 2014 12:08:46 Andrei Alexandrescu wrote:
1. Is the current design damaging enough (= allows enough wrong/buggy
code to pass through) to warrant a breaking tightening?

What I would very much like to see happen is that any time that any
operation
is done on a variable of an enum type and that operation is not
_guaranteed_
to result in a valid enum value, the result should be the enum's base
type and
and not the enum type - e.g. or-ing enum flags together isn't going to
result
in a valid enum and shouldn't be typed as such, but unfortunately, it
currently _is_ typed as such.

And I expect that the vast majority of cases where such a change would
break
code would catch bugs.

- Jonathan M Davis

I think this is a good idea. That way I think you'd only be able to get
undefined enum values by casting.

Too restrictive. What is a valid enum value? Would an enum flags need to ascribe a name to every possible combination?

One possibility would be to guarantee all operations are between TheEnum.min and TheEnum.max. Users who need operations would need to define those limits.


Andrei

Reply via email to