如果我使用 shared_ptr 的容器并明确允许访问其元素,那么如果我希望容器负责“清理”,是应该返回 shared_ptr 还是原始指针?
class Container
{
private:
std:vector<shared_ptr<Foo> > foo_ptrs;
public:
shared_ptr<Foo> operator[](std::size_t index) const {}; // or
Foo* operator[](std::size_t index) const {};
};
在这种情况下,返回shared_ptr有什么理由,还是原始指针可以吗?
问候!