I&#x27;ve used this for years. It takes a bit of work to get it working well on a codebase, but I find it worthwhile.<p>Refactoring often involves moving functionality between header files, which can mean fixing up the includes in a large number of other files. IWYU makes this a lot easier. IWYU does require the code to build before it works, but this can usually be easily gotten after a refactor by making one header file temporarily include the other.<p>I have, a couple times, modified templated code so it wouldn&#x27;t confuse IWYU, as that is easier than maintaining pragmas correcting IWYU in the files that call the templated code.