Concept clusters
Related ideas that live chapters apart, pulled onto one page — every way to own memory, every container and when to pick it, and more.
Every way to pass an argument
By value, by reference, by const reference, by pointer, as a view, or by handing ownership over. What each promises, and which to pick.
10 concepts →
Every way to own memory
Plain values, containers, unique_ptr, shared_ptr, weak_ptr and borrowing. Who ends each object's life, and how to choose.
11 concepts →
Every way to report an error
Exceptions, std::optional, std::expected, std::variant, and the error codes they replace. Which one fits which kind of failure.
8 concepts →
Every standard container, and when to pick it
array, vector, string, deque, list, map, set and their unordered twins, with the one question that picks between them.
11 concepts →
Every tool for finding a bug
Compiler errors and warnings, static analyzers, sanitizers, the debugger and tests. What each one sees, and which to reach for first.
11 concepts →
Every way to bring in a library
FetchContent, vcpkg, Conan, an installed package, or a C library you wrap yourself. How each gets the code into your build.
9 concepts →