Hex floats

Don Clugston dac at nospam.com
Thu Feb 16 08:06:16 PST 2012


On 16/02/12 13:28, Stewart Gordon wrote:
> On 16/02/2012 12:04, Don Clugston wrote:
>> On 15/02/12 22:24, H. S. Teoh wrote:
>>> What's the original rationale for requiring that hex float literals must
>>> always have an exponent? For example, 0xFFi obviously must be float, not
>>> integer, so why does the compiler (and the spec) require an exponent?
>>
>> The syntax comes from C99.
>
> Do you mean the syntax has just been copied straight from C99 without
> any thought about making it more lenient?
>
> Stewart.

Yes. There would need to be a good reason to do so.

For the case in question, note that mathematically, imaginary integers 
are perfectly valid. Would an imaginary integer literal be an idouble, a 
ifloat, or an ireal? I don't think it could be any:

foor(float x)
foor(double x)
fooi(ifloat x)
fooi(idouble x)

foor(7); //ambiguous, doesn't compile
fooi(7i); // by symmetry, this shouldn't compile either


More information about the Digitalmars-d-learn mailing list