[Bug c++/44611] Including <math.h> and <cmath> hides ::signbit function
gnu at bluedreamer dot com
gcc-bugzilla@gcc.gnu.org
Mon Jun 21 16:08:00 GMT 2010
------- 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
More information about the Gcc-bugs
mailing list