There's a clause I was never sure I understood the point of but I think it exists to forbid the following initialization:
int main(void) {
int x = ( (x = 1), 2);
}
There's a clause I was never sure I understood the point of but I think it exists to forbid the following initialization:
int main(void) {
int x = ( (x = 1), 2);
}
In fact the clause is as follows:
No initializer shall attempt to provide a value for an object not contained within the entity being
initialized.
And it's not even clear it forbids int x = ( (x = 1), 2);. It may be only about forbidding int t[2] = { ( (t[1] = 1), 2), 3 };, or something else, who knows?