04 / Leitfäden

Modernes C++-Recovery-Handbuch

Modern C++ Recovery Guide

Ein kurzes, praktisches Wiki für jemanden, der etwa 2008 C++ gelernt hat und schnell wieder in modernes C++17/20 einsteigen möchte.

Wie man dieses Wiki benutzt

Gehe die Seiten in der vorgegebenen Reihenfolge durch. Versuche nicht, alles auswendig zu lernen. Für jedes Thema solltest du verstehen:

  1. Welches Problem wird damit gelöst?
  2. Was bevorzugt modernes C++?
  3. Was sind die üblichen Fehlermodi?
  4. Kann ich aus dem Gedächtnis ein kleines Beispiel schreiben?

Empfohlener Pfad

Phase 1 — Kern neu aufbauen

  1. Mental Model: Modern C++
  2. Compilation, Linking, and Project Shape
  3. Object Lifetime, Stack, Heap, and RAII
  4. Ownership, Raw Pointers, and Smart Pointers
  5. Value Semantics and Rule of 0/3/5

Phase 2 — Moderne Sprachfeatures

  1. Move Semantics
  2. Const, References, and Parameter Passing
  3. STL Containers and Algorithms
  4. Modern Syntax: auto, Lambdas, enum class, constexpr
  5. Optional, Variant, String View, Span, Filesystem, Chrono
  6. Templates and Generic Programming

Phase 3 — Ernsthaftes C++

  1. Error Handling and Exception Safety
  2. Concurrency: Threads, Mutexes, Atomics
  3. Undefined Behavior and Memory Safety
  4. Performance Fundamentals
  5. Tooling: CMake, Debuggers, Sanitizers, Testing

Phase 4 — Einen Anwendungsbereich wählen

  1. Domain Tracks
  2. Project Ideas
  3. Quick Checklist
  4. Grounding and References

Schnellster Praktischer Plan

Wenn Sie einen 30‑Tage‑Sprint planen:

  • Woche 1: RAII, Besitz, Smart Pointers, Wertsemantik.
  • Woche 2: Move‑Semantik, STL, Lambdas, moderne Syntax.
  • Woche 3: CMake, Debugging, Sanitizer, Tests, Grundlagen der Parallelität.
  • Woche 4: ein ernsthaftes Projekt erstellen.

Standard-Ziel-Stack

Wenn Sie nicht wissen, wo Sie anfangen sollen, streben Sie an:

C++17/20 + Linux + CMake + gdb/lldb + sanitizers + GoogleTest/Catch2 + Python zur Automatisierung.

Diese Kombination bietet Ihnen eine langlebige technische Grundlage und hält Sie produktiv.

Grundlagen

Dies ist ein kurzer Wiederherstellungsleitfaden, kein Ersatz für den Standard oder ein vollständiges Lehrbuch. Für autoritative Referenzen und Versionshinweise siehe Grounding and References.

2 min read

01 — Modern C++ Mental Model

Modern C++ is not “C with classes.” It is a language for building efficient systems using explicit ownership, deterministic cleanup, value semantics, and z

2 min read

02 — Compilation, Linking, and Project Shape

C++ is usually built in separate translation units. Understanding the build process saves hours of confusion.

2 min read

03 — Object Lifetime, Stack, Heap, and RAII

C++ is a lifetime language. To write good C++, you must know when objects are created, when they are destroyed, and who owns resources.

2 min read

04 — Ownership, Raw Pointers, and Smart Pointers

Modern C++ code should make ownership obvious.

2 min read

05 — Value Semantics and Rule of 0/3/5

Modern C++ prefers types that behave like values. A good type can be copied, moved, stored in containers, returned from functions, and destroyed safely.

2 min read

06 — Move Semantics

Move semantics let C++ transfer resources instead of copying them.

2 min read

07 — Const, References, and Parameter Passing

Function signatures should communicate ownership, mutation, and optionality.

2 min read

08 — STL Containers and Algorithms

The standard library is the default toolbox. Modern C++ code should use containers and algorithms instead of manual memory and hand-written loops everywher

2 min read

09 — Modern Syntax: auto, Lambdas, enum class, constexpr

Use `auto` when the type is obvious or verbose.

2 min read

10 — Modern Library Types

Use when a value may or may not exist.

2 min read

11 — Templates and Generic Programming

Templates let you write code that works with many types while still being compiled into efficient type-specific code.

2 min read

12 — Error Handling and Exception Safety

C++ has multiple error handling styles. The right one depends on the domain.

2 min read

13 — Concurrency: Threads, Mutexes, Atomics

Concurrent code lets multiple things happen at once, but introduces data races, deadlocks, ordering issues, and debugging pain.

2 min read

14 — Undefined Behavior and Memory Safety

Undefined behavior means the C++ standard places no requirements on what happens. The program may appear to work, crash, corrupt data, or become vulnerable

2 min read

15 — Performance Fundamentals

C++ gives you control over performance, but you must measure. Guessing is unreliable.

2 min read

16 — Tooling: CMake, Debuggers, Sanitizers, Testing

Modern C++ skill includes tooling. Real C++ work is not just language syntax.

2 min read

17 — Domain Tracks

C++ becomes most valuable when attached to a serious domain. Do not learn endless syntax in isolation.

2 min read

18 — Project Ideas

A serious project beats passive study. Pick one project that forces you to use modern C++ features, tooling, debugging, and domain concepts.

2 min read

19 — Quick Checklist

Use this as a fast self-assessment.

2 min read

20 — Grounding and References

Authoritative references used to ground the Modern C++ Recovery Guide.

00 / Der Agent

Die Chatbox, die im Blog wohnt.

running on Cloudflare · free tier

Eine winzige JS-Insel, die einen Cloudflare Worker anspricht, der Antworten von einem kostenlosen Nemotron-Endpunkt streamt. Kein Ursprungsserver. Keine Datenbank. Die statische Seite bleibt statisch — nur diese eine Box atmet.