boost::shared_ptr などのスマート ポインターを返すときのベスト プラクティスは何ですか? 標準でスマート ポインターまたは基になる生のポインターを返す必要がありますか? 私は C# 出身なので、常にスマート ポインターを返す傾向があります。このように (短いコードの const-correctness をスキップします):
class X
{
public:
boost::shared_ptr<Y> getInternal() {return m_internal;}
private:
boost::shared_ptr<Y> m_internal;
}
ただし、生のポインターを返し、生のポインターをベクトルに入れる経験豊富なコーダーを見てきました。それを行う正しい方法は何ですか?