次の間接再帰の結果は標準で定義されていますか、それとも未定義の動作ですか?
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ですが、それが標準で保証されているかどうかはわかりません。