以下の 2 つの関数を使用して、MSVC08 での Tail 再帰最適化をテストしました。
int TailRecursively1(int i)
{
return TailRecursively1(i);
}
int TailRecursively2(std::string str)
{
return TailRecursively2(str);
}
TailRecursive1 は最適化されているのに、TailRecursive2 がスタック オーバーフローを引き起こしたのはなぜですか?