
-----Original Message----- Robert Ramey wrote:
Peter Dimov wrote:
It depends. Where do you draw the line? Is inf a number? Is -0.0 a number? You have to have NaN if you want to be able to represent x/y as a float.
That's the problem. x/y is not a valid operation if y is equal to 0. So it can't be represented as a number.
The fact that C++ permits such an operation makes C++ different than arithmetic. "different than SOME arithmetics". The arithmentic C++ (well, actually IEEE) defines is a perfectly sensible arithmetic.
The fact that C++ uses operators like "/" and defines them similar to - but not identical to - the way they are defined by standard arithmetic
Granted. It isn't the standard arithmetic.
is the source of all these problems. What problems? (Apart from the extra work involved for authors of libraries like serialization I mean!)
I say that C++ should be changed to so that the floats and operators which apply to them should implement what people expect from arithmetic operators.
Yes, but realistically that is never going to happen. Wouldn't it be better to support the use-cases that people have in real code? -- Martin Bonner Pi Technology, Milton Hall, Ely Road, Milton, Cambridge, CB4 6WZ +44 1223 203894