• Philip Chimento's avatar
    maint: Fix header includes once and for all · 01920362
    Philip Chimento authored
    Previously #include statements were a bit of a mess across the codebase.
    This commit is the result of a pass by the IWYU (Include What You Use)
    tool, which suggests headers to add or remove based on what is in the
    file, and can also suggest forward-declaring classes instead of
    including their headers, if they are only used as a pointer in a
    particular file. Cleaning this up should in general speed up compile
    IWYU isn't perfect, it produces a number of false positives, so we don't
    try to automate this process and we don't accept all of its
    recommendations. We do add a script and configuration file to the tools/
    directory so that IWYU can be every so often in the future.
    We also clean up all the includes according to a consistent style, which
    is now described clearly in the C++ style guide.