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.