Stephen Kelly has many years of experience in Free Software and open source with significant contributions to KDE, CMake, and Qt over many years.
In the last few years, Clang has opened up new possibilities in C++ tooling for the masses. Tools such as clang-tidy and clazy offer ready-to-use source-to-source transformations. Available transformations can be used to modernize (use newer C++ language features), improve readability (remove redundant constructs), or improve adherence to the C++ Core Guidelines.
However, when special needs arise, maintainers of large codebases need to learn some of the Clang APIs to create their own porting aids. The Clang APIs necessarily form a more-exact picture of the structure of C++ code than most developers keep in their heads, and bridging the conceptual gap can be a daunting task.
This talk aims to introduce the tooling necessary to create specialist Clang-based refactoring aids, the practical steps needed to complete the tasks, and the APIs used to do so.