This这样的帖子似乎暗示语言确实支持仅接受临时参数。
为什么然后将unique_ptr设计为接受别名指针,如下所示:
auto ptr = new Widget{};
auto uptr = std::unique_ptr<Widget>(ptr);
为什么不只限于:
auto uptr = std::unique_ptr<Widget>(new Widget{});
最佳答案
因为这没有帮助。
要求通过给定删除器的适当分配函数创建指针,这不同于它是临时的。
您无法通过值类别区分由new
表达式,函数调用和&
运算符创建的指针-它们都是右值。
关于c++11 - 为什么不将unique_ptr设置为仅接受临时?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38442805/