Modern C++ Standards: C++11 Through C++23
Prerequisites: Level 2 — Intermediate
"C++" has changed enormously since its original 1998 standard — each named revision below added enough that pre- and post-revision code can look like different languages:
- C++11 — the single biggest jump:
auto, lambdas, move semantics, smart pointers, range-based for loops. Most of Level 1 and 2 of this course is "C++11 or later" style. - C++14/17 — smaller refinements, plus structured bindings
(
auto [name, age] = ...) andstd::optional/std::variantin C++17. - C++20 — this course's baseline: concepts, ranges, coroutines, and modules (the next several lessons cover the first three).
- C++23 — the newest standard, with further standard library additions; compiler support is still catching up as of this course.
When reading older C++ code or tutorials, the standard being
targeted (-std=c++11 vs. -std=c++20) explains a lot of stylistic
differences that otherwise look inconsistent.