C++ 14 standard definisce il ritrovamento) funzioni membro (di std::map
come segue:Perché std :: map find() non è dichiarato come noexcept?
iterator find(const key_type& x);
const_iterator find(const key_type& x) const;
Perché queste funzioni non definite come noexcept
? Cosa potrebbe andare storto all'interno, ciò richiederebbe un'eccezione o produrrebbe un comportamento indefinito (oltre a non trovare un elemento nel qual caso la funzione restituisce un iteratore end
e non sarà richiesto nessun lancio di eccezione)?
correlati: http://stackoverflow.com/questions/20517259/why-vector-access-operators-are-not-specified-as-noexcept – NathanOliver
Non penso che la funzione 'Compare' di una mappa debba essere no, quindi non credo che 'find()' potrebbe essere noesato dato che confronta i tasti – 88877
@ 88877 Naturalmente, 'Compare' può effettivamente lanciare:' 23.2.4.1.1' di C++ 14 stati 'cancella (k) non lancia un'eccezione a meno che tale eccezione non venga lanciata dall'oggetto Confronta del contenitore (se presente). »Si prega di rendere il commento una risposta. – PowerGamer