Это не имеет ничего общего с вектором. std::uniqe_ptr
определяет состояние объекта после перемещения, для него установлено значение null (20.7.1 / 4).
Как правило, объект, из которого был перемещен, имеет допустимое, но неопределенное состояние. Таким образом, кроме случаев, когда документы типового типа недоступны, вы можете получить к ним доступ. Определенные классы, возможно, должны давать более подробную информацию об этом состоянии, когда это возможно, но на что опирается вектор, так это:
- объект можно переместить снова (иначе вектор не сможет перераспределить)
- объект может быть уничтожен, если уничтожен вектор.
Таким образом, для типа, отличного от unique_ptr
в векторе, вам, вероятно, следует подумать, что результирующее значение источника перемещения может быть любым из:
- «пустое» или «нулевое» значение типа,
- исходное значение,
- исходное значение цели хода,
- какое-то другое значение типа, о котором вы не задумывались.
Если вы все еще думаете, что стоит доступа к значению, которое может быть любым из них, продолжайте; -)