------- Comment #9 from gnu at bluedreamer dot com 2010-06-21 16:07 ------- > I agree the macro and template can't co-exist, but the template could be > available as both std::signbit and ::signbit, and I think that's required by > appendix D. Are these still relevant for c++0x? More so section 5 which says if they are macros in C they must be macros in C++ 17.4.1.2 Headers 4. Except as noted in clauses 18 through 27, the contents of each header cname shall be the same as that of the corresponding header name.h, as specified in ISO/IEC 9899:1990 Programming Languages C (Clause 7), or ISO/IEC:1990 Programming Languages—C AMENDMENT 1: C Integrity, (Clause 7), as appropriate, as if by inclusion. In the C++ Standard Library, however, the declarations and definitions (except for names which are defined as macros in C) are within namespace scope (3.3.5) of the namespace std. 5. Names which are defined as macros in C shall be defined as macros in the C++ Standard Library, even if C grants license for implementation as functions. [Note: the names defined as macros in C include the following: assert, errno, offsetof, setjmp, va_arg, va_end, and va_start. —end note] -- gnu at bluedreamer dot com changed: What |Removed |Added ---------------------------------------------------------------------------- Component|libstdc++ |c++ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44611