Risposta breve: dipende dalle caratteristiche del C ++ che usi - E - se hai abilitato il compilatore a usarle.
Esempio specifico per supportare l'esempio precedente: Gestione delle eccezioni in C ++: con le istruzioni try, throw, catch. Alcuni compilatori dispongono di un'opzione della riga di comando per abilitare o disabilitare il supporto per la gestione delle eccezioni: il codice con try throw catch verrà compilato. Abilitare il supporto per la gestione delle eccezioni, anche senza usarlo, può far aumentare il binario compilato fino a un terzo in dimensioni rispetto a quando è spento. Quindi se la memoria per mantenere il tuo programma è scarsa e non usi la gestione delle eccezioni o trovi un altro modo per segnalare errori, allora disattiva questo nel compilatore.
La tua domanda si applica in particolare per i sistemi embedded real-time (es. elettronica di consumo, sistemi di controllo) e semi-embedded (cioè chioschi, telefoni cellulari, console di gioco) dove le risorse (tempo di CPU e RAM non sono così abbondanti come su un desktop ). Tuttavia, ho lavorato su 2 progetti in tempo reale incorporati in cui parte dello stack del software era scritta in C ++, una era in firmware dell'unità ottica (masterizzatori DVD / CD) e l'altra era un software di controllo multiplexor in fibra ottica.
Sono d'accordo con @mootinator che dipende da chi stai lavorando perché potrebbe avere un impatto sulla consegna del tuo progetto se i tuoi compagni di squadra hanno bisogno di stare al passo con il C ++.
C ++ può portare benefici di riutilizzo e manutenibilità tramite i concetti di programmazione orientata agli oggetti che fornisce.
Quindi potresti voler esaminare attentamente le prestazioni (velocità e memoria) del C ++ nel campo scelto. Una volta che sei sicuro di poter ancora utilizzare C ++ seguendo questa ricerca, devi quindi implementare e testare regolarmente per confermare che le esigenze di performance del tuo progetto sono ancora soddisfatte, in modo che non ci siano sorprese.