Is there any issue in the following code? I am told it's there, but I couldn't find it...
std::string fun(int i)
{
std::ostringstream t;
t<<"My int is "<<i<<returnSomething();
return t.str();
}
Is there any issue in the following code? I am told it's there, but I couldn't find it...
std::string fun(int i)
{
std::ostringstream t;
t<<"My int is "<<i<<returnSomething();
return t.str();
}
The code in the question is fine. It would be a problem if you returned a pointer into the local object (say that you returned a const char*
obtained as t.str().c_str()
) or if you returned a reference. But in your code, a copy of the internal string in the std::ostringstream
is performed before the function completes (as part of the return statement), and before t
gets destroyed, so it is fine.