Can someone explain this?
MoonlightSentinel
moonlightsentinel at disroot.org
Sat Feb 6 14:57:57 UTC 2021
On Saturday, 6 February 2021 at 14:39:38 UTC, Jeff wrote:
> So, I'm guessing there's something going on under-the-hood
> using the ~ operator with the enum and I'd like to understand
> what it is.
Enum to string conversion is usually implemented using the name
of the enum member, regardless of it's value (which might be any
type).
String concatenation is not defined for A, so the enum member is
implicitly converted to it's base type (see [1], paragraph 5).
> Likewise, if there's an easier method of getting the "value of
> enum" I haven't discovered yet, that'd be just as nice to know.
> ;)
>
You can use an is expression to determine the base type...
```
is(A BaseType == enum)
```
...and use `cast(BaseType) A.foo`
[1] https://dlang.org/spec/enum.html#named_enums
More information about the Digitalmars-d-learn
mailing list