"Dave Korn" <dave.korn@artimi.com> writes:
[...]
| It looks to me like the cygwin/newlib combination is not being compliant if
| it implements isnan as a function rather than a macro. I couldn't see
| anything in the standard that says it can be a function, and every reference
| to it describes it as a macro, not a function. It may be the case that
| libstdc++ is within its rights to assume that isnan is a macro after all.
yes, isnan and friends are supposed to be macros only, not functions.
| OTOH it may be that libstdc++ was only supposed to be shadowing those ctype
| macros that are guaranteed to have underlying function implementations; I
| don't know what the shadowing is for, so I can't comment.
libstdc++ is supposed to shadow ctype macros -- and it also expect
them to have a function implementation.
-- Gaby