https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70528

--- Comment #10 from Ville Voutilainen <ville.voutilainen at gmail dot com> ---
(In reply to Jonathan Wakely from comment #8)
> I don't know how to implement is_default_constructible without using that
> decltype, or something similar that will cause the same problem.
> 
> If we had a __is_constructible(_Tp, _Args...) builtin we could use that (for
> is_constructible, and then define is_default_constructible in terms of that).

It would be possible to push the use of the decltype into a separate trait,
which sorta-kinda papers over the problem, but then we have an
is_default_constructible that gives different results depending on where you
use it for such a nested type (before or after it's been parsed completely),
which is surely ill-formed NDR, and possibly an ODR violation as well. I can't
fathom how a builtin would change that problem.

Reply via email to