以下代码是否有任何问题?我被告知它在那里,但我找不到它......
std::string fun(int i)
{
std::ostringstream t;
t<<"My int is "<<i<<returnSomething();
return t.str();
}
答案 0 :(得分:3)
问题中的代码很好。如果您将指针返回到本地对象(例如,您返回了const char*
获得的t.str().c_str()
)或者您返回了引用,那么这将是一个问题。但是在您的代码中,std::ostringstream
中的内部字符串的副本在函数完成之前执行(作为return语句的一部分),并且在t
被销毁之前,所以很好。