Is the result of the following indirect recursion defined by the standard or is it undefined behavior?
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();
}
In VS2012 tmp is 5 but I'm not sure if that's guaranteed by the standard.