为什么我们不需要为std :: move提供模板参数类型?

时间:2014-07-24 14:26:30

标签: c++ c++11

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)) {}
...
};

0 个答案:

没有答案