Open apolukhin opened 3 years ago
Yuriy Chernyshov, 13 декабря 2018, 18:59 Тогда нужно и для std::variant такой же метод добавить.
Хотя идеологически правильнее, конечно, изменить поведение в *std::move(opt)
nenomius, 14 декабря 2018, 14:35 Yuriy Chernyshov, в каком состоянии тогда будет с std::variant после данной операции? valueless_by_move?
Andrey Davydov, 13 декабря 2018, 22:45
Идея классная, возможно стоит сделать этому методу ref-qualifier &&
.
Андрей Руссков, 14 декабря 2018, 15:32 std::move не дает гарантий для moved-out значения, кроме валидного состояния (и эту гарантию ты должен обеспечивать сам). Поэтому в общем случае moved-out объекты лучше не использовать.
Нужно побольше мотивации для предложения. Возможно стоит написать автору https://wg21.link/p0798 и добавить метод в рамках p0798
Перенос предложения: голоса +10, -0 Автор идеи: Mikhail Trishchenkov
Нужен метод у std::optional, который возвращает по значению текущее содержимое, оставляя optional пустым.
Очень часто требуется забрать значение из optional, оставив его пустым. Но подходящего метода нет. *std::move(opt) хотя и перемещает значение, не делает optional пустым, внутри остаётся «мёртвое» значение. Хотелось бы чего-то такого: