Может ли queue :: pop теперь вернуть значение?

Я знаю, что std :: queue :: pop () возвращает void . По двум причинам:

  1. безопасность исключений: что-то может вызвать после удаления элемента
  2. , чтобы иметь возможность вернуть значение по ссылке

Прекрасно.

Теперь, если я правильно понимаю новую семантику перемещения C ++ 11, второй аргумент больше не является допустимым.

Итак ... единственное, что мешает std :: queue получить pop -подобную функцию, возвращающую значение, - это возможность того, что конструктор перемещения выбрасывает?

Мне сложно думать о ситуациях, когда такой конструктор ходов бросил бы. Кто знает пример?

Думаю, то же самое касается 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 () и что нет.

23
задан Michel de Ruiter 31 October 2013 в 08:17
поделиться