https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87676
--- Comment #6 from Harald van Dijk ---
(In reply to Jonathan Wakely from comment #4)
> Before the conversion sequence that binds a reference you need to initialize
> the underlying temporary, which is a list-initialization sequence. You have
> l
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87676
--- Comment #5 from Jonathan Wakely ---
That's how I interpret it anyway, but I could be convinced otherwise. And maybe
the standard isn't clear enough here.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87676
--- Comment #4 from Jonathan Wakely ---
Before the conversion sequence that binds a reference you need to initialize
the underlying temporary, which is a list-initialization sequence. You have
list-initialization sequence L1 from {1,2,3} to S1 an
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87676
--- Comment #3 from Harald van Dijk ---
(In reply to Jonathan Wakely from comment #1)
> The template constructor allows s({1, 2, 3}) to mean s(S2{1,2,3}) which
> tries to use the deleted copy constructor.
Thanks, I think you're right about that.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87676
--- Comment #2 from Jonathan Wakely ---
(In reply to Jonathan Wakely from comment #1)
> The template constructor allows s({1, 2, 3}) to mean s(S2{1,2,3}) which
> tries to use the deleted copy constructor.
Or more precisely, overload resolution m
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87676
--- Comment #1 from Jonathan Wakely ---
The template constructor allows s({1, 2, 3}) to mean s(S2{1,2,3}) which tries
to use the deleted copy constructor.
Without the template constructor it can only mean s(S1{1,2,3}) which uses the
move constru