[Bug libstdc++/48891] std functions conflicts with C functions when building with c++0x support (and using namespace std)
redi at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jan 7 13:20:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48891
--- Comment #9 from Jonathan Wakely <redi at gcc dot gnu.org> ---
There are various ways to hit this issue, some of which mean it can be
considered a regression, because the same code compiled with older releases
(before we added the C++11 definitions of isinf/isnan) or with -std=gnu++98
(and since the default changed to -std=gnu++14 that means code that worked with
the default options now doesn't compile).
(In reply to Marc Glisse from comment #6)
> * glibc could change the return type of isnan to bool in C++ (there would be
> a regression in that ::isnan wouldn't be constexpr and inline until g++ is
> taught the right prototype)
I think glibc should just not declare those functions in C++ (as Joseph said in
Bug 54130 comment 14 they are from Unix98 and not part of C99 anyway, because
C99 requires generic macros).
> * libstdc++ could import ::isnan in std::, assuming isnan exists. Maybe that
> requires a configure test. Maybe that test would be rather fragile (depends
> on feature macros). Maybe that's where this stops being a good idea :-(
I'm going to take this approach for now, and try to get glibc to change for the
future.
More information about the Gcc-bugs
mailing list