В сценариях, когда вы взаимодействуете с библиотеками C, которые управляют созданием/удалением указателей, я увидел недавний код багги, где управлял структурой Unique_ptr до того, как указатель фактически указывал на достоверное местоположение памяти, поэтому необработанный PTR был NullPtr, прежде чем он был передан на A API C. Пример в коде для имитации этого: < /p>
Код: Выделить всё
#include
#include
struct Foo {
std::string s;
};
// A simple fn to simulate C libraries which use a outptr
void init_foo(Foo** foo_ptr_ptr) {
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/73007468/is-a-unique-ptr-with-custom-deleter-never-invoked-when-initialized-with-nullptr[/url]