https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61382
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Thibaut LUTZ from comment #2) > @Jonathan: you might be referring to 56774. 59716 was a similar issue. They don't look related. I meant PR 51253 > However I think this case is definitely NOT a bug. Here is why: > > - let's decompose the line: > std::tuple<ARGS...> r { get_single<ARGS>(posfoo++)... }; > > * std::tuple<ARGS...> r{ ... }: this is a constructor call: > std::tuple(args...) No, this is not a valid transformation, the semantics of T r{args...} are not the same as T r(args...), see [dcl.init.list] p4.