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;