final switch and straight integers
Dominikus Dittes Scherkl via Digitalmars-d
digitalmars-d at puremagic.com
Thu Apr 21 02:10:16 PDT 2016
On Wednesday, 20 April 2016 at 17:42:03 UTC, Basile Burg wrote:
> On Wednesday, 20 April 2016 at 10:19:17 UTC, Dominikus Dittes
> Scherkl wrote:
>>
>> Anyway, something need to be changed.
>> a) allow Range Cases (nice for ints but bad idea for enums)
>> b) require also non-enum types to explicitly state all cases
>> (bad idea for any multi-byte type, even near useless for
>> single bytes)
>> c) forbid other types than enum in final switch
>>
>> I strongly vote for (c).
>
> A good `int` value for a variable `int x` can be enforced
> (min(), max(), clamping, warping, etc) **before** a final
> switch(x).
No, because final switch requires you to enumerate all possible
cases.
> If c) is done then the compiler in this cas would disallow
> something that's completly safe (generally speaking I mean,
> here safe == no SwitchException possible).
Why would you ever want to use final switch on int? Why not
simply use the normal switch? Especially if you enforced a useful
range with min(), max(), etc. would it not be better to do the
remaining cases manually? (or even do the range check in the
default case?)
More information about the Digitalmars-d
mailing list