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

2024-12-19


1569. Deducing a function parameter pack before ellipsis

Section: 13.10.3.6  [temp.deduct.type]     Status: C++14     Submitter: Michael Wong     Date: 2012-02-06

[Moved to DR at the September, 2013 meeting.]

According to 13.10.3.6 [temp.deduct.type] paragraph 5, one of the non-deduced contexts is

A function parameter pack that does not occur at the end of the parameter-declaration-clause.

This would make the following example ill-formed:

  template <typename R, typename ...P>
  void foo(R (&)(P ..., ...)) { }

  void bar(int, ...) { }

  void zip() {
   foo(bar);
  }

It is not clear whether this is intentional; if the wording referred to parameter-declaration-list instead of parameter-declaration-clause, the example would be accepted.

Proposed resolution (June, 2013):

Change 13.10.3.6 [temp.deduct.type] paragraph 5 as follows

The non-deduced contexts are: