Bug 3999 [Was: Re: Implicit enum conversions are a stupid PITA]

Lars T. Kyllingstad public at kyllingen.NOSPAMnet
Thu Mar 25 10:27:18 PDT 2010


Andrei Alexandrescu wrote:
> On 03/25/2010 11:57 AM, Lars T. Kyllingstad wrote:
>> Andrei Alexandrescu wrote:
>>> On 03/25/2010 11:17 AM, bearophile wrote:
>>>> Andrei Alexandrescu:
>>>>> The problem is it asks you to insert casts all too often. I think the
>>>>> value range propagation is a principled and correct solution to that
>>>>> problem.
>>>>
>>>> In bugzilla I have asked to disable the implicit conversion enum =>
>>>> base type in an equality test, see:
>>>> http://d.puremagic.com/issues/show_bug.cgi?id=3999
>>>>
>>>> In bugzilla I have never asked to disable implicit signed => unsigned
>>>> casts, I am able to see they are two quite different situations.
>>>>
>>>> I think the implicit conversions from enum => base types are uncommon
>>>> enough, so they can't introduce too many casts.
>>>>
>>>> If Walter doesn't agree with me (and few other people here) then
>>>> there's no point in keeping bug 3999 open, it can be closed. Because
>>>> it's better to fix/change similar things now, when the D2 language is
>>>> not diffused yet. Later such changes are harder to do.
>>>>
>>>> In bugzilla there are few other things that deserve a similar look.
>>>> Those changes can't be done all at the same time, but the decision
>>>> can be taken in a short enough time, and it's better to think about
>>>> them now.
>>>>
>>>> Bye and thank you for your attention,
>>>> bearophile
>>>
>>> I think defining a integral() function that gives the value of the
>>> enum as an appropriately-typed integral number wouldn't harm.
>>>
>>> Andrei
>>
>> Why not let to!int() do this?
>>
>> -Lars
> 
> Because an enum that uses long as a base will not be converted. 
> integral() would automatically deduce and return the appropriate base type.

Ah, now I understand.  I thought you meant a function to convert an enum 
to a user-specified type, i.e. integral!T(myEnum).

-Lars



More information about the Digitalmars-d mailing list