- C++相談室 part140
317 :はちみつ餃子 ◆8X2XSCHEME [sage]:2019/01/29(火) 03:58:18.59 ID:UoxCxtnm - >>302 >>306
何も全部のポインタを置き換えるべしというわけじゃない。 所有権の管理に使う話。 下流には「アクセスを許す」のであって、「所有権を渡す」必要はないだろ。 (渡したい設計のときは渡せばいいが。) 可能なら一環してスマートポインタで扱うに越したことは無いとは思うが、 下流に渡すのは生ポインタにするという方針もそれはそれで悪くないと思う。 >>260 みたいなケースであっても、下流には生ポインタで渡すのであっても スマートポインタは有用にはかわりないって話。 所有権の観点から見ると生ポインタってのは所有権を持っているか持っていないか わからない状態ってことで、でも、その中に std::unique_ptr がひとつあれば、 それが後始末をするのだというサインになる。 所有権をどこで持っているのか見た目にわかるので、単純に、読みやすい。 もちろん、一旦生ポインタとして取り出したものをまたスマートポインタに入れたりすると おかしなことになるのでそうしないように気を付ける必要はあるけど。 例外に対して気をつかうのはポインタを適切に扱うより冗長でつらいのでやりたくないってのもある。
|
|