Compiler will not warn this:
MovableObject a, b, c;
b = std::move(a);
c = std::move(a);
`c` may contain garbage.BTW the "move trait" (as its called in rust) is a related but orthogonal concept to its borrow checker.