In no specific order,
- Use include guards to prevent multiple inclusions
- Profile your build : Set build verbosity to compute/display build time
- Easy with metaprogramming : pick your battles
- One-class/One-file doesn’t scale well
- Use precompiled headers
- Use precompiled headers well : only include third party there, no file modified frequently
- Use external tools (SN-DBS, Incredibuild…)
- Set build verbosity to the minimal setting when you don’t want to profile
- See if the pImpl idiom can help