B> & get_field() { return field; }
}
A a;
var bar = a.get_field();
Компилятор ругается в строке с return на returning reference to temporary local object?
Потому что в таком коде создаётся копия std::shared_ptr<const B> из std::shared_ptr<B> (но не копия самого B)
a<T> и a<const T> это разные типы
Ага, понял. То есть в моем первом примере с функцией Foo создается копия shared_ptr, и const lvalue ref держит ссылку и лайфтайм этой копии во время работы функции?
Обсуждают сегодня