variadic templates: spec on pack-expansion in function call?
Milian Wolff
mail at milianw.de
Sat Jun 4 10:58:29 BST 2011
Hey all,
I'm having trouble interpreting the spec on variadic template pack expansion
inside a function call or a mem-initializer, i.e.:
http://paste.kde.org/78151/
This compiles and there are expamples similar to it on the web and inside the
spec. Yet I cannot find out how the "args..." is supposed to be parsed AST-
wise. 14.5.3/4 of the spec¹ lists contexts in which a pack-expansion can
occur:
> — In an initializer-list (8.5); the pattern is an initializer-clause.
> — In a base-specifier-list (Clause 10); the pattern is a base-specifier.
> — In a mem-initializer-list (12.6.2); the pattern is a mem-initializer.
> — In a template-argument-list (14.3); the pattern is a template-argument.
> — In a dynamic-exception-specification (15.4); the pattern is a type-id.
> — In an attribute-list (7.6.1); the pattern is an attribute.
> — In an alignment-specifier (7.6.2); the pattern is the alignment-specifier
> without the ellipsis. — In a capture-list (5.1.2); the pattern is a
> capture.
None of these apply to "args..." in my opinion. This is a quite generic
expression after all.
There is another document² linked to from the GCC 4.6 c++0x support page³ on
variadic templates. It is quite outdated as you can see yet includes the
following AST spec:
"assignment-expression ...opt"
This could be used for "args..." afair. But why is there nothing related in
the last spec? Can someone shed some light on it?
¹: http://www.open-std.org/jtc1/sc22/wg21/prot/14882fdis/n3291.pdf
somewhat outdated, but the FDIS spec is no different in that regard
²: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf
³: http://gcc.gnu.org/gcc-4.6/cxx0x_status.html
Thanks, bye
--
Milian Wolff
mail at milianw.de
http://milianw.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kdevelop/attachments/20110604/8c883906/attachment.sig>
More information about the KDevelop
mailing list