URL: https://linuxfr.org/users/small_duck/journaux/de-retour-de-conference Title: De retour de conférence Authors: small_duck Date: 2024年07月14日T23:57:18+02:00 License: CC By-SA Tags: c++ et conférence Score: 33 Je reviens de la conférence [C++ On Sea](https://cpponsea.uk/), dans la riante bourgade de Folkestone, à côté de Douvres. Mon employeur bien aimé nous ayant signifié qu'il voulait bien payer la conf mais qu'il fallait quand même bosser un peu de temps en temps, nous avons eu droit à 1 journée chacun, et j'ai sélectionné le vendredi. Alors, l'endroit est surprenant. En arrivant sur la place en haut de la falaise, j'ai vu une sorte de petit kiosque abritant un café. Eh bah c'est là dedans, car il faut descendre un escalier, et on se retrouve dans un décor de vieux pub avec une vague odeur de moisi en prime, et de gigantesques salles à flanc de falaises avec vue imprenable sur la mer (enfin, la vue aurait été imprenable si il ne flottait pas comme ruminant qui urine). Mais honte à moi de me focaliser sur de basses considérations matérielles, nous étions venus pour qu'on nous cause de C++, nous avons été servis ! D'abord, une présentation de l'état de l'art en ce qui concerne les modules C++20 et l'intégration aux outils de build. Eh bah on n'est pas sortis des ronces. En effet, il faut en fait précompiler chaque module que l'on utilise, en particulier des logiciels tiers, et ceci pour chaque combinaison Car les modules, qui semblent ne fournir pas grand chose de plus que les en-têtes précompilées des années 2000, ajoutent beaucoup de complexité, car il faut aller construire la fameuse en-tête précompilée pour chaque combinaison d'options de compilation que l'on utilise pour les unités de translation qui incluent ledit module, et s'assurer que l'on construit tout bien dans l'ordre. Quand aux bibliothèques qui ne fournissaient qu'un fichier d'entête, voilà que maintenant il faut compiler à la fois le module, et le fichier objet correspondant, puisque le module compilé ne contient pas tout le code nécessaire. Complexité++, avantages--, c'est ce que j'avais retenu, mais cette conférence le confirme. Ensuite, on est montés dans les tours avec une présentation sur la manière d'écrire une fonction "max" de plus en plus subtile. J'ai appris avec joie l'existence de [std::cmp_less](https://en.cppreference.com/w/cpp/utility/intcmp) qui permet d'effectuer correctement des comparaisons avec des types entiers différents. L'orateur a ensuite vrillé avec l'introduction d'un meilleur [std::common_type](https://en.cppreference.com/w/cpp/types/common_type), puis d'un type template spécial pour représenter un temporaire, dans le but de résoudre un problème un peu subtil lorsque l'on fait par exemple le max d'un min, et qui peut causer le retour d'une référence sur un temporaire. L'orateur s'est ensuite lâché en critiquant la décision du C++ d'introduire les références, mais Rust en a pris pour son grade aussi. Troisième présentation, cette fois ci beaucoup plus soft, sur les styles de codage, et en particulier l'application bête et méchante de certaines règles mal comprises. Rien de révolutionnaire, mais plaisant tout de même, et j'en ai retiré une idée intéressante, qui est d'automatiser au maximum son style de codage. Ce qui nous amène naturellement à la présentation suivante... Sur les outils clang qui permettent de visualiser, de chercher voire de réusiner en se servant de l'AST d'un programme. L'orateur a démontré l'inadéquation des outils syntactiques de type grep et sed pour travailler avec du code, et comment clang-query peut permettre de chercher des motifs particuliers dans une base de code à l'aide d'une requête s'appuyant sur l'AST. Cerise sur le gâteau, [Godbolt](https://godbolt.org/), l'IDE en ligne ultime, permet d'afficher l'AST d'un programme, ce qui aide à préparer sa requête. L'intégration à clang-tidy pour ajouter de nouveaux outils de reformatage ou de vérification statique est possible, mais nécessite quand même de forker et recompiler clang-tidy (ou d'écrire du python, mais c'est impensable). Et finalement, la présentation de fin, Klaus Iglberger, gourou du C++, qui nous a fait un topo sur le design et sur son nouveau cheval de bataille, l'effacement de type. Sa démonstration, basée sur l'implémentation du bon vieux problème de l'affichage des formes géométriques via l'héritage à la papa, puis l'approche fonctionnelle utilisant std::variant, puis l'approche sémantique de valeur et effacement de type, était brillante. Ça s'est fini au pub (un vrai pub, cette fois ci), puis dans le train de retour vers Londres à causer avec tout un tas de gourous très sympas. On y retournera !

AltStyle によって変換されたページ (->オリジナル) /