Объект, находящийся в допустимом, но неопределенном состоянии , в основном означает, что, хотя точное состояние объекта не гарантируется, оно является действительным, и как такие функции-члены (или функции, не являющиеся членами) гарантированно работать до тех пор, пока они не полагаются на объект, имеющий определенное состояние.
Функция-член clear()
не имеет предварительных условий для состояния объекта (конечно, кроме того, что оно действительно) и поэтому может вызываться для объектов, перемещенных из. С другой стороны, например, front()
зависит от того, что контейнер не пустой, и поэтому не может быть вызван, поскольку не гарантируется, что он не пустой.
Поэтому и ver2, и ver3 должны быть в порядке.