Рассмотрим:
int f () {
static int i = 0;
return i++;
}
struct Test {
int a, b;
Test () : a(f()), b(f()) {}
};
Test t;
Я знаю, что a инициализируется до b из-за порядка их объявления в struct.
Я также знаю, что два вызова f в g(f(), f()) не подвержены последовательности.
Так что мне интересно, гарантировано ли, что t.a == 0 и t.b == 1?