On Sunday, 15 May 2016 at 22:49:27 UTC, Walter Bright wrote:
On 5/15/2016 2:06 PM, Ola Fosheim Grøstad wrote:
The net result is that adding const/immutable to a type can change the semantics of the program entirely at the whim of the compiler implementor.

C++ Standard allows the same increased precision, at the whim of the compiler implementor, as quoted to you earlier.

What your particular C++ compiler does is not relevant, as its behavior is not required by the Standard.

This is a crazy attitude to take. C++ provides means to detect that IEEE floats are being used in the standard library. C/C++ supports non-standard floating point because some platforms only provide non-standard floating point. They don't do it because it is _desirable_ in general.

You might as well say that you are not required to drive on the right side on the road, because you occasionally have to drive on the left. So therefore it is ok to always drive on left.

My proposal removes the "whim" by requiring 128 bit precision for CTFE.

No, D's take on floating point is FUBAR.

const float value = 1.30;
float  copy = value;
assert(value*0.5 ==  copy*0.5); // FAILS! => shutdown






Reply via email to