C'è qualche differenza tra throw()
e noexcept
diverso dall'essere controllati rispettivamente in fase di esecuzione e in fase di compilazione?
Questo articolo di Wikipedia C ++ 11 suggerisce che gli specificatori di lancio di C ++ 03 sono deprecati.
Perché così, è in noexcept
grado di coprire tutto ciò in fase di compilazione?
[Nota: ho controllato questa domanda e questo articolo , ma non sono riuscito a determinare il motivo valido per il ritiro.]
noexcept
può incorrere in controlli runtime. La principale differenza tra loro è che la rotturanoexcept
causastd::terminate
mentre la rotturathrow
causastd::unexpected
. Anche un comportamento di svolgimento della pila leggermente diverso in questi casi.