Tooling & Build
Lessons in this group, roughly in build order:
- preprocessor-macros — The preprocessor is a textual pass that runs before the compiler, rewriting the source via include,…
- header-source-separation — C++ splits code into headers (.h/.hpp, declarations the compiler shares) and source files (.cpp,…
- build-systems-cmake-make — A build system turns source files into binaries by tracking dependencies and invoking the compiler/linker…
- package-managers-vcpkg-conan — vcpkg and Conan fetch, build, and expose third-party C++ libraries with their transitive dependencies,…
- debuggers-gdb-lldb — gdb (GNU) and lldb (LLVM) are interactive symbolic debuggers that stop a running program at chosen points…
- sanitizers-asan-ubsan-tsan — Sanitizers are compiler-inserted runtime checks (in GCC and Clang) that detect memory errors, undefined…
- static-analysis-clang-tidy-cppcheck — Static analyzers inspect source code without running it, flagging bugs, undefined behavior, and style…
- profilers-perf-valgrind — Profilers measure where a program spends time or memory at runtime; perf samples real hardware counters…
- unit-testing-googletest-catch2 — GoogleTest and Catch2 are C++ frameworks for writing and running automated unit tests, providing assertion…
- modules-c-20 — C++20 modules replace textual include with a compiled, importable interface unit, giving real…