Ua hoʻokuʻu ʻia ʻo IWYU (a i ʻole e hoʻokomo i ka mea āu e hoʻohana ai), kahi papahana e ʻae iā ʻoe e ʻimi i nā mea ʻē aʻe a manaʻo i ka nalo ʻana #includes i kāu code C/C++.
"Hoʻokomo i kāu mea e hoʻohana ai" no kēlā me kēia hōʻailona (ʻano, hoʻololi, hana, a macro) i hoʻohana ʻia ma foo.cc, ʻo ka foo.cc a i ʻole foo.h pono e hoʻokomo i kahi faila .h e hoʻokuʻu aku i ka hoʻolaha o kēlā hōʻailona. ʻO ka mea hana hoʻokomo-ka-oe-hoʻohana he polokalamu ia no ka nānā ʻana i nā faila kumu no ka ʻimi ʻana i nā hewa o kēia ala a hana i nā manaʻo no ka hoʻoponopono ʻana. Hoʻohana ka papahana i nā hale waihona puke Clang a ʻo ka mea maʻamau ka hoʻokuʻu ʻana ʻo ia ka hoʻohālikelike ʻana me kahi mana hou o Clang.
ʻO ke kumu nui o ka hoʻokomo ʻana i ka mea āu e hoʻohana ai, ʻo ia ka wehe ʻana i nā #includes pono ʻole. No ka hana ʻana i kēia, pono ʻoe e noʻonoʻo i ka #includes ʻaʻole pono i kahi faila i hāʻawi ʻia (no ka .cc a me .h), a inā hiki, e hoʻololi i ka #include me kahi ʻōlelo mua.
Hoʻololi nui
- Kūpono me Clang 17.
- Hoʻomaikaʻi ʻia ka nānā ʻana o nā ʻano aliases (typedef a me ka hoʻohana ʻana).
- Hoʻomaikaʻi ʻia ka nānā ʻana o nā inoa inoa inoa (namespace xyz = foobar).
- Hoʻomaikaʻi i ke kākoʻo no nā ʻōlelo hoʻolaha i hoʻonui ʻia (typedef struct Foo Bar;).
- E hoʻomaikaʻi i ka lawelawe ʻana o "autocast" a me nā ʻano hoʻihoʻi hana, ʻoi aku ka nui o ka hana ʻana me nā ʻano hoʻohālike paʻakikī.
- Hoʻohui ʻia kahi pragma IWYU hou: mau_keep e hōʻailona i kahi poʻomanaʻo e mālama mau ʻia i nā wahi a pau i hoʻokomo ʻia.
- E hoʻohana 'akomi i nā palapala 'āina no nā libc++ i kūkulu ʻia inā ʻo libc++ ka waihona maʻamau.
- Hoʻomaikaʻi ʻia nā palapala palapala no libc++ a me nā poʻomanaʻo posix.
Source: linux.org.ru