Por que precisamos definir a referência rvalue como null no construtor move?
//code from https://skillsmatter.com/skillscasts/2188-move-semanticsperfect-forwarding-and-rvalue-references
class Widget {
public:
Widget(Widget&& rhs)
: pds(rhs.pds) // take source’s value
{
rhs.pds = nullptr; // why??
}
private:
struct DataStructure;
DataStructure *pds;
};
Não consigo entender o motivo da configuraçãorhd.pds
paranullptr
.
O que acontecerá se removermos esta linha:rhs.pds = nullptr;