Is this behavior well-defined?
class Foo { int A, B; public: Foo(int Bar): B(Bar), A(B + 123) { } }; int main() { Foo MyFoo(0); re
Initialization is done in the order of appearance in the declaration, not the order you write it in the constructor.
Look at this question, it's somewhat similar: Initializer list *argument* evaluation order