Рассмотрим:
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
?