TimelineCpp20CoreLanguage

std::span in C++20: Bounds-Safe Views for Sequences of Objects

/
In my seminar, I often hear the question: How can I safely pass a plain array to a function? With C++20,…
TimelineCpp20CoreLanguage

volatile and Other Small Improvements in C++20

/
Today, I complete my tour through the C++20 core language features with a few small improvements. One…
TimelineCpp20CoreLanguage

New Attributes with C++20

/
With C++20, we got new and improved attributes such as [[nodiscard("reason")]], [[likely]], [[unlikely]],…
TimelineCpp20CoreLanguage

More Lambda Features with C++20

/
Lambdas in C++20 can be default-constructed and support copy-assignment when they have no state. Lambdas…
TimelineCpp20CoreLanguage

More Powerful Lambdas with C++20

/
Thanks to C++20, lambdas have become more powerful. From the various lambda improvements, template parameters…
TimelineCpp20CoreLanguage

Various Template Improvements with C++20

/
Admittedly, I present in this post a few minor improvements to templates and C++20 in general. Although…
TimelineCpp20

Solving the Static Initialization Order Fiasco with C++20

/
According to the FAQ of isocpp.org is the static initialization order fiasco "a subtle way to crash…
TimelineCpp20

Two new Keywords in C++20: consteval and constinit

/
With C++20, we get two new keywords: consteval and constinit. consteval produces a function executed…
TimelineCpp20

Designated Initializers

/
Designated initialization is an extension of aggregate initialization and empowers you to directly initialize…
TimelineCpp20

C++20: Optimized Comparison with the Spaceship Operator

/
In this post, I conclude my miniseries on the three-way comparison operator with a few subtle details.…