如果foo()返回的是左值,不管用wrapper还是auto&&都会match到const A&啊
【 在 ziqin (子青|会挽雕弓如满月|西北望|射天狼) 的大作中提到: 】
: 标 题: Re: unique_ptr 和auto &&
: 发信站: 水木社区 (Thu Jul 22 15:39:54 2021), 站内
:
: 可能我读到的文献里perfect forward仅仅只forward函数的input。
:
: 需要perfect forward的情况是expression同时有
:
: expression(const A& a)
: expression(A&& a)
:
: 然后在forward call的时候,compiler需要deduct具体呼叫哪个,因为是个模板
: template<class T>
: wrapper(T&& a)
:
: 但是
: foo()的return type永远是lvalue
:
: 就算
: auto&& x = foo();
: expression(x)
: 呼叫的也是expression(const A& a),如果需要呼叫expression(A&& a),需要
: expression(std::move(x))
:
: 【 在 here080 的大作中提到: 】
: : perfect forward不就是这个意思?
: :
:
: --
:
: ※ 来源:·水木社区
http://www.mysmth.net·[FROM: 122.224.174.*]
--
FROM 76.126.252.*