[英]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.