Теоретически возможно перемещать от одного типа объекта к другому. Тем не менее, эти типы объектов должны быть разработаны, чтобы позволить это. vector
и string
не являются.
Хорошая подсказка о том, что объект допускает это, будет, если std::vector
имеет конструктор, который принимает std::string&&
. У него нет такого конструктора. Кроме того, vector
должен быть другом string
, чтобы добраться до его внутренних органов.