Considérer:
int f () {
static int i = 0;
return i++;
}
struct Test {
int a, b;
Test () : a(f()), b(f()) {}
};
Test t;
Je sais que a
est initialisé avant b
raison de l'ordre de leur déclaration dans les struct
.
Je sais aussi que les deux appels à f
en g(f(), f())
sont pas séquencés.
Je me demande donc s'il est garanti que t.a == 0
et t.b == 1
?