まず、さまざまな種類のスマート ポインターがあるため、この質問ではそのうちの 2 つに焦点を当てたいと思います。参照カウントの侵入型スマート ポインターと非侵入型スマート ポインターです。質問は、ポインターの種類ごとに個別に尋ねられます。
私は自分の質問をどのように定式化するのかよくわかりません. どのタイプのスマート ポインターを何のために使用するべきか。
これが私が求めていることであり、それが十分に明確であることを願っています.「スマートに管理された」オブジェクトを扱うとき、どのコンテキストでどのポインターセマンティクスを使用する必要がありますか? つまり、スマート ポインターのセマンティクス、生のポインターのセマンティクス、その他 (スマート ポインターへの参照など) ですか?
グローバル ポインターなどのオブジェクト (参照カウント メモリ エンティティであるオブジェクト) へのポインターを "格納" する場合、またはクラス メンバーとして、それはスマート ポインターである必要があるため、所有権を主張することは明らかですが、他の状況はどうですか?
ポインターを関数の引数として渡す場合、それはスマート ポインター、生のポインター、スマート ポインターへの参照、またはその他のものである必要がありますか? 返されたポインタはどうですか? ローカルポインター?すぐ...
もちろん、どこでもスマート ポインターを使用できますが、これは最も安全なオプションですが、これは本当に不必要であり、オーバーヘッドが増えると感じています。