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"; }
我有一些问题:
编译器(gcc),在第二个版本中,没有给我任何警告.安全吗?
我只是认为编译器(或其他什么?)将创建一个临时变量来保存表达式std :: to_string(vlu)“something”的返回.所以第二个版本也不安全.而我呢?