unique_ptr<int> test(){
unique_ptr<int> ppp(new int(10));
return ppp;
}
代码如上,ppp可以成功返回没有报错,ppp是个左值,那肯定不会是移动的吧,那就要执行拷贝构造函数吧,但是unique_ptr没有拷贝构造啊。。。。。
哪位大大解释一下啊
unique_ptr<int> test(){
unique_ptr<int> ppp(new int(10));
return ppp;
}
代码如上,ppp可以成功返回没有报错,ppp是个左值,那肯定不会是移动的吧,那就要执行拷贝构造函数吧,但是unique_ptr没有拷贝构造啊。。。。。
哪位大大解释一下啊
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
你这个判断是错的,给你一个例子如下:
首先,ppp是return回来的局部值,这是右值而不是左值;
其次,
std::unique_ptr
不接受左值作为入参的拷贝构造函数. 只有这个:你再揣摩一下这个例子吧:
https://github.com/lynnboy/Cp...