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.
Just updated: The C++ Standard Library: What every professional C++ programmer should know about the C++ standard library.
Thanks to C++20, lambdas have become more powerful. From the various lambda improvements, template parameters for lambdas are my favorite ones.
Hunting
Today 4514
Yesterday 6193
Week 10707
Month 32381
All 12110590
Currently are 173 guests and no members online
Kubik-Rubik Joomla! Extensions
Read more...
Read more...