std.conv: conversion from ulong to enum
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Thu Aug 22 17:00:10 PDT 2013
On 8/22/13 3:48 PM, Matej Nanut wrote:
> Hi everyone,
>
> I hope I'm not misunderstanding the spec when this won't compile:
>
> ---
> import std.conv;
> enum Test { a = 0 }
> void main() {
> ulong l = 0;
> auto t = l.to!Test;
> }
> ---
>
> It doesn't compile due to the template not instantiating.
>
> If l is an int, uint or byte, it compiles fine. I'm assuming the fault
> lies in the ‘is(S : OriginalType!T)’ constraint.
>
> So, um, is this intended behaviour? And why are string enums not
> supported? Wouldn't the ‘==’ operator work just fine on them too (so the
> function body would stay the same)?
>
> Thanks,
> Matej
Hrm, that's a bug. Could you please submit to d.puremagic.com/issues?
Thanks,
Andrei
More information about the Digitalmars-d
mailing list