C++相談室 part137

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 12c3-4saf)
垢版 |
2018/08/27(月) 16:02:00.94ID:vY3QDx2y0
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512

C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part137
https://mevius.5ch.net/test/read.cgi/tech/1531558382/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/

■長いソースを貼るときはここへ。■
 http://codepad.org/
 https://ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)

----- テンプレ ここまで -----
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2018/09/28(金) 23:50:49.06ID:HzE5xAmYr
auto a = funcA(funcB(funcC(input)));
みたいな感じの関数の入れ子ってさ、ある関数が終わる度にその都度インスタンスを作ってコピーして次の関数に渡すということを繰り返すんだよね?

つまり、関数たちの返り値が巨大なオブジェクトだったら、このように書くことで余計に時間がかかるよね?
2018/09/29(土) 00:09:10.14ID:UwfF5QN40
>>818
いんや。
オブジェクトにムーブコンストラクタがあって戻り値が右辺値ならコピー回避されるし、戻り値最適化で一切何も起こらない可能性すらある。


て、はちみつが言ってた。
2018/09/29(土) 00:13:53.80ID:X+ykKtqpr
>>819
へぇ

> 一切何も起こらない
というのは、一切余計なオーバーヘッドがない、ということですか?
821デフォルトの名無しさん (アウアウウー Sadb-ZVm4)
垢版 |
2018/09/29(土) 00:22:35.94ID:4+9Po3M4a
単純なコピーよりは早くなる可能性があるってだけでは?
2018/09/29(土) 00:30:08.48ID:UwfF5QN40
ちょっと誇張しすぎた。
正しくは「コピーもムーブも起らない可能性すらある」

コピーもムーブも起こらなければ、その分のオーバーヘッドは当然ないよ
2018/09/29(土) 00:36:40.21ID:X+ykKtqpr
へぇ〜〜〜
ありがとうございます

まぁそこがボトルネックじゃない限り余計なこと考えない方が身のためなのかもしれませんが
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況