This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 118e. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2025-11-05
[Moved to DR at the November, 2014 meeting.]
According to bullet 1 of 12.2.4.2.6 [over.ics.list] paragraph 6,
Otherwise, if the parameter type is not a class:
if the initializer list has one element, the implicit conversion sequence is the one required to convert the element to the parameter type;
...
This wording ignores the possibility that the element might be an initializer list (as opposed to an expression with a type, as illustrated in the example). This oversight affects an example like:
struct A { int a[1]; };
struct B { B(int); };
void f(B, int);
void f(int, A);
int main() {
f({0}, {{1}});
}
Proposed resolution (June, 2014):
This issue is resolved by the resolution of issue 1467.