Domanda

Dopo aver letto questo famoso sfogo di Linus Torvalds, mi chiedevo quali siano effettivamente tutte le insidie ​​​​per i programmatori in C++.Non mi riferisco esplicitamente agli errori di battitura o al flusso di programma errato come trattato in questa domanda e le sue risposte, ma a errori di livello più alto che non vengono rilevati dal compilatore e non risultano in bug evidenti alla prima esecuzione, errori di progettazione completa, cose che sono improbabili in C ma che è probabile che vengano fatte in C++ da nuovi arrivati ​​che non lo fanno comprendere tutte le implicazioni del loro codice.

Accolgo con favore anche le risposte che sottolineano un enorme calo delle prestazioni laddove normalmente non ci si aspetterebbe.Un esempio di ciò che uno dei miei professori una volta mi ha detto riguardo a un generatore di parser LR(1) che ho scritto:

Hai utilizzato un po' troppe istanze di eredità e virtualità non necessarie.L'ereditarietà rende un progetto molto più complicato (e inefficiente a causa del sottosistema RTTI (inferenza del tipo di runtime)) e dovrebbe quindi essere utilizzato solo dove ha senso, ad es.per le azioni nella tabella di analisi.Poiché fai un uso intensivo di modelli, praticamente non hai bisogno dell'ereditarietà."

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top