лучшая практика при возврате умных указателей

Какова наилучшая практика при возврате умного указателя, например boost :: shared_ptr? Должен ли я по умолчанию вернуть смарт-указатель или базовый необработанный указатель? Я пришел из C #, поэтому я склонен всегда возвращать умные указатели, потому что это кажется правильным. Вот так (пропуская const -корректность для более короткого кода):

class X
{
public:
    boost::shared_ptr<Y> getInternal() {return m_internal;}

private:
    boost::shared_ptr<Y> m_internal;
}

Однако я видел, как некоторые опытные программисты возвращали необработанный указатель и помещали необработанные указатели в векторы. Как правильно это сделать?

Ответы на вопрос(9)

Ваш ответ на вопрос