Hi I am reading through Scott Meyer's Effective Modern C++ and in its item 25 it has this example:
class Widget {
    public:
    Widget(Widget&& rhs)
    : name (std::move(rhs.name)),
      p(std::move(rhs.p)
    { ... }
    ...
}
My question here is why do we need the std::move for rhs.name? As rhs is already a rvalue, doesn't that imply rhs.name is also a rvalue so we can safely move it?
 
    