- 1 名前:デフォルトの名無しさん [2009/06/14(日) 10:14:10 ]
- C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。 前スレ C++相談室 part69 pc12.2ch.net/test/read.cgi/tech/1241438694/
- 40 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 01:06:28 ]
- 個人的にはCがいいかと思っていたのですが、Bでもさほど問題にはならないだろうし、
なにより早すぎる最適化であるという指摘を受けて、なるほどと思いました。 Aであることのメリットは何でしょうか?
- 41 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 01:12:44 ]
- ちなみにCがいいかと思った理由は、スコープを限定できる(C#でいうusingのような)ことと、
ループ内でインスタンス生成することのコスト(が最適化されるかどうかも含めて)を、 そのコードを初めて見た人が心配しなくてすむだろうと思ったからです。
- 42 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 01:36:47 ]
- ブロック式が出てきたら関数化が必要だと思うきがす・・・るけど,採用しなかったならOK
- 43 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 22:11:48 ]
- >>38
お前は何を聞いていたんだ。 コピーコンストラクタには3歳児が10まで数える処理が 含まれているって言ったろ?
- 44 名前:39 mailto:sage [2009/06/15(月) 23:18:20 ]
- >>40
ああ、ごめん。おれもBだわ。勘違いしてた。
- 45 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 23:23:11 ]
- >>43
コピーコンストラクタは速いが、デストラクタでは100まで数えておふろから出る処理が含まれてたと思う
- 46 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 23:42:18 ]
- それが問題になるならその時に対処すればいい
- 47 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 05:24:12 ]
- そもそも真にボトルネックになっているかどうかが分からない。
実測するしかないだろう。 ・コピーコンストラクタで毎回生成する方式 の方が速いこともあれば ・代入演算子で毎回生成する方式 の方が速いこともある。 前者は毎回メモリをスタックに確保する必要がある+コピーコンストラクタを起動する必要がある が、確保場所は好き好きに決めて良いから速いかもしれない。 後者は毎回メモリをスタックに確保する必要がない+代入演算子を呼び出す必要がある が、確保場所は既にきまっちゃっているわけで、自由度がないかもしれない。 てな感じでしょうかね。
|

|