order-of-evaluation

Order of execution in constructor initialization list

Is order of execution in constructor initialization list determinable? I know that members order in a class is the order in which those members will be initialized but if I have scenario like this: class X() { X_Implementation* impl_; }; and then providing that allocator is available: X::X():impl_(Allocate(sizeof(X_Implementation)))...

Is "int i = x++, j = x++;" legal?

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, ...