Введение к операциям умных указателей в C++
Умные указатели уже умеют владеть объектом:
unique_ptr держит единственного хозяина,
shared_ptr делит счетчик между копиями.
В этом разделе разберем остальные операции - доступ
к адресу, сброс, массивы, слабые связи и другие
приемы стандартной библиотеки. Как зацепку
посмотрим метод get у единственного
владельца: он возвращает сырой адрес, не отдавая
объект. Запишем число в unique_ptr
и выведем значение через get:
#include <iostream>
#include <memory>
std::unique_ptr<int> slot = std::make_unique<int>(9);
int* raw = slot.get();
std::cout << *raw << "\n";
Пока живет slot, память остается под
его контролем: get лишь показывает
адрес для чтения или записи через обычный указатель.