{"id":111462,"date":"2023-11-12T21:10:26","date_gmt":"2023-11-12T19:10:26","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/iwyu-0-21"},"modified":"2023-11-12T21:10:26","modified_gmt":"2023-11-12T19:10:26","slug":"iwyu-0-21","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/iwyu-0-21","title":{"rendered":"IWYU 0.21","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>La version d'IWYU (ou include-what-you-use) est sortie, un programme permettant de d\u00e9tecter les inclusions redondantes et de sugg\u00e9rer les #include manquants dans votre code C\/C++.<\/p>\n<p>\u00abInclure ce que vous utilisez\u00bb signifie que pour chaque symbole (type, variable, fonction ou macro) utilis\u00e9 dans foo.cc, soit foo.cc, soit foo.h doit inclure un fichier .h exportant la d\u00e9claration de ce symbole. L'outil include-what-you-use est un programme d'analyse des fichiers #include dont le but est de d\u00e9tecter les violations de cette approche et de fournir des recommandations pour les corriger. Le programme utilise les biblioth\u00e8ques Clang et, g\u00e9n\u00e9ralement, une nouvelle version signifie compatibilit\u00e9 avec la derni\u00e8re version de Clang.<\/p>\n<p>L'objectif principal d'include-what-you-use est de supprimer les #include superflus. Pour ce faire, il est n\u00e9cessaire de d\u00e9terminer quels #include ne sont pas n\u00e9cessaires dans ce fichier (tant pour .cc que pour .h) et, si possible, de remplacer #include par une d\u00e9claration pr\u00e9alable.<\/p>\n<h2>Principales modifications<\/h2>\n<ul>\n<li>Compatibilit\u00e9 avec Clang 17.<\/li>\n<li>Am\u00e9lioration de l'analyse des alias de types (typedef et using).<\/li>\n<li>Am\u00e9lioration de l'analyse des alias d'espaces de noms (namespace xyz = foobar).<\/li>\n<li>Meilleure prise en charge des d\u00e9clarations anticip\u00e9es \u00e9tendues (typedef struct Foo Bar;).<\/li>\n<li>Am\u00e9liorer le traitement de \u00abl\u2019auto-cast\u00bb et des types de retour des fonctions, en particulier lors de l'utilisation de types de mod\u00e8les complexes.<\/li>\n<li>Ajout d'une nouvelle pragma IWYU : always_keep, permettant de marquer un en-t\u00eate pour qu'il soit toujours conserv\u00e9, o\u00f9 qu'il soit inclus.<\/li>\n<li>Utilisation automatique des correspondances pour les builtins libc++, si libc++ est la biblioth\u00e8que standard active.<\/li>\n<li>Am\u00e9lioration des correspondances pour les en-t\u00eates libc++ et posix.<\/li>\n<\/ul>\n<p>Source : <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/development\/17412413\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u044b\u0448\u0435\u043b \u0440\u0435\u043b\u0438\u0437 IWYU (\u0438\u043b\u0438 include-what-you-use), \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u044b\u0435 \u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 #include \u0432 \u0432\u0430\u0448\u0435\u043c \u043a\u043e\u0434\u0435 \u043d\u0430 C\/C++. &laquo;\u0412\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0448\u044c&raquo; \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430 (\u0442\u0438\u043f\u0430, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u043b\u0438 \u043c\u0430\u043a\u0440\u043e\u0441\u0430), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u0432 foo.cc, \u043b\u0438\u0431\u043e foo.cc, \u043b\u0438\u0431\u043e foo.h \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c .h-\u0444\u0430\u0439\u043b, \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430. \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 include-what-you-use &ndash; \u044d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 #include \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-111462","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u044b\u0448\u0435\u043b \u0440\u0435\u043b\u0438\u0437 IWYU (\u0438\u043b\u0438 include-what-you-use), \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u044b\u0435 \u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 #include \u0432 \u0432\u0430\u0448\u0435\u043c \u043a\u043e\u0434\u0435 \u043d\u0430 C\/C++. \u00ab\u0412\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0448\u044c\u00bb \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/news\/iwyu-0-21\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47IWYU 0.21 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u044b\u0448\u0435\u043b \u0440\u0435\u043b\u0438\u0437 IWYU (\u0438\u043b\u0438 include-what-you-use), \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u044b\u0435 \u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 #include \u0432 \u0432\u0430\u0448\u0435\u043c \u043a\u043e\u0434\u0435 \u043d\u0430 C\/C++. \u00ab\u0412\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0448\u044c\u00bb \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/iwyu-0-21\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-11-12T19:10:26+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-11-12T19:10:26+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47IWYU 0.21 | ProHoster","description":"La version d'IWYU (ou include-what-you-use) est sortie, un programme permettant de d\u00e9tecter les inclusions redondantes et de sugg\u00e9rer les #include manquants dans votre code C\/C++. \u00ab Inclure ce que vous utilisez \u00bb signifie ceci : pour chaque.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/iwyu-0-21","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47IWYU 0.21 | ProHoster","og:description":"\u0412\u044b\u0448\u0435\u043b \u0440\u0435\u043b\u0438\u0437 IWYU (\u0438\u043b\u0438 include-what-you-use), \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u044b\u0435 \u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 #include \u0432 \u0432\u0430\u0448\u0435\u043c \u043a\u043e\u0434\u0435 \u043d\u0430 C\/C++. \u00ab\u0412\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0448\u044c\u00bb \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e.","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/iwyu-0-21","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2023-11-12T19:10:26+00:00","article:modified_time":"2023-11-12T19:10:26+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/111462","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=111462"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/111462\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=111462"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=111462"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=111462"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}