可能我读到的文献里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不就是这个意思?
:
--
FROM 122.224.174.*