这个不一样,你returned不是一个栈上变量。
【 在 ziqin (子青|会挽雕弓如满月|西北望|射天狼) 的大作中提到: 】
: 标 题: Re: return unique_ptr
: 发信站: 水木社区 (Thu Aug 5 15:12:12 2021), 站内
:
: 其实也有特殊情况,可能是VS2019的bug,不过下面的代码VS2019编不过去,要显示std::move(std::get<0>(res));
:
: struct A
: {
: std::unique_ptr<int> a;
: };
:
: A f()
: {
: std::tuple<A, int> res = std::make_tuple(A(), 1);
: return std::get<0>(res);
: }
:
: 【 在 here080 的大作中提到: 】
: : return一个右值时是guaranteed RVO,形式上可以相当于move
: : 其实1还有另一个更高级的情况:
: : unique_ptr<T> foo() {
: : ...................
:
: --
:
: ※ 来源:·水木社区
http://www.mysmth.net·[FROM: 125.119.98.*]
--
FROM 76.126.252.*