Я знаю std::queue::pop()
void
. По двум причинам: безопасностьМожет queue :: pop вернуть значение сейчас?
- исключение: что-то может бросить после удаления элемента
- , чтобы иметь возможность return the value by reference
Fine.
Теперь, если я правильно понимаю новую семантику перемещения C++ 11, вторая больше не является допустимым аргументом.
Итак, единственное, что предотвращает std::queue
, чтобы иметь функцию pop
-like, возвращающую значение, заключается в возможности броска конструктора перемещения?
Мне тяжело думать о ситуациях, когда такой конструктор движений будет бросать. Кто знает пример?
Я думаю, то же самое касается std::stack::pop()
, std::vector::pop_front()
, std::vector::pop_back()
, std::deque::pop_front()
, std::deque::pop_back()
, std::list::pop_front()
, std::list::pop_back()
и что нет.
Это действительно два вопроса. Пример для метательного конструктора перемещения и возвращаемого 'pop'. – pmr
Мне нужен пример метательного конструктора перемещения, чтобы понять, почему у нас не может появиться «pop». –
Что относительно типов, у которых нет конструктора перемещения вообще? – jalf