以下间接递归的结果是标准定义的还是未定义的行为?
auto abc() -> int ;
auto xyz() -> int {
static int instance = 3 + abc();
return instance;
}
auto abc() -> int {
static int instance = 2 + xyz();
return instance;
}
int main() {
int tmp = xyz();//or abc();
}
在 VS2012 中,tmp 为 5,但我不确定标准是否保证了这一点。