【初心者歓迎】C/C++室 Ver.99【環境依存OK】 [無断転載禁止]©5ch.io
レス数が950を超えています。1000を超えると書き込みができなくなります。
0950デフォルトの名無しさん
2016/11/02(水) 12:48:00.98ID:BfJMJ0BQ最適化を考慮しなければ
呼び出し元のf()の位置にはstrとは別の一時オブジェクトがコピーで作られるので
f()から戻ってきた時点でstrは消えてる
ただコンパイラは最適化して一時オブジェクトを介さないようにしてもよく
今の場合最大限最適化されればstr2の位置に直接オブジェクトを構築する可能性もある
つまり
int main()
{
std::string str2="ハロ 今日も元気だね";
}
のようにする場合さえある
参考
https://ideone.com/meJdTX
レス数が950を超えています。1000を超えると書き込みができなくなります。