On Fri, Aug 16, 2019 at 10:19 AM Ville Voutilainen via Std-Discussion <std-discussion@lists.isocpp.org> wrote:
On Fri, 16 Aug 2019 at 17:52, Brian Bi via Std-Discussion
<std-discussion@lists.isocpp.org> wrote:
> Which pack expansion in this example does not use an ellipsis?
> There are two pack expansions here: `...xs=args` where the pattern is `xs=args`,

That's not a pack expansion. It's a declaration of a captured pack,
initialized from another pack. It does not
and should not use a trailing ellipsis.

> and also in `bar(xs...)`, `xs...` is a pack expansion. Both use an ellipsis.

That one is fine, yes.

> The `sizeof...` operator also contains an ellipsis. It just happens that the ellipsis is not adjacent to the pack.

It contains an ellipsis but it's not a pack expansion.
--
Std-Discussion mailing list
Std-Discussion@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/std-discussion

That's not what the plain text of the standard says (C++17 [temp.variadic]/4):

Pack expansions can occur in the following contexts: ... In a capture-list (8.1.5); the pattern is a capture. In a sizeof... expression (8.3.3); the pattern is an identifier.

--
Brian Bi