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.…
TimelineCpp20

C++20: More Details to the Spaceship Operator

/
The compiler performs cleverly when it generates all six comparison operators. Ultimately, you get intuitive…