Google non utilizza l'eccezione nel proprio codice C++. Per gli errori, usano una classe chiamata status che il programmatore deve controllare quando viene restituita da una funzione. Altrimenti il programma non si compila (link https://www.youtube.com/watch?v=NOCElcMcFik alle 41:34). Ho alcune domande:In che modo Google gestisce gli errori in C++
1) C'è qualche esempio di quella classe sul web liberamente disponibile?
2) Va bene per "void f()" che il lavoro con gli effetti collaterali che si trasformano in un "Stato f()". Ma cosa succede se la tua funzione restituisce già un valore? Google non consente il passaggio di riferimenti che non sono const, pertanto non è possibile modificare un oggetto Status a te assegnato. Quindi come fanno?
Grazie per il vostro aiuto.
questo suona un po 'come la classe di Rust [ 'std :: option'] (https://doc.rust-lang.org/std/option/). Il compilatore di Rust si spegnerà e si fermerà se non testerai i risultati di una funzione che restituisce quei tipi di oggetti. – tadman
@tadman: La mia ipotesi è che abbiano hackerato CLang per un simile comportamento. – InsideLoop
Se hai intenzione di lavorare per Google, sono sicuro che ti diranno come funziona la loro pazzia. Se no, perché ti importa? Basta scrivere C++ idiomatico e lasciarli occuparsi della propria sofferenza autoinflitta. –