Tutorial su C++ Moderno
Questo tutorial ha lo scopo di fornire ai programmatori esperti un riferimento rapido alle nuove funzionalità di C++11/14/17/20. Copre miglioramenti nell'usabilità del linguaggio, ottimizzazioni in fase di esecuzione, nuovi contenitori, puntatori intelligenti e gestione della memoria, espressioni regolari, programmazione concorrente e una preview di C++20.
Panoramica del corso
Riepilogo del contenuto
Questo tutorial è stato progettato per fornire agli sviluppatori esperti un riferimento rapido alle nuove funzionalità di C++11/14/17/20. Il contenuto copre miglioramenti nell'usabilità linguistica, ottimizzazioni a runtime, l'utilizzo di nuovi contenitori, puntatori intelligenti e gestione della memoria, espressioni regolari, programmazione concorrente e una preview di C++20.
Fai rapidamente il punto su C++11/14/17/20 e attraversa la porta d'ingresso verso la programmazione moderna in C++.
Autore: 欧长坤 (Ou Changkun)
Ringraziamenti: Rilasciato sotto licenza CC BY-NC-ND 4.0, grazie a tutti i contributori GitHub e alla comunità correlata.
Obiettivi di apprendimento
- Identificare e verificare l'ambiente del compilatore C++ e l'architettura target utilizzando strumenti da riga di comando.
- Spiegare la compatibilità standard e la storia sovrapposta tra C (C89, C99, C11) e C++ (C++98, C++1x).
- Implementare il collegamento interlingua funzionale usando intestazioni
extern "C"e flussi di compilazione a più fasi. - Risolvere l'ambiguità dei puntatori con
nullptre implementare logica a tempo di compilazione conconstexpreif constexpr. - Semplificare dichiarazioni complesse con
auto,decltypee alias di tipo (using), garantendo un design orientato agli oggetti robusto conoverrideefinal. - Progettare codice altamente generico utilizzando template variadici, espressioni fold e deduzione dei parametri template non tipici.
- Definire e implementare espressioni Lambda con diversi modi di cattura (Valore, Riferimento, Espressione e Generico).
- Utilizzare
std::functionestd::bindper creare wrapper funzionali flessibili e applicazioni parziali di funzioni. - Classificare le espressioni in Lvalues, Prvalues e Xvalues, e applicare la semantica di spostamento per ottimizzare la gestione delle risorse della classe.
- Distinguere tra i modelli di memoria e i casi d'uso di
std::array(dimensione fissa, stack) estd::vector(dimensione dinamica, heap).