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