Skip to main content
QUESTLINE

C++ Advanced

Reason about what the machine, the compiler, and other threads are actually doing: lifetime mechanics, generic library design, compile-time computation, lazy pipelines, hand-built coroutines — onward to the memory model, concurrency, allocators, performance, and production practice.

📜 74 lessons⚡ 0 challenges⏳ ~15 hours⭐ Beginner — no experience needed
Prerequisite course:C++ — Intermediate

Who this course is for

Engineers who finished C++ Intermediate (STL, RAII, move-semantics basics, introductory templates) and now want systems-level reasoning: the memory model, concurrency, performance engineering, and library architecture.

What you will be able to do

  • Predict object lifetime, value category, and initialization outcomes exactly, and debug code that violates them
  • Implement perfect forwarding, resource wrappers, and exception-safe moves; explain RVO and copy elision mechanically
  • Write generic libraries with specialization, variadic folds, if constexpr, NTTPs, and CTAD
  • Design concept-constrained APIs and read constraint-failure diagnostics efficiently
  • Move computation to compile time with constexpr/consteval/constinit and type traits
  • Build and debug range pipelines, write custom iterator-backed views, and avoid view-dangling bugs
  • Implement a coroutine generator from promise_type primitives and reason about coroutine lifetimes
  • Explain the C++ memory model and choose memory orderings with justification
  • Build thread pools, task runtimes, and concurrent queues with appropriate synchronization
  • Engineer memory layouts: arenas, pools, std::pmr, and data-oriented design
  • Optimize with evidence: measure, hypothesize, change, re-measure — with benchmark rigor
  • Diagnose and repair undefined behavior by class: dangling, overflow, aliasing, races
  • Debug like an operator: symbols, stack traces, minimization, logging and tracing design
  • Test like a sceptic: property-based, fuzz-style, deterministic concurrency, performance-regression tests
  • Build and link professionally: modern CMake targets, presets, visibility, LTO, CI matrices
  • Design for binary compatibility: ODR, ABI, symbol visibility, plugin boundaries
  • Write network services with framing, timeouts, and backpressure; audit and harden them
  • Architect at scale and operate services: boundaries, observability, graceful shutdown
  • Audit and harden systems code: injection-proof parsers, integer-overflow-safe arithmetic, hardened builds
  • Ship an integrated service core against an acceptance battery, deterministically verified
CHAPTER 1· 4 Waypoints

The Advanced Object Model

Value categories, storage duration, and initialization — the machinery every other advanced topic is defined in terms of. You will predict exact behavior before running anything.

CHAPTER 2· 4 Waypoints

Move Semantics Under the Hood

Forwarding references, reference collapsing, std::forward, guaranteed elision, and the noexcept that makes vector growth move — the mechanics beneath the syntax you already use.

CHAPTER 3· 5 Waypoints

Advanced Templates

Specialization, variadics, fold expressions, if constexpr, NTTPs, and CTAD — the techniques behind every serious generic library, each aimed at a real problem.

CHAPTER 4· 4 Waypoints

Concepts & Constrained APIs

requirements, ad-hoc constraints, subsumption, and diagnostics — design APIs whose misuse is a clear compiler error instead of a runtime surprise.

CHAPTER 5· 3 Waypoints

Compile-Time C++

constexpr, consteval, constinit, and type traits — move work from runtime to build time and let the compiler refuse invalid configurations.

CHAPTER 6· 4 Waypoints

Ranges & Lazy Pipelines

Views, adaptors, projections, and custom pipelines — transform data lazily, compose cleanly, and know exactly where view lifetimes bite.

CHAPTER 7· 4 Waypoints

Coroutines from First Principles

co_await, co_yield, promise_type, and the handles that drive them — build a generator with your own hands so async C++ never looks like magic again.

CHAPTER 8· 4 Waypoints

The C++ Memory Model

Data races, happens-before, atomics, and memory orderings — the formal backdrop that turns threading from folklore into engineering.

CHAPTER 9· 4 Waypoints

Advanced Concurrency

Threads, jthread, mutexes, condition variables, futures, and the design of a thread pool — build the plumbing every server owns.

CHAPTER 10· 4 Waypoints

Memory Architecture & Allocators

Where allocations really cost, how pmr arenas reshape ownership, and why data layout beats micro-optimization.

CHAPTER 11· 4 Waypoints

Performance Engineering

Measure first, optimize with evidence: allocation counts, stride costs, and algorithmic wins verified by deterministic graders.

CHAPTER 12· 4 Waypoints

Undefined Behavior & Defensive C++

The UB zoo, boundaries that make bad input impossible, and the sanitizer mindset that turns heisenbugs into test failures.

CHAPTER 13· 4 Waypoints

Advanced Debugging & Diagnostics

Debugger discipline, reading crash forensics, and shrinking giant failures into one-file repros — the incident-response toolkit.

CHAPTER 14· 4 Waypoints

Advanced Testing & Verification

Test pyramids for C++, property-based thinking, and mutation/fuzz testing that measure whether your tests can actually fail.

CHAPTER 15· 3 Waypoints

Advanced Build Systems

CMake targets and properties, Debug/Release flag engineering, presets, and the configuration values your code can see at compile time.

CHAPTER 16· 3 Waypoints

ABI, Linking & Compatibility

API vs ABI, name mangling, ODR, visibility — and the pimpl/extern-C/function-table patterns that let a shipped library evolve without breaking its binaries.

CHAPTER 17· 3 Waypoints

Networking & Systems

TCP is a byte stream: framing, robust parsing, timeouts, and backpressure — the protocol layer every high-performance service is built on.

CHAPTER 18· 3 Waypoints

Secure Systems Programming

The memory-safety and input-validation bug classes behind real CVEs — and the hardened implementations that close them, with regression tests as the deliverable.

CHAPTER 19· 3 Waypoints

Architecture & Production

Dependency inversion with real seams, event-driven decoupling, and configuration precedence — the structure that keeps large C++ systems changeable.

CHAPTER 20· 3 Waypoints

Capstone — High-Performance Service

Integrate the whole course in one deterministic service core: admission windows with provenance, an exact audit trail, and a ship gate that accepts nothing less.