-3

次のコードに問題はありますか? あるって言われたけど見つからなかった…

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

1 に答える 1

3

問題のコードは問題ありません。ローカルオブジェクトにポインタを返した場合(たとえば、const char*取得したものをとして返しt.str().c_str()た場合)、または参照を返した場合は問題になります。ただし、コードでは、関数が完了する前に(returnステートメントの一部として)、および破棄される前に、の内部文字列のコピーstd::ostringstreamが実行されるため、問題ありません。t

于 2012-06-19T15:13:05.573 に答える