Submitter: Clive Feather (UK)
Submission Date: 1999-09-13
Source:
Reference Document: ISO/IEC
WG14 N892
Version: 1.4
Date: 2001-09-18 14:47:00
Subject: Default argument conversion of float
_Complex
Summary
For consistency with real floating types, the type
float _Complex should be promoted by the
default argument promotions to double
_Complex.
Suggested Technical Corrigendum
Change 6.5.2.2p6 in part, from:
and arguments that have type float are promoted to double.
to:
and arguments that have a corresponding real type of float are promoted, without change of type domain, to a type whose corresponding real type is double.
Committee Response
This was intentional because real float promotion to double is
in Standard C purely for compatibility with K&R. Since
complex is new, that compatibility is not an issue, and having
it behave like real float would introduce undesired overhead
(and be less like Fortran).
The following words were added the Rationale.
float _Complex is a new type with C99. It has no need to preserve promotions needed by pre-ANSI-C. It does not break existing code.