#include <memory>
class bar{};
void foo(bar &object){
std::unique_ptr<bar> pointer = &object;
}
Я хочу назначить адрес объекта указателю. Вышеприведенный код, очевидно, не будет компилироваться, потому что правая часть оператора присваивания должна быть std:: unique_ptr. Я уже пробовал это:
pointer = std::make_unique<bar>(object)
Но во время компиляции он вызывает много ошибок. Как я могу это сделать?
Обновление
Как сказано в ответах - использование метода std::unique_ptr::reset
привело к поведению undefined. Теперь я знаю, что в таких случаях я должен использовать стандартный указатель.