Каково состояние объектов стандартной библиотеки после перемещения?

82
11 ноября 2021, 06:10

Скажите, пожалуйста, в каком состоянии находятся объекты стандартной библиотеки после перемещения? Можно ли продолжать их использовать?

Например, можно ли делать так:

std::unique_ptr<Object> object_1 = std::make_unique<Object>();
std::unique_ptr<Object> object_2 = std::move(object_1);
object_1 = std::make_unique<ConcreteObject>();

И так:

std::vector<int> v_1 {1, 2};
std::vector<int> v_2 = std::move(v_1);
v_1.push_back(1);
Answer 1

И то и другое можно.

Смотрите документацию на каждый конкретный класс:

unique_ptr:

(5) unique_ptr( unique_ptr&& u ) noexcept; ... stores the null pointer in u.

vector:

(7) vector( vector&& other ) noexcept; ... After the move, other is guaranteed to be empty().

READ ALSO
Как найти площадь прямоугольника или помогите найти ошибку в коде [закрыт]

Как найти площадь прямоугольника или помогите найти ошибку в коде [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

197
jQuery append не добавляет &lt;tr&gt; и &lt;td&gt;

jQuery append не добавляет <tr> и <td>

делаю подгрузку контента через ajax, всё вроде бы шло хорошо, но когда пытаюсь вывести всё через $("#articles")append("

128
Почему не работает код?Html/JS

Почему не работает код?Html/JS

Изучаю JS в Sublime TextПытаюсь создать что-то типо онлайн калькулятора по видеоуроку, но он не работает и выбивает ошибку: [1113/194018

220
Как с помощью Jest проверить что был вызван alert

Как с помощью Jest проверить что был вызван alert

Как с помощью Jest проверить что после нажатия кнопки был вызван alert c определенным текстом?

313