Как лучше всего возвращать интеллектуальный указатель, например boost :: shared_ptr? Должен ли я стандартно возвращать интеллектуальный указатель или базовый необработанный указатель? Я родом из C #, поэтому всегда возвращаю умные указатели, потому что это кажется правильным. Вот так (пропуская константную корректность для более короткого кода):
class X
{
public:
boost::shared_ptr<Y> getInternal() {return m_internal;}
private:
boost::shared_ptr<Y> m_internal;
}
Однако я видел, как некоторые опытные кодеры возвращали необработанный указатель и помещали необработанные указатели в векторы. Как правильно это делать?