Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 向唯一的\u ptr提供删除器_C++_Smart Pointers_Unique Ptr - Fatal编程技术网

C++ 向唯一的\u ptr提供删除器

C++ 向唯一的\u ptr提供删除器,c++,smart-pointers,unique-ptr,C++,Smart Pointers,Unique Ptr,unique_ptr ud:Null unique_ptr,指向使用d的T类型的对象,它必须是d类型的对象而不是delete 但是,当我尝试在没有指针对象的情况下提供deleter函数时,compilerVisual Studio 2015抱怨没有与参数列表匹配的构造函数实例。。如果我给unique_ptr一个指针和deleter,它就可以正常工作。 那么,是我误解了什么,还是这本书错了?如果这本书是错的,有没有其他方法可以分别向唯一的\u ptr提供指针和删除器?您试图调用的构造函数不存在。根

unique_ptr ud:Null unique_ptr,指向使用d的T类型的对象,它必须是d类型的对象而不是delete

但是,当我尝试在没有指针对象的情况下提供deleter函数时,compilerVisual Studio 2015抱怨没有与参数列表匹配的构造函数实例。。如果我给unique_ptr一个指针和deleter,它就可以正常工作。
那么,是我误解了什么,还是这本书错了?如果这本书是错的,有没有其他方法可以分别向唯一的\u ptr提供指针和删除器?

您试图调用的构造函数不存在。根据,唯一采用deleter函数的构造函数也采用指针。如果您想用deleter初始化一个惟一的_ptr,但还不想给它一个值,那么您可以始终将nullptr作为第一个参数传递,并调用它,为它提供一个指针,以便以后进行管理