- 【初心者歓迎】C/C++室 Ver.99【環境依存OK】 [無断転載禁止]©2ch.net
461 :デフォルトの名無しさん[sage]:2016/09/24(土) 18:22:28.37 ID:M/J9F64h - 移動ってのが、オブジェクトのメモリコピーだよね。
でコピーってのがコピーコンストラクタによるデータの複写(ポインタとか更新) ってことかな。 うーん、コピーコンストラクタを作らなかったらオブジェクトのメモリコピーになるんだっけ? コピーコンストラクタがあるかどうかは、コード見ないと判定できないと思う。 std::moveはよく知らない。 でも、メモリコピーってあんまり必要ないのでは? ポインタ渡しか、参照渡しにしておいて、コピーが必要がなときは 明示的に仮想関数作って渡したら問題にならないのでは。 A a; A copy = a; という書き方をそもそもやめる、という提案です。 virtual A* copy();をAに導入し class B : public A{} // copyも実装する。 B b; A* copy = b.copy();
|
- 【初心者歓迎】C/C++室 Ver.99【環境依存OK】 [無断転載禁止]©2ch.net
463 :デフォルトの名無しさん[sage]:2016/09/24(土) 19:06:23.86 ID:M/J9F64h - >>462
そうなんですか。 詳しくないので私は引っ込みます。
|
- 【初心者歓迎】C/C++室 Ver.99【環境依存OK】 [無断転載禁止]©2ch.net
466 :デフォルトの名無しさん[sage]:2016/09/24(土) 21:10:16.06 ID:M/J9F64h - すみません。
>>450へのレスではなく、>>442からの流れで書いていました。 moveも多少読んでみました。 がいまいちよくわからない。 まあ参照使ってれば「私は」いいや。他の人はともかく。
|
- Visual Studio 2015 Part6©2ch.net
815 :デフォルトの名無しさん[sage]:2016/09/24(土) 21:38:25.89 ID:M/J9F64h - こうして見ると、{}で囲む人がけっこう多数派なんだな。
私はよっぽどのことが無い限り{}で囲む派。 あと、VSには、bool型以外のif文での評価と bool型の数値型への代入に対してwarningくらいでるようにしてほしい。 一度(a < 2) を(a << 2)と書いて、ひどい目にあった。 また、逆の例(a = a < 1と書いてしまった)というのも私じゃないけど知ってる。 しかし>>789には吹いた。
|
- Win32API質問箱 Build122
894 :デフォルトの名無しさん[sage]:2016/09/24(土) 21:52:53.12 ID:M/J9F64h - まあまあ、そこまで書かなくても・・・
|
- 【初心者歓迎】C/C++室 Ver.99【環境依存OK】 [無断転載禁止]©2ch.net
471 :デフォルトの名無しさん[sage]:2016/09/24(土) 22:53:19.88 ID:M/J9F64h - moveって使うと得られるメリットってなんなん?
高速化以外で。 ソースコードの可視性が劇的によくなるとかなら積極的に採用してもいいけど。
|
- 【初心者歓迎】C/C++室 Ver.99【環境依存OK】 [無断転載禁止]©2ch.net
474 :デフォルトの名無しさん[sage]:2016/09/24(土) 23:38:03.71 ID:M/J9F64h - http://d.hatena.ne.jp/gintenlabo/20110116/1295195945
ここを読んでなんとなくわかった。 でも私はこのサイトの一番最初の参照を使ったやり方でも悪くないと思ってる。 まあ、あれだね。 moveを使うと、かっこいい。ってところだろうか。 とはいえ、分かってる人だけで使うならともかく あまり知らない人がいるプロジェクトとかで使うのはちょっとためらわれるかな。 速度:参照よりわずかに早い 可読性:人を選ぶ これを使うことで劇的によくなるアルゴリズムとか・・・:参照とあまり変わらない に見えました。違ってるかな・・・ >>473も参照使えば問題ないし。 うーん・・・
|