Objects of types defined in the C++ standard library may be moved
from (
[class.copy.ctor])
. Move operations may be explicitly specified or
implicitly generated
. Unless otherwise specified, such moved-from objects shall
be placed in a valid but unspecified state
.