Geoff Keating <[EMAIL PROTECTED]> writes:

| On 19/06/2005, at 3:45 PM, Gabriel Dos Reis wrote:
| 
| > Geoffrey Keating <[EMAIL PROTECTED]> writes:
| >
| > | libstdc++-v3/testsuite/26_numerics/cmath/
| > c99_classification_macros_c.cc
| > |
| > | appears to fail, with lots of complaints like
| > |
| > | c99_classification_macros_c.cc:49:21: error: macro
| > "isgreaterequal" requires 2 arguments, but only 1 given
| > |
| > | but the actual file did this with previous versions too, I think
| > | something changed in the test harness.  As far as I can tell, this
| > | testcase is in fact invalid and should produce exactly this error
| > | message.
| >
| > Why?
| >
| > (I only thing I see wrong, right now is that the function definitions
| > should be part of a class, instead of being at the global scope).
| 
| The testcase includes math.h, which we've said should supply the C99

<math.h> is also mandated by C++.  Clearly, this is a tricky area and
I do not believe the testcase is invalid (except as I noted earlier).

| functions (or, in this case, macros) even in C++ mode.  C99 says that
| 'isgreaterequal' is a macro which takes 2 arguments.

C++ says that no functional macros (except assert) shall be active.
Which leads to interesting games we're playing in the V3 headers to
make sure those are not active.  The C++ TR1 which include proposals
to extend <math.h> to C99 features also mandate non-functional macros.
See what we do with <cmath>.

-- Gaby

Reply via email to