Created on 2015-06-22.00:00:00 last changed 106 months ago
Proposed resolution (September, 2015):
Change 13.10.3.2 [temp.deduct.call] paragraph 1 as follows:
...For a function parameter pack that occurs at the end of the parameter-declaration-list,the type A ofdeduction is performed for each remaining argument of the call,is compared withtaking the type P of the declarator-id of the function parameter pack as the corresponding function template parameter type. Eachcomparisondeduction deduces template arguments for subsequent positions in the template parameter packs expanded by the function parameter pack. When a function parameter pack appears in a non-deduced context (13.10.3.6 [temp.deduct.type]), the type of that parameter pack is never deduced. [Example:...
[Adopted at the February, 2016 meeting.]
The current wording of 13.10.3.2 [temp.deduct.call] paragraph 1 dealing with deduction for a trailing parameter pack refers to “the type” of the argument, which does not apply to an initializer list. There is implementation divergence in the handling of an example like
#include <initializer_list>
template <typename... T>
void q(std::initializer_list<std::initializer_list<T>>... tt);
void bar() { q({{0}}, {{'\0'}}); }
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2017-02-06 00:00:00 | admin | set | status: tentatively ready -> cd4 |
| 2015-11-10 00:00:00 | admin | set | messages: + msg5615 |
| 2015-06-22 00:00:00 | admin | create | |