https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79433
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2017-02-09
Summary|__has_include does not |__has_include(<new header>)
|conform to SD-6 |is true but #include <new
| |header> gives #error when
| |-std=old
Ever confirmed|0 |1
--- Comment #13 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Even SD-6 has a similar specification:
The has-include-expression is replaced by the pp-number 1 if the search for the
source file succeeds, and by the pp-number 0 if the search fails.
It says nothing about whether inclusion would succeed, only whether the search
for the file succeeds. It's implementation-defined how the search for source
files is done.
I'll confirm this as an enhancement for libstdc++, but insisting it's not
conforming is simply wrong.