¿Por qué necesitamos establecer la referencia rvalue en null en move constructor?
//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;
};
No puedo entender la razón para configurarrhd.pds
anullptr
.
¿Qué sucederá si eliminamos esta línea?rhs.pds = nullptr;