其实也有特殊情况,可能是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() {
: ...................
--
FROM 125.119.98.*