次の関数が与えられた場合、各ローカル変数はスタック上で宣言されますか?
std::string reallyCoolFunction(unsigned int a)
{
if( a < 20 )
{
std::string result1 = "This function is really cool";
return result1;
}
if( a >=20 && a <= 40 )
{
std::string result2 = "This function is kind of cool";
return result2;
}
if( a > 40 )
{
std::string result3 = "This function is moderately cool";
return result3;
}
std::string result4 = "This function really isn't that cool";
return result4; // remove warning
}
この状況では、std::string
実際に必要なのは 1 つだけです。4 つすべてがスタックに割り当てられるのでしょうか、それとも 1 つだけが割り当てられるのでしょうか?