Код: Выделить всё
struct MyClass {
explicit MyCLass(const std::shared_ptr & input) : obj(input) {}
const std::shared_ptr & obj;
};
Однако, если указанное выше объявление переменной-члена класса obj будет изменено на const std::shared_ptr obj, он может повторно использовать исходный блок управления входным общим указателем.
Учитывая, что конструктор легко объявляется явным, какой механизм вызывает различное поведение?
Пожалуйста, не спрашивайте меня, зачем нужна ссылка наshared_ptr — я знаю, что делаю, и это делается не просто так.
Подробнее здесь: https://stackoverflow.com/questions/797 ... onstructor
Мобильная версия