JTC1/SC22/WG14
N648
Document number: WG14 N648 (X3J11 97-011)
Title: logb() in C9X
Author: Zhishun Alex Liu, Douglas Walls,
Date: January 12, 1997
Defining ilogb() as:
int ilogb(long double);
is in direct conflict with The Open Group, X/Open, standard specification,
XPG4.2/XSH4.2, which is:
int ilogb(double);
Supporting conflicting prototypes bearing the exact same name is just
causing no end of headaches. Particularly, when the two specifications
are from widely accepted standards. In other portions of C9X, in
particular Keld Simonsen's papers, WG14 is attempting to incorporate
some of the XPG/Posix extensions to C89 into C9X.
The X/Open specification is a widely accepted standard. XPG4.2 is
built on top of C89, specifying functions which are not a part of C89.
We do not understand how we can rationalize not following the prior art
established by the XPG specification. Not doing so will invalidate
code which compiles with the XPG specification.
We would strongly urge WG14 to change the names of *all* function
prototypes in direct conflict with e.g. XPG4.2/XSH4.2 to something else
to help vendors who already adopted XPG4.2/XSH4.2 at this point.