--- Comment #4 from Daniel Kozak <kozz...@gmail.com> 2012-08-15 07:29:25 PDT ---
(In reply to comment #3)
> (In reply to comment #2)
> > (In reply to comment #1)
> > > If you want to check for NaN, then use std.math.isNaN. As I understand it,
> > > there is no guarantee that two NaN values have the same bit pattern (at
> > > minimum, you have signed and unsigned NaN, and there may be more
> > > variations - I
> > > don't remember). isNaN returns true in both cases. So, I don't believe
> > > that
> > > this is a bug.
> > Thanks for your reply. However I still think it is a bug, because when I
> > assign
> > TYPE.init to variable VAR of type TYPE, and then I compare VAR is
> > TYPE.init, I
> > assumed it returns true;
> Your assumption is not correct. If type.init is a signalling NaN, the bit
> pattern changes when you access it. It has nothing to do with classes.
> More generally,
> x = y;
> assert (x is y);
> Fails if x is floating point and y is a signalling NaN.
> When reading from x, the 'quiet' bit of will be set, so that it reads a quiet
> NaN, not a signalling one.
> That's the way the hardware works, the same behaviour applies in any language
> that uses the hardware.
OK, but still I dont understand why others compilers(LDC,GDC) works as I expect
and why real type in DMD behave different.
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------