What does line 4 expand to? Especially, what's the order in which the ellipsis expands its' left-hand side? In what conditions is that behavior guaranteed?
Note: the list-initialization hack is there to guarantee the order in which its' contents are evaluated. Without it the elements of the tuple will be printed in an unsequenced order, until C++17, IIRC.
The parameter pack expands the arguments in the order that they appear. That's always the case.
If a parameter pack appears outside a subexpression which contains a parameter pack, the entire subexpression is repeated with each occurrence of the name of the parameter pack replaced by each index, separated by a commas.
In other words, in the program I just posted, line 4 will expand to something equivalent to