它是栈上变量的子对象啊。并不是栈上变量本身。
我觉得比较有趣的是这种情况:
struct A {
unique_ptr<int> x;
};
using Tuple = std::tuple<A&, int>;
A foo() {
A a;
Tuple tuple(a, 3);
return std::get<0>(tuple);
}
=============================================
这里的std::get<0>(tuple)返回的真是一个栈上对象的引用。
我猜仍然是不行的。只有直接返回变量本身才行。
【 在 ziqin (子青|会挽雕弓如满月|西北望|射天狼) 的大作中提到: 】
: 标 题: Re: return unique_ptr
: 发信站: 水木社区 (Thu Aug 5 16:40:05 2021), 站内
:
: std::get<0>(res)的东西不是在栈上?
:
: 【 在 here080 的大作中提到: 】
: : 这个不一样,你returned不是一个栈上变量。
: :
:
: --
:
: ※ 来源:·水木社区
http://www.mysmth.net·[FROM: 125.119.98.*]
--
FROM 76.126.252.*