使用osstreamstring在此代码中存在潜在问题

时间:2012-06-19 15:09:27

标签: c++ ostringstream

以下代码是否有任何问题?我被告知它在那里,但我找不到它......

std::string fun(int i)
{
    std::ostringstream t;
    t<<"My int is "<<i<<returnSomething();
return t.str();
}

1 个答案:

答案 0 :(得分:3)

问题中的代码很好。如果您将指针返回到本地对象(例如,您返回了const char*获得的t.str().c_str())或者您返回了引用,那么这将是一个问题。但是在您的代码中,std::ostringstream中的内部字符串的副本在函数完成之前执行(作为return语句的一部分),并且在t被销毁之前,所以很好。