スレを勃てるまでもないC/C++の質問はここで 14
■ このスレッドは過去ログ倉庫に格納されています
0045デフォルトの名無しさん
2010/03/24(水) 02:09:21実行速度が気にならないなら全部shared_ptrで構わない。
shared_ptrを使った場合はプログラマが1個のshared_ptrからしか参照されないことを知っていたとしても
毎回参照カウンタを生成するため、そのためのオーバーヘッドが生じる。
unique_ptrは参照カウンタを使用しないため、1つからしか参照されないことが予め分かっているなら効率的。
また、shared_ptrの場合、一度ポインタをshared_ptrに格納してしまうとポインタの所有権を奪い返すことができない。
つまり参照するshared_ptrがなくなった時点でオブジェクトがdeleteされるのを止めることができない。
一方で、unique_ptrはrelease()によって所有権を放棄させることができる。
ぱっと思いつくのはこのくらい。
■ このスレッドは過去ログ倉庫に格納されています