Pretty clear in the title, I think. I'm not entirely sure on this, and I can't find a good answer via the Googles (alas, I haven't committed to the fine art of standards-fu), so I ask:
int i = x++, j = x++;
Is this defined? I am quite sure that i = x++, j = x++;
as a normal statement would be undefined behavior is the comma operator, which is a sequence point and would be legal, but no source is quite clear on whether an initializer ends at the semicolon or once the next variable starts being declared, and since that's not the comma operator in use I can't find a clear answer. So either a) the comma ends the initializer, is a sequence point, and that works, or b) it doesn't. Which is it?
And to preclude, I know I should simplify the headache and just write it as:
int i = x++;
int j = x++;
And guarantee that it's defined. I'm asking more out of curiosity.