Зачем нам нужно указывать в переменной rvalue значение null в конструкторе перемещения?
//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;
};
Я не могу понять причину установкиrhd.pds
вnullptr
.
Что произойдет, если мы удалим эту строку:rhs.pds = nullptr;