R
Richard Heathfield
Harald van D?k said:
I think you're confusing the physical implementation of the header (as
some kind of file) with the concept of "standard header", the
implementation of which is neither here nor there, as the Standard
makes very clear. A standard header *MUST NOT* contain a definition of
QFLT_EPSILON. How the implementation deals with this is up to it.
I presume (not having any way to check it right now) that Mr Navia's
claim (that setting a switch in his compiler renders <float.h> a
standard header) is a correct claim. If so, presumably it does so by
removing the definition of QFLT_EPSILON from <float.h>, possibly by
some kind of #ifdef construct. Were he not to do this, <float.h> would
not be a standard header. Therefore, his implementation agrees with me
and with the Standard that QFLT_EPSILON must not be defined in a
standard header. So he is arguing against his own implementation.
The C99 rationale section 7.1.2 gives an example of how it can, and
there is nothing whatsoever in the standard that contradicts it.
I think you're confusing the physical implementation of the header (as
some kind of file) with the concept of "standard header", the
implementation of which is neither here nor there, as the Standard
makes very clear. A standard header *MUST NOT* contain a definition of
QFLT_EPSILON. How the implementation deals with this is up to it.
I presume (not having any way to check it right now) that Mr Navia's
claim (that setting a switch in his compiler renders <float.h> a
standard header) is a correct claim. If so, presumably it does so by
removing the definition of QFLT_EPSILON from <float.h>, possibly by
some kind of #ifdef construct. Were he not to do this, <float.h> would
not be a standard header. Therefore, his implementation agrees with me
and with the Standard that QFLT_EPSILON must not be defined in a
standard header. So he is arguing against his own implementation.