December 2017
C++17 standardized
ISOInternational Organization for Standardization — publishes specs including C, C++, and Fortran standards. published C++An extension of C with classes, templates, and RAII — dominant for games, browsers, and systems code.17 in December 2017 — adding `std::optional`, `std::variant`, structured bindings, and parallel algorithms.
What it was for
C++An extension of C with classes, templates, and RAII — dominant for games, browsers, and systems code.17 brought everyday ergonomics game engines and finance code needed: optional values without pointer sentinels, `if (auto x = map.find(key))` bindings, and filesystem library in the standard. It bridged the gap between C++An extension of C with classes, templates, and RAII — dominant for games, browsers, and systems code.11's foundation and C++An extension of C with classes, templates, and RAII — dominant for games, browsers, and systems code.20's larger features.
Why it's here
C++An extension of C with classes, templates, and RAII — dominant for games, browsers, and systems code.17 delivered practical quality-of-life features used across industry codebases.
Why it mattered
Optional, variant, and structured bindings reduced boilerplate and bug classes.
What it solved
C++An extension of C with classes, templates, and RAII — dominant for games, browsers, and systems code.11 was powerful but verbose; teams needed smaller, composable standard-library tools.
Media
- ImageC++
Jeremy Kratz, Public domain, via Wikimedia Commons
Related
- C++11 standardizedSeptember 1, 2011
- C++20 standardizedDecember 2020
- C++98 standardizedSeptember 1, 1998