Conosco std::queue::pop()
restituisce void
. Per due motivi: sicurezzaCan queue: pop restituisce un valore ora?
- eccezione: qualcosa potrebbe gettare dopo aver rimosso l'elemento
- per poter return the value by reference
fine.
Ora, se capisco correttamente la nuova semantica del C++ 11, il secondo non è più un argomento valido.
Quindi ... l'unica cosa che impedisce a std::queue
di avere una funzione pop
-like che restituisce il valore si trova nella possibilità che il costruttore di mosse genera?
Ho difficoltà a pensare a situazioni in cui un costruttore di mosse potrebbe buttare. Chi conosce un esempio?
immagino lo stesso vale per 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()
e cosa no.
Queste sono davvero due domande. Un esempio per un costruttore di mosse di lancio e un pop di ritorno. – pmr
Ho bisogno di un esempio di un costruttore di lancio per capire perché non possiamo avere il 'pop' di ritorno. –
E i tipi che non hanno un costruttore di mosse? – jalf