Why C++20 doesn’t support out-of-order designated initializer?
Yes, the rationale is covered in Annex C (informative) Compatibility specifically [diff.dcl]p10 (emphasis mine): Affected subclause: [dcl.init.aggr] Change: In C++, designated initialization support is restricted compared to the corresponding functionality in C. In C++, designators for non-static data members must be specified in declaration order, designators for array elements and nested designators are not supported, … Read more