struct cls{
~cls(){std::cout<<"dtor\n";}
};
void foo(cls** pp){
*pp = new cls;
}
int main()
{
cls* raw_ptr = 0;
foo(&raw_ptr);
std::unique_ptr<cls> u_ptr{raw_ptr};
}
Есть ли способ, чтобы получить прямой доступ к raw_pointer
в unique_ptr
, чтобы перейти к функции foo(cls** pp)
?станд :: unique_ptr, как из аргумента функции
Или
cls* raw_ptr = 0;
foo(&raw_ptr);
std::unique_ptr<cls> u_ptr{raw_ptr};
Является ли это единственный способ?
Примечание: Я не могу изменить подпись функции foo
.
[ 'unique_ptr :: получить()'] (http://en.cppreference.com/w/cpp/memory/unique_ptr/get) – Biffen