为什么 C++ 标准中 std::function<>::operator() 的定义是:
R operator()(ArgTypes...) const;
并不是
R operator()(ArgTypes&&...) const;
?
有人会认为,要正确转发参数,我们需要 && ,然后std::forward<ArgTypes>...
在转发调用时在函数体中使用?
我部分重新实现了 std::function 来测试它,我发现如果我使用 &&,当我稍后尝试按值传递参数给 operator() . 我认为我对右值/转发概念有足够的了解,但我仍然无法理解这一点。我错过了什么?