std::format in C++20
Today, I’m happy to present Peter Gottschling’s guest post to the new formatting library in C++20: std::format. Thanks to std::format, text formatting becomes in C++20 as easy as in Python.
This author has not written his bio yet.
But we are proud to say that Rainer Grimm contributed 656 entries already.
Today, I’m happy to present Peter Gottschling’s guest post to the new formatting library in C++20: std::format. Thanks to std::format, text formatting becomes in C++20 as easy as in Python.
Removing elements from a container or asking if an associative container has a specific key is too complicated. I should say it was because with C++20, the story changes.
Probably the most viral keyword in modern C++ is constexpr. With C++20, we have a constexpr std::vector and a constexpr std::string. Additionally, both containers can be manipulated with the constexpr algorithms of the Standard Template Library.
In my seminar, I often hear the question: How can I safely pass a plain array to a function? With C++20, the answer is quite easy: Use a std::span.
Last week, I launched a quiz. The price was it to win one of the five vouchers for the book “Modern C++ for Absolute Beginners” from Slobodan Dmitrović.
Is it possible to introduce C++ in 300 pages? Yes, it is. The book “Modern C++ for Absolute Beginners” from Slobodan Dmitrović proves it.
Today, I complete my tour through the C++20 core language features with a few small improvements. One interesting of these minor improvements is that most of volatile has been deprecated.
With C++20, we got new and improved attributes such as [[nodiscard(“reason”)]], [[likely]], [[unlikely]], and [[no_unique_address]]. In particular, [[nodiscard(“reason”)]] allows it to express the intention of your interface way clearer.
Do you know that PVS-Studio is integrated into the Compiler Explorer? If not, you should definitely read this guest post from Andrey Karpov including a promo code.
Lambdas in C++20 can be default-constructed and support copy-assignment when they have no state. Lambdas can be used in unevaluated contexts. Additionally, they detect when you implicitly copy the this pointer. This means a significant cause of undefined behavior with lambdas is gone.