std.conv: conversion from ulong to enum

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Thu Aug 22 17:00:38 PDT 2013


On 8/22/13 5:00 PM, Andrei Alexandrescu wrote:
> 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

Never mind, I see we track it already.

Andrei


More information about the Digitalmars-d mailing list