C++ Weekly - Ep 416 - Moving From C++11 to C++14
Summary
TLDRJason Turner explique dans cette vidéo comment migrer du code C++11 vers C++14. Il détaille les améliorations apportées comme la déduction automatique du type de retour ou l'amélioration des fonctions constexpr. Il montre comment intégrer la bibliothèque de tests Catch2 et comment simplifier le code grâce aux nouvelles fonctionnalités du C++14. La vidéo se conclut sur les perspectives offertes par le passage au C++17 dans de prochains épisodes.
Takeaways
- 😀 The speaker is migrating a C++ project from C++11 to C++14
- 📘 C++14 offers some bug fixes over C++11 like auto return type deduction
- 🛠 C++14 is not a major revision but helps clean up some C++11 issues
- 👷♂️ The speaker manually handled the C++11 to C++14 migration instead of using automated tools
- 📚 The speaker moved to using the Catch2 testing framework with C++14 support
- 🔢 Catch2 provides unit testing functionality like test cases and assertions
- 📐 The speaker made more functions constexpr to allow compile-time execution
- 💡 The speaker simplified some code by using C++14's implicit move on return
- 🤝 The speaker exposed some internal functions publicly as free functions
- ✅ The resulting C++14 code is slightly cleaner and smaller than the C++11 version
Q & A
Quel est le sujet principal de la vidéo?
-La mise à jour graduelle d'un projet de code C++ de C++98 à C++14.
Quel outil Jason Turner suggère-t-il d'utiliser pour transformer automatiquement le code de C++11 à C++14?
-ClangTidy's Modernize.
Quel framework de test unitaire Jason Turner décide-t-il d'utiliser?
-Catch2.
Quels sont les principaux avantages de C++14 par rapport à C++11 selon Jason Turner?
-C++14 corrige certains bugs de C++11 et améliore des fonctionnalités comme la déduction automatique du type de retour.
Jason Turner transforme-t-il certaines fonctions en fonctions constexpr. Pourquoi?
-Oui, pour pouvoir les utiliser à la compilation en plus de l'exécution, et bénéficier d'optimisations.
Quel changement de style de code Jason Turner adopte-t-il en passant à C++14?
-Il utilise les types de retour trailing.
Pourquoi Jason Turner déplace-t-il certaines fonctions de l'en-tête vers le fichier d'implémentation?
-Parce qu'il estime que le monde extérieur n'a pas besoin de les voir.
Que pense Jason Turner de l'avertissement de ClangTidy concernant le mouvement automatique?
-Il pense que c'est erroné car il bénéficie de la RVO dans ce cas.
Quel effet positif Jason Turner voit-il à déclarer certaines fonctions en ligne?
-Cela permet de les inline automatiquement, évitant les appels de fonction.
Quelle tendance Jason Turner remarque-t-il concernant la taille du code en passant de C++98 à C++14?
-Le code devient un peu plus petit à chaque mise à jour du langage.
Outlines
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowMindmap
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowHighlights
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowTranscripts
This section is available to paid users only. Please upgrade to access this part.
Upgrade Now5.0 / 5 (0 votes)