C++ 17
Première version du standard de
C++
à laquelle j'ai personnellement contribué, C++ 17
était vu par la plupart des gens comme la prochaine « grosse » mise à jour après
C++ 11. Certains éléments
attendus pour ce standard (les concepts,
les modules, les coroutines) n'ont
pas été finalisés à temps pour la livraison du document, et devront attendre à
C++ 20.
Bien que ceci soit triste, il demeure que C++ 17
est une mise à jour signifiante à plusieurs égards, en particulier pour ce qui
est de la bibliothèque standard. À mes yeux, C++ 17
est une mise à jour « plaisir de programmer », avec plusieurs ajustement qui
transforment l'expérience de programmation.
- En 2015,
Bjarne Stroustrup a proposé une liste de jalons clés qu'il faudrait selon lui atteindre avec C++ 17 :
- Série de Tony Tables, par Tony van Eerd, soit des tables
comparatives avant / après pour mettre en valeur ce que C++ 17
apporte comme impact dans la pratique des programmeuses et des
programmeurs :
https://github.com/tvaneerd/cpp17_in_TTs/blob/master/ALL_IN_ONE.md
- Texte de 2015 par Matt Newport qui met de
l'avant que C++ 17 est le langage dont il a
besoin pour écrire de meilleurs jeux vidéos :
http://blog.mattnewport.com/why-c17-is-the-new-programming-language-for-games-i-want/
- En 2016,
Jens
Weller donne la liste de ce qui semble susceptible de faire partie de
C++ 17 :
https://meetingcpp.com/index.php/br/items/final-features-of-c17.html
- Présentation de 2016 par
Michael Wong, à propos des éléments clés qui s'annoncent pour C++ 17 :
https://www.codeplay.com/portal/c17-all-final-features-from-oulu-in-a-few-slides
- Une liste des éléments clés de C++ 17,
tenue à jour sur Reddit :
http://stackoverflow.com/questions/38060436/what-are-the-new-features-in-c17
- Liste des éléments clés de C++ 17, tenue à
jour par Bartlomiej Filipek :
http://www.bfilipek.com/2017/01/cpp17features.html
- Présentation de ce que contiendra C++ 17,
par JF Bastien :
https://github.com/jfbastien/what-is-cpp17
- Article de Sergio De Simone en 2016 sur ce
que contiendra C++ 17 :
https://www.infoq.com/news/2016/07/cpp17-feature-list-complete
- En 2016,
Jens
Weller discute de C++ 17 et de ses
spécifications techniques, des documents complémentaires permettant
d'utiliser des mécanismes envisagés pour le langage mais pas encore
formellement adoptés, le tout dans le but de gagner un peu d'expérience à
leur contact :
http://meetingcpp.com/index.php/br/items/c17-and-its-technical-specifications.html
- Bref tour d'horizon de quelques nouveaux éléments de la bibliothèque
standard livrés avec C++ 17, proposé par
Marius Bancilla en 2016 :
http://mariusbancila.ro/blog/2016/11/25/new-standard-library-features-in-visual-c-2017-rc/
- Tour d'horizon sommaire de C++ 17, proposé
en 2016 par David Bolton :
http://insights.dice.com/2016/12/15/breaking-down-current-state-c-17/
- En 2016, Phil Nash explique qu'à son avis,
C++ 17 sera bien meilleur que les gens ne le
croient :
http://www.levelofindirection.com/journal/2016/12/28/c17-why-its-better-than-you-might-think.html
- Une sorted_view<T>, illustration de ce
qu'il est possible de faire avec C++ 17, proposée par Nick Athanasiou en
2017 :
https://ngathanasiou.wordpress.com/2017/01/11/a-sorted-view/
- Texte de Rainer Grimm en 2017, portant sur
ce que C++ 17 et
C++ 20
apportent de neuf à la multiprogrammation :
http://www.modernescpp.com/index.php/multithreading-in-c-17-and-c-20
- Ce que C++ 17 apporte de nouveau/ de différent :
- Les changements au comportement du mot clé
auto
et des valeurs entre
accolades, par Marius Bancilla en 2017 :
http://mariusbancila.ro/blog/2017/04/13/cpp17-new-rules-for-auto-deduction-from-braced-init-list/
- Textes de Bartlomiej Filipek :
- courte liste d'ajustements et de suppressions aux fonctionnalités du
langage avec C++ 17, proposé en
2017 :
http://www.bfilipek.com/2017/05/cpp17-details-fixes-deprecation.html
- éléments du langage qui ont été clarifiés, texte de
2017 :
http://www.bfilipek.com/2017/06/cpp17-details-clarifications.html
- les ajustements aux templates
avec C++ 17, texte de
2017 :
http://www.bfilipek.com/2017/06/cpp17-details-templates.html
- quelques simplifications apportées au langage
avec C++ 17, texte de
2017 :
http://www.bfilipek.com/2017/07/cpp17-details-simplifications.html
- la bibliothèque <filesystem>, texte de
2017 :
http://www.bfilipek.com/2017/08/cpp17-details-filesystem.html
- les déclinaisons parallèles des algorithmes standards, texte de
2017 :
http://www.bfilipek.com/2017/08/cpp17-details-parallel.html
- outils divers, texte de 2017 :
http://www.bfilipek.com/2017/09/cpp17-details-utils.html
- sommaire et petit bonus, en 2017 :
http://www.bfilipek.com/2017/09/c17-in-detail-summary-bonus.html
- exemple de code fait à l'aide de C++ 17,
texte de 2018 :
https://www.bfilipek.com/2018/07/menu-cpp17-example.html
- quelques aspects mineurs mais sympathiques de C++ 17,
texte de 2020 :
https://www.bfilipek.com/2019/08/17smallercpp17features.html
- comment C++ 17 bénéficie de ce que
Boost a mis de l'avant, textes en tant qu'invité sur le blogue de
Jonathan Boccara
en 2019 :
- les très puissants outils de conversion que sont
to_chars() et from_chars(), texte
de 2019 :
https://www.bfilipek.com/2019/11/tochars.html
- Liste des changements de C++ 14
vers C++ 17, compilés par Thomas
Köpppe :
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0636r0.html
- En 2017, Egor Bredikhin fait l'inventaire
de plusieurs nouveautés avec C++ 17 :
https://www.viva64.com/en/b/0533/
- La perspective de
Herb Sutter
sur C++ 17 :
- Diapositives de la présentation de
Jason
Turner sur l'impact de C++ 17 dans son
produit, ChaiScript (votre évaluation peut bien sûr différer de la
sienne) :
https://github.com/CppCon/CppCon2017/blob/master/Tutorials/Practical C++17/Practical C++17 - Jason Turner - CppCon 2017.pdf
- En 2018, Kacper Kołodziej décrit ses particularités de
C++ 17
préférées :
https://kacperkolodziej.com/programming/my-favourite-cpp17-language-features.html
- Textes de Marius Bancila en 2018 :
- Cheminer de C++ 11
à C++ 17, un texte de
2018 par Michael Chourdakis :
https://www.codeproject.com/Articles/1221623/From-Cplusplus-to-Cplusplus-A-Walkthrough
- En 2018, un auteur invité sur le blogue de
Jonathan Boccara, qui signe « jft », présente trois
caractéristiques de C++ 17 qu'il estime
particulièrement utiles :
https://www.fluentcpp.com/2018/06/19/3-simple-c17-features-that-will-make-your-code-simpler/
- Texte de 2017 par Julian Templeman qui
discute de mécanismes utiles de C++ 17 :
https://www.oreilly.com/ideas/c++17-upgrades-you-should-be-using-in-your-code