C++ is known for things such as performance, expressiveness, the lack of a standard build system and package management, complexity and long compile times. The inability to iterate quickly is one of the biggest killers of productivity.
This talk is aimed at anyone interested in improving the last of these points — it will provide insights into why compilation (and linking) take so long for C++ and will then provide an exhaustive list of techniques and tools to mitigate the problem, such as:
- tooling and infrastructure — hardware, build systems, caching, distributed builds, diagnostics of bottlenecks, code hygiene;
- techniques — unity builds, precompiled headers, linking (static vs shared libraries);
- source code modification — the PIMPL idiom, better template use, annotations;
- modules — what they are, when they are coming to C++ and what becomes obsolete because of them.