【发布时间】:2019-07-11 16:31:21
【问题描述】:
如果我将空指针传递给std::make_unique,我无法找到任何文档。
是否抛出异常?
【问题讨论】:
-
这个问题的根本原因是什么?为什么你认为将空指针传递给
make_unique会有一些不寻常或不寻常的事情?例如,传递空指针与传递有何不同。42或"Hello World"? -
make_unique不采用指针并“使其唯一”,它创建(“制作”)具有唯一且可转让所有权的对象。std::make_unique<int*>(nullptr)使用这些属性创建一个空的int*。 -
显示代码,说明您真正询问的内容,因为坦率地说,问题本身没有意义。
std::make_unqiue<Type>创建一个动态的Type实例并将所有权分配给随后返回的std::unique_ptr<Type>对象。这听起来像是您认为std::make_unique做了其他事情,或者您将std::make_unique与std::unique_ptr的构造函数混淆了;他们是不同的野兽。
标签: c++ c++14 unique-ptr