https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96645
Eyal Rozenberg changed:
What|Removed |Added
CC||eyalroz1 at gmx dot com
--- Comment #12 from Eyal Rozenberg ---
(In reply to Jason Merrill from comment #8)
> We cannot correctly resolve is_nothrow_constructible until we've parsed
> the DMI. Given that, we have three options:
>
> 1) Conservatively say no.
> 2) Optimistically guess yes.
> 3) Non-SFINAE error.
>
> ("We" in this sentence is the C++ standard.)
But in this page, "we" is the compiler. IIUC, the standard does not allow for
determing is_nothrow_constructible. Am I correct? If that really is the
case, shouldn't the compiler emit an error saying that?
Alternatively, when not following the standard strictly, why should it not be
option (4.): Ignore the official restriction on determining (nothrow)
constructibility, make a best-effort attempt to determine it anyway ( which in
this example should succeed), and report failure otherwise.
?
> PR81359 changed our behavior from 3 to 1.
I searched that bug page for the rationale, and couldn't quite get it.