This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 112e. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2023-12-02


1234. abstract-declarator does not permit ... after ptr-operator

Section: 9.3.2  [dcl.name]     Status: C++11     Submitter: Johannes Schaub     Date: 2011-01-18

[Voted into the WP at the March, 2011 meeting as part of paper N3262.]

The ellipsis for a parameter pack enters the normal declarator grammar as part of the declarator-id nonterminal. In contrast, however, the abstract-declarator grammar has no counterpart to declarator-id; instead, the ellipsis is one of the productions for the abstract-declarator nonterminal itself. It is thus impossible to declare a parameter pack for a pointer or reference using an abstract declarator, e.g.,

  template<typename... T> void f(T& ...t);   // t is a parameter pack
  template<typename... T> void f(T& ...);    // equivalent to void f(T&, ...)