У меня есть три ученика:
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;
Я получаю ошибку компилятора, когда возвращаю m_objects
в const
версии getObjects()
, потому что m_objects
не соответствуетвозвращаемый тип (std::vector<std::shared_ptr<const Object>>
).
В моем временном решении сначала я воссоздаю вектор объекта локально, повторяя, а затем возвращаю локальный вектор, но есть ли более оптимизированный способ обработки этого сценария?
std::vector<std::shared_ptr<const Object> > objects;
for (auto & object: m_objects)
{
objects.push_back(object);
}
return objects;