I have three class members:
public:
std::vector<std::shared_ptr<Object> > getObjects();
std::vector<std::shared_ptr<const Object> > getObjects() const;
private:
std::vector<std::shared_ptr<Object> > m_objects;
I'm getting a compiler error when I return m_objects
in the const
version of getObjects()
, because m_objects
does not match the return type (std::vector<std::shared_ptr<const Object>>
).
In my workaround, I first reconstruct the object vector locally by iterating and then return the local vector, but is there a more optimized way of handling this scenario?
std::vector<std::shared_ptr<const Object> > objects;
for (auto & object: m_objects)
{
objects.push_back(object);
}
return objects;