如果我使用 shared_ptrs 的容器并明确允许访问其元素,如果我打算将容器作为负责“清理”的容器,我应该返回 shared_ptrs 还是原始指针?
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_ptrs,或者原始指针可以吗?
问候!