CD
{
::z = std::move(x);
}
и{
auto y = std::move(x);
::z = std::move(y);
}Теперь описание его выглядит так
Предусловие: x = std::move(y) возможно; y = std::move(x) возможно; для T определен movector
Постусловие: x как будто выполнено x = std::move(y); y как будто выполнено y = std::move(x);
Пруф что в коде все как надо существенно завязано на два указанных выше свойства
