typeid(double) does not respect NaNs

deadalnix deadalnix at gmail.com
Tue Jul 9 19:37:57 PDT 2013


On Tuesday, 9 July 2013 at 17:04:47 UTC, Jonathan M Davis wrote:
> On Tuesday, July 09, 2013 18:04:29 Maxim Fomin wrote:
>> On Tuesday, 9 July 2013 at 13:46:48 UTC, H. S. Teoh wrote:
>> > On Tue, Jul 09, 2013 at 08:05:35AM +0200, deadalnix wrote:
>> >> On Tuesday, 9 July 2013 at 03:03:34 UTC, H. S. Teoh wrote:
>> >> >More to the point, *if* typeinfo isn't meant to match == 
>> >> >for
>> >> >whatever
>> >> >reason, then why is it being used as the standard of
>> >> >comparison for
>> >> >AA keys?
>> >> 
>> >> I guess we need NaN == NaN to be true for AA keys, no ?
>> > 
>> > Not according to:
>> > http://d.puremagic.com/issues/show_bug.cgi?id=7836
>> > 
>> > So, should NaN == NaN for AA keys, or not?
>> > 
>> > 
>> > T
>> 
>> I think it was not decided yet. From language coherency point 
>> of
>> view NaN != NaN like in general case, from usefulness 
>> perspective
>> you don't need several nans in AA array.
>
> I'd think that having NaN != NaN would cause serious problems 
> with retrieving
> any elements inserted with NaN as a key, but given how floating 
> point values
> work, using them as the key for an AA is arguably completely 
> broken to begin
> with as comparing floating point values for equality is 
> generally just plain
> wrong. That being the case, I'd argue in favor of language 
> consistency and
> just point out to anyone that runs into problems that using a 
> floating point
> type as the key type of an AA is a stupid thing to do to begin 
> with.
>
> - Jonathan M Davis

That what I meant, and you explained it much better.


More information about the Digitalmars-d mailing list