This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 115d. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2024-10-26
[Voted into the WP at the February, 2012 meeting; moved to DR at the October, 2012 meeting.]
One would expect that an example like
struct B { B(const B&) = default; }; B b{};
would invoke value-initialization, but (because it does not have a default constructor), the logic ladder of 9.4.5 [dcl.init.list] paragraph 3 makes it aggregate initialization instead:
If the initializer list has no elements and T is a class type with a default constructor, the object is value-initialized.
Otherwise, if T is an aggregate, aggregate initialization is performed (9.4.2 [dcl.init.aggr]).
Proposed resolution (August, 2011):
This issue is resolved by the resolution of issue 1301.