То, что можно сделать с перемещенным объектом, полностью определяется пользователем (при условии, что классы стандартной библиотеки C ++ также «определены пользователем» с точки зрения основного языка). Таким образом, в общем случае вам необходимо обратиться к документации для конкретного класса (или библиотеки), чтобы определить, что можно сделать с перемещенными объектами некоторых конкретных типов.
Когда речь идет о классах из стандартной библиотеки C ++, ответ «да»: вы можете назначать объекты этих классов после перемещения из. Спецификация стандартной библиотеки C ++ явно позволяет это.
Другая библиотека может принять решение следовать другому соглашению, хотя я бы сказала, что запрет такого назначения не приведет к хорошему дизайну.