In §5.2[expr.post]/1 we have the definition of expression-list
expression-list:
initializer-list
Why do we need both definitions?
In §8.5[dcl.init]/1 we have:
braced-init-list:
{ initializer-list, opt }
{ }
Why do we need the optional ,
above?
Note that this snippet compiles:
struct A{
int i;
float f;
A(int i, float f) : i(i), f(f) {}
};
int main()
{
A a = { 1, 2., };
}