繁体   English   中英

重新分配unique_ptr

[英]Reassigning unique_ptr

在此代码上,Jetbrains CLion抱怨'unique_ptr::operator=(const unique_ptr &)' is deleted'unique_ptr::operator=(const unique_ptr &)' is deleted

std::unique_ptr<std::string> test;
test = std::make_unique<std::string>();

屏幕截图

但是在此:

auto test2 = std::make_unique<std::string>();

没有抱怨。

CLion是否正确? 可以重新分配unique_ptr吗?

upd它可以通过GCC,CLang和MSVC ++进行编译,并且必须由任何C ++ 14编译器进行编译。 这只是对CLion的好奇。

代码很好,应该编译(确实可以); 这是IDE中的错误

有关副本分配运算符的错误消息完全令人误解; 而拷贝赋值运算符将被删除,此举赋值运算符也没有了,在这种情况下,它会被调用,因为make_unique()返回unique_ptr的价值,这是一个右值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM