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

--- Comment #14 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to pj from comment #9)
> The only modification described by the paper (relevant to this case) is the
> requirement that `T_i x[] = {std::forward<T>(t)};` is well formed,

That code gives you a diagnostic, as required for a narrowing conversion. G++
chooses to give a warning for some narrowing conversions (see the manual for
details) because otherwise too much reasonable code is rejected. A warning is a
diagnostic, so this is allowed by the standard.

In SFINAE contexts narrowing conversions are always disallowed, not 
justwarnings. The variant constraints are SFINAE contexts. So narrowing
conversions are disallowed.

There is no GCC bug here. Really.

Reply via email to