On Saturday, 9 September 2017 at 21:08:16 UTC, Adam D. Ruppe
wrote:
On Saturday, 9 September 2017 at 20:45:59 UTC, EntangledQuanta
wrote:
unless enum's are implicitly castable to int's
They are, unless you specify some other base type.
https://dlang.org/spec/enum.html#named_enums
See points 3 and 5 there. It will cast to the base type (int by
default), but you cannot pass the int as the enum.
which someone once told me that D didn't like implicit casts
because of issues
D has LOTS of implicit casts, including user-defined ones. Some
are restricted because of issues, but generally speaking, D is
pretty ok with them.
What's the point then of even having an enum parameter? If it
will just be cast to an int, why not use an int? People always
complain about making the compiler more complex but this makes it
more complex without actually solving any problem or doing
anything useful.
I guess those that actually write the code are the ones who get
to decide where the arbitrary line is drawn, whatever is
convenient for them. Would just be nice if they were up front
about it instead of trying to justify with logic why they chose
to prevent some things. I'd rather hear "I did it that way
because I wanted to" rather than some blather trying to use
logical reasoning.