The implicitly declared copy and move constructors, properly copy or transfer the value of x: The newly constructed object represents the same type as x did before the call. The same applies to the implicitly declared assignment operators.