扫码关注官方订阅号
ringa_lee
1) 返回一个nullptr, 没有特殊的作用。
2) 因为编译器在处理这种情况时会优化掉你的代码,类似:
my_unique_ptr<Mint> p4(new Mint(19));
所以你的move ctor没有调用。这个优化通常称为Return Value Optimization(RVO),标准里称作 Copy Elision。如果你使用的是G++,你可以在编译参数里加入-fno-elide-constructors来禁用这个优化,看看结果有何不同。
Return Value Optimization(RVO)
-fno-elide-constructors
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
1) 返回一个nullptr, 没有特殊的作用。
2) 因为编译器在处理这种情况时会优化掉你的代码,类似:
所以你的move ctor没有调用。这个优化通常称为
Return Value Optimization(RVO)
,标准里称作 Copy Elision。如果你使用的是G++,你可以在编译参数里加入-fno-elide-constructors
来禁用这个优化,看看结果有何不同。