Re: Machine epsilon: conclusion



Richard Heathfield wrote:
Harald van D?k said:

Richard Heathfield wrote:
Richard Tobin said:

In article <ltSdnT3DNLGY9xvbnZ2dnUVZ8tHinZ2d@xxxxxx>,
Richard Heathfield <rjh@xxxxxxxxxxxxxxx> wrote:

#define QFLT_EPSILON 1.09003771904865842969737513593110651 ...
#E-106

You have the same bug as last time. No standard-conforming
implementation may define QFLT_EPSILON in the standard header
<float.h>, as I pointed out to you earlier this week.

Jacon already described how to suppress this definition if required.

Either it's a standard header (as he claims), or it isn't. If it's a
standard header, it cannot contain QFLT_EPSILON. If it contains
QFLT_EPSILON, it can't be a standard header.

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'll admit this can be interpreted differently, but I believe <float.h> is a
standard header (using the standard's definition), regardless of whether
the compiler is invoked in a conforming mode. The effect of a standard
header on a nonstandard implementation is outside of the scope of the
standard, but that doesn't make the header nonstandard.
.



Relevant Pages

  • Re: Machine epsilon: conclusion
    ... Richard Heathfield wrote: ... implementation may define QFLT_EPSILON in the standard header ... Jacon already described how to suppress this definition if required. ... in some alphabets" - X3.4, ...
    (comp.lang.c)
  • Re: Machine epsilon: conclusion
    ... Richard Tobin said: ... Jacon already described how to suppress this definition if required. ... Either it's a standard header, ... Richard Heathfield ...
    (comp.lang.c)
  • Re: Machine epsilon: conclusion
    ... Richard Heathfield wrote: ... Jacon already described how to suppress this definition if required. ... Either it's a standard header, ... In any events your argument is specious: Pretty much every compiler ...
    (comp.lang.c)
  • Re: Machine epsilon: conclusion
    ... Richard Tobin said: ... It's a standard header when -ansic is specified, and a non-standard ... Richard Heathfield ...
    (comp.lang.c)
  • Re: Machine epsilon: conclusion
    ... Richard Heathfield wrote: ... implementation may define QFLT_EPSILON in the standard header ... Jacon already described how to suppress this definition if required. ... forbid implementation-defined types. ...
    (comp.lang.c)