Advanced¶
You ship C++ and want depth. This track covers the machinery: value categories and perfect forwarding, template metaprogramming and concepts, compile-time programming, the memory model and concurrency, coroutines, performance engineering, undefined behavior, idiomatic design patterns, ranges, and shipping libraries.
Prerequisites¶
Finish the intermediate track — or be fluent with RAII, smart pointers, the rule of five, templates, STL algorithms and lambdas, CMake, and a test framework.
Lessons¶
| # | Lesson | You'll learn |
|---|---|---|
| 1 | Move semantics & perfect forwarding | value categories, &&, forwarding references, std::forward, RVO |
| 2 | Variadic & advanced templates | parameter packs, fold expressions, type traits, SFINAE, CRTP |
| 3 | Concepts | requires, standard concepts, writing your own, overloading on constraints |
| 4 | constexpr & compile-time programming | constexpr/consteval/constinit, compile-time containers, static_assert |
| 5 | Concurrency: threads, mutexes & atomics | std::jthread, data races, std::mutex, condition variables, atomics, the memory model |
| 6 | Async, futures & coroutines | std::async, promises, thread pools, co_await/co_yield, std::generator |
| 7 | Performance & profiling | benchmarking, perf, cache effects, allocation, data-oriented design |
| 8 | Undefined behavior & sanitizers | what UB is, the common kinds, ASan/UBSan/TSan/MSan, static analysis |
| 9 | Design patterns, the C++ way | RAII everywhere, pimpl, type erasure, CRTP, policy-based design, visitors |
| 10 | Ranges & views | lazy pipelines, views, range adaptors, writing your own view |
| 11 | Libraries, ABI & packaging | static vs shared libs, symbol visibility, ABI stability, CMake export, vcpkg/Conan, modules |
| 12 | Capstone: parallel file indexer | a concurrent, benchmarked, sanitizer-clean application, end to end |
When you're done¶
Build the indexer capstone to the self-check bar: clean under ASan, UBSan, and TSan; benchmarked with a measured speedup; packaged as an installable CMake project. Then stop studying and go build something real.