Advanced~3h

Modern C++

Everything here compiles

Which is the difficulty. A moved-from string, an iterator held across an append, a lambda that captured a dead local — every one of those builds without a word, and the only thing between them and a learner is whether somebody read them properly. Five judgements, drilled until they arrive unasked.

Modules
6
Drills
11
Build steps
0
Time
~3h

Walk out able to

Read unfamiliar C++ and say who owns each resource, what a move left behind, which handle that call just killed, and what the pipeline will yield.

What you judge

01

Owners and handovers

Which handle owns it, and what a move leaves behind.

02

Containers and handles

The promise you needed, and what a mutation killed.

03

Lambdas and captures

What the brackets took, and whether it outlives them.

04

Lazy pipelines

What a view yields, and when the work actually runs.

The pitch

What you practise, and what you leave with

Not an artifact — a reflex. Forty lines of unfamiliar C++, five verdicts, and nothing on the page naming the rule.

You will practise

  • Smart pointers, counts and cycles
  • Moves, and which member actually ran
  • Containers, and what a mutation invalidated
  • Captures, pipelines, and writing the line

Afterwards you can

  • Pick the handle a situation asks for
  • Say what a moved-from object is now
  • Name which handles that call invalidated
  • Read a pipeline and say what comes out

Modules

6 modules, 26 items

Lessons explain one idea. Drills repeat it until it sticks. Build steps make something that exists afterwards.

  1. 1

    Say who owns it

    ~37 min

    Name the owner of any resource, and count the owners at any line.

    • LessonName the owner, and what frees it9 min
    • LessonCount the owners, break the ring8 min
    • DrillPick the handle the situation asks for9 min
    • DrillCount the owners at the last line11 min
  2. 2

    Move it, and know what is left

    ~34 min

    Say what a moved-from object is, and which special member a line calls.

    • LessonSay what the source is afterwards9 min
    • DrillRead the type, call the source9 min
    • LessonSay which special member ran6 min
    • DrillName the member that runs10 min
  3. 3

    Pick it, then keep your handles

    ~36 min

    Choose a container by its promise, and say which handles a mutation killed.

    • LessonChoose by the promise, not by habit7 min
    • DrillChoose by the promise you need10 min
    • LessonSay which handles the call killed8 min
    • DrillSay whether the handle survived11 min
  4. 4

    Capture exactly what you meant

    ~34 min

    Say what a lambda captured, when, and whether it outlives what it refers to.

    • LessonRead the brackets as a declaration8 min
    • DrillPredict what the closure held10 min
    • LessonWhere the closure goes decides it6 min
    • DrillSay whether the closure outlives it10 min
  5. 5

    A pipeline is a recipe

    ~35 min

    Read a pipeline, say what it yields, and say when the work actually happens.

    • LessonSay when the pipeline actually runs8 min
    • DrillRead the pipeline, say what comes out11 min
    • DrillSay when the work happened10 min
    • LessonA view keeps nothing of its own6 min
  6. 6

    Write it, then read it cold

    ~30 min

    Write the modern spellings from memory, then read one file for five verdicts.

    • DrillWrite the modern C++ line9 min
    • LessonWhat the caller is left holding5 min
    • LessonWhich member the archive calls4 min
    • LessonWhat the prune loop does4 min
    • LessonThe counter it hands out4 min
    • LessonWhat the view sees4 min

It compiles. Now say what it does.

The first item is free. ~3h of focused work, at your own pace.

Advanced~3h6 modules