On 7/3/2014 3:49 AM, Jonathan M Davis via Digitalmars-d wrote:
I don't think that there's anything unclear about that. The problem is that if
real is supposed to be the largest hardware supported floating point type,
then that doesn't necessarily match long double. It happens to on x86 and
x86_64, but it doesn't on other architectures.

As it turns out, C compilers tend to use long double for that. So there's no issue. In any case, it's up to the person porting the D compiler to that platform to make these decisions.

For another case, D for Win64 maps real to 80 bits, despite VC++ mapping long double to 64 bits. This is compatible with the D spec, because you are still able to call C functions typed as "int foo(long double r)" because D's double works for that.

I think that some common sense on a case by case basis for each platform should work fine.

Reply via email to