In che modo le eccezioni C ++ rallentano il codice quando non ci sono eccezioni?

Ho letto che c’è un sovraccarico nell’usare le eccezioni C ++ per la gestione delle eccezioni anziché, ad esempio, il controllo dei valori di ritorno. Sto solo parlando di sovraccarico che si verifica quando non viene lanciata alcuna eccezione. Sto anche partendo dal presupposto che avresti bisogno di implementare il codice che controlla effettivamente il valore restituito e fa la cosa appropriata, qualunque cosa sarebbe equivalente a ciò che il blocco catch avrebbe fatto. Inoltre, non è corretto confrontare il codice che genera oggetti di eccezione con 45 variabili di stato all’interno di codice che restituisce un intero negativo per ogni errore.

Non sto cercando di creare un caso a favore o contro le eccezioni C ++ solo in base a quale si potrebbe eseguire più velocemente. Ho sentito che qualcuno ha recentemente affermato che il codice che utilizza le eccezioni deve essere eseguito con la stessa rapidità del codice basato sui codici di ritorno, una volta preso in considerazione tutto il codice contabile aggiuntivo che sarebbe necessario per controllare i valori restituiti e gestire gli errori. Cosa mi manca?