Я сталкиваюсь с этой проблемой, когда один из моих объектов имеет список shared_ptr
для какого-либо объекта. поэтому тип такой: list<shared_ptr<some_object>>
. Но интерфейс, который я реализую, требует, чтобы этот список был возвращен функцией со следующей подписью
const list<shared_ptr<const some_object>>& getObjList()
.
Компилятор не позволит мне вернуть мой список, поскольку list<shared_ptr<const some_object>>&
и list<shared_ptr<some_object>>&
не могут быть преобразованы друг в друга. Могу ли я в любом случае вернуть требуемый список, не создавая копию, элементы которой shared_ptr<const some_object>
?