- C++相談室 part120 [転載禁止]©2ch.net
221 :デフォルトの名無しさん[]:2015/10/30(金) 14:47:05.92 ID:AF8Cyymv - effective modern c++読んでるんだが完全転送の辺りが難しすぎる
読んでて理解はできるけどいざというときに自分で正しく書ける気がしない この辺はどういう動機で仕様が決定されてきたの? こんな感じ? ポインタ渡しを排除したい、Cにはない参照の概念を導入(C++98?) ↓ それだと型推論でオブジェクトを渡してコンテナに詰める時に最適化の不都合があった ↓ ムーブセマンティクスや完全転送という概念を導入してなんとか対処しようとした という流れなんですか?
|
- C++相談室 part120 [転載禁止]©2ch.net
222 :デフォルトの名無しさん[]:2015/10/30(金) 15:01:12.65 ID:AF8Cyymv - c++の素人的には
ポインタを表舞台から排除しようとして コピーのコストを減らすためにmoveや ユニバーサル参照やテンプレートに対応できるようにforwardを用意したけど そうやって辻褄を合わせていったら結果として複雑怪奇な物になってしまって これならポインタ使って書いたほうが人間に分かりやすいんじゃ…という風に見えるんだけど プロからすると違うんでしょうか?
|
- C++相談室 part120 [転載禁止]©2ch.net
223 :デフォルトの名無しさん[]:2015/10/30(金) 15:09:22.99 ID:AF8Cyymv - 連レスすみません
C++11はオブジェクトを扱うあらゆる所で「どのコンストラクタが呼ばれるか」ってのを意識しないとまともなコードがかけなくて しかしそのコンストラクタってのがデフォで暗黙的に6種類も生成される!(困ったことにとある条件で生成されない場合もある) その6種類のコンストラクタに加えてユニバーサル参照を取るコンストラクタなんかがあると それらのうちどれが呼ばれるか、その優先度を意識しないといけない しかもその優先度ってのが、effective modern C++を読む限り、大抵の人間の直観に反している これ無理ゲーじゃね…?という気がしてるんですがどうなんですか 頭のいい人の仕事とは思えない
|
- C++相談室 part120 [転載禁止]©2ch.net
225 :デフォルトの名無しさん[]:2015/10/30(金) 15:15:40.79 ID:AF8Cyymv - 6種じゃなくて5種ですねスマソ
|