std::string &func(int vlu)
{
std::string str;
str = std::to_string(vlu) + "something";
return str;
}
上記の関数は明らかに安全ではありません。
以下は別のバージョンです。
std::string &func(int vlu)
{
return std::to_string(vlu) + "something";
}
いくつか質問が
あります。2 番目のバージョンのコンパイラ (gcc) は警告を表示しません。安全ですか?コンパイラ(または何か?)が一時変数を作成して、式の戻り値を保持すると思いますstd::to_string(vlu) + "something"
。したがって、2 番目のバージョンも安全ではありません。そして私は正しいですか?