std :: move和std :: forward都是模板函数,为什么我们不需要为std :: move但是std :: forward提供模板参数类型?
例如(来自Effective Modern C ++):
class Widget {
public:
Widget(Widget&& rhs)
: s(std::move(rhs.s)) {}
...
private:
std::string s;
};
class Widget {
public:
Widget(Widget&& rhs)
: s(std::forward<std::string>(rhs.s)) {}
...
};