Означает ли это, что мы не должны вызывать std::move
для объекта в стеке?
Нет, это означает, что вы должны были предоставить конструктор перемещения, который бы установил x
к нулю.
Обратите внимание, что в вашем случае нет конструктора перемещения по умолчанию, поскольку вы определили свой собственный деструктор ( ref ).
PS: не забывайте правило 5 .