Advanced C++
Courses
Modern C++ is built on a few load-bearing ideas that the language never states out loud. Each skill below is a short, problem-first lesson; when you want the full treatment, every node links down to a deep-dive page. Solve your way across the tree.
Practice questions
Drill the whole bank; answer 13 to pass.
In int x = 5; int& r = x;, which expression below is an lvalue?
Skill map
Each node is a skill; an arrow means "learn this first." Deep-dive links go to the full pages.
lvalues, rvalues, xvalues — what they are and the one test that tells them apart (can you take its address?).
Compile-time polymorphism: function and class templates, instantiation, and where the error messages come from.
Anonymous functions that carry state. Capture by value vs reference, and the closure type behind the syntax.
Stealing instead of copying. std::move as a cast, the move constructor, and the moved-from state.
Resource lifetime tied to object lifetime. Deterministic destructors, LIFO teardown, exception safety for free.
The five special members that move together — and the Rule of Zero that lets you write none of them.
unique_ptr, shared_ptr, weak_ptr — RAII and move semantics combined into ownership you can read off the type.