У меня есть умный указатель на объект, который мне нужно передать методу, который принимает только указатель указателя.Получить указатель указателя для умного указателя
Вот пример, когда оригинальный умный указатель теряет право собственности.
int main(int argc, char* argv[])
{
std::unique_pointer<pcap_if_t> object;
auto object_pointer = object.get();
pcap_findalldevs(&object_pointer, ...); // The unique_ptr loses ownership after being passed to the function
}
Как бы это осуществить, без первоначального умного указателя, теряющего право собственности на указатель?
EDIT:
Функция Я звоню это pcap_findalldevs в Libpcap. Я боюсь, что эта функция может стать причиной потери собственности.
Я обновил свой пример кода, чтобы отразить то, что я на самом деле делаю.
До тех пор, пока 'some_function' не получает права собственности на указатель, который вы передаете, или указатель, который указывает на то, что вы делаете, вероятно, просто отлично. –
Использование 'std :: move', вы пробовали? – dlmeetei
@Deleisha Что именно вы могли бы _move_ это? Другой 'std :: unique_ptr'? –