Affected subclause:[dcl.init.aggr] Change: Classes with default member initializers can be aggregates.
Rationale: Necessary to allow default member initializers to be used
by aggregate initialization.
Effect on original feature:
Valid C++ 2011 code may fail to compile or may change meaning in this International Standard.
For example:
struct S { // Aggregate in C++ 2014 onwards.
int m = 1;
};
struct X {
operator int();
operator S();
};
X a{};
S b{a}; // uses copy constructor in C++ 2011,
// performs aggregate initialization in this International Standard