Why doesn't to!MyEnumType(42) work
Tommi
tommitissari at hotmail.com
Mon Jul 16 14:59:16 PDT 2012
On Monday, 16 July 2012 at 20:22:12 UTC, Era Scarecrow wrote:
> MyEnumType y = cast(MyEnumType) 42; //Error: wtf is 42 anyways?
Like the previous fellow said, it's not an error.
To me that line of code says: "let's assign to MyEnumType
variable y some value that's not valid (as type MyEnumType
defines the word valid)". I think it's very useful to be able to
assign values which are unambiguously invalid, like NaN to float,
0xFF to char or some undefined value to enum. Sadly, with
integral types there's no such value that could be seen as
invalid.
And to reiterate my point:
If the call:
to!MyEnum(42)
...is supposed to be (and this I gather from the docs) under the
hood the same as:
cast(MyEnum) 42
...which works, then, logically, to!MyEnum(42) should also work.
More information about the Digitalmars-d
mailing list