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 回答1.1k 阅读✓ 已解决
1 回答959 阅读✓ 已解决
4 回答750 阅读
2 回答2.1k 阅读✓ 已解决
1 回答827 阅读
1 回答863 阅读
1 回答626 阅读
你这个判断是错的,给你一个例子如下:
首先,ppp是return回来的局部值,这是右值而不是左值;
其次,
std::unique_ptr
不接受左值作为入参的拷贝构造函数. 只有这个:你再揣摩一下这个例子吧:
https://github.com/lynnboy/Cp...