Why doesn't to!MyEnumType(42) work
cal
callumenator at gmail.com
Mon Jul 16 13:59:59 PDT 2012
On Monday, 16 July 2012 at 20:22:12 UTC, Era Scarecrow wrote:
> You can convert a enum to an int, but not the other way around.
[...]
> MyEnumType z = cast(MyEnumType) 100; //Error: an int is not an
> enum! (Even if it's a valid match)
I do this all the time....
enum E
{
A = 100,
B = 200
}
E e = cast(E) 100 ; // works fine...
Maybe I misunderstood?
The problem is that here int is not _implicitly_ convertible to
the enum. For example, if you write your own template without any
constraints:
T to(T, S)(S i)
{
return cast(T)i;
}
then:
E e = to!E(100); // works, but is not safe
More information about the Digitalmars-d
mailing list