C++20 is Done!
Houra!
C++20 is Done!
From the article:
C++20, the most impactful revision of C++ in a decade, is done!
September 13-19, Aurora, CO, USA
October 25, Pavia, Italy
November 6-8, Berlin, Germany
November 3-8, Kona, HI, USA
By Adrien Hamelin | Feb 18, 2020 01:07 PM | Tags: community
Houra!
C++20 is Done!
From the article:
C++20, the most impactful revision of C++ in a decade, is done!
By Adrien Hamelin | Feb 18, 2020 01:03 PM | Tags: community
ACCU’s Overload journal of February 2020 is out. It contains the following C++ related articles.
Overload 155 is now available
From the journal:
Members and Remembrances.
Remembering things can be difficult. Frances Buontempo reminisces on routes to erudition.A line-to-line conversion from Node.js to Node.cpp.
Dmytro Ivanchykhin, Sergey Ignatchenko and Maxim Blashchuk show how we can get a 5x improvement in speed.The Path of Least Resistance.
Python’s modules and imports can be overwhelming. Steve Love attempts to de-mystify the process.Quick Modular Calculations(Part 2).
The minverse algorithm previously seen is fast but has limitations. Cassio Neri presents two alternatives.A Secure Environment for Running Apps?.
Getting apps from the app store is easy. Alan Griffiths considers this from a security perspective.Afterwood.
The centre half is more than a sporting term. Chris Oldwood shows us why.
By Andrey Karpov | Feb 14, 2020 05:22 AM | Tags: typos quality copy-paste code review bugs
The article might be of interest for authors of books, articles, and C++ coding standards. Based on the given material, you can discuss questions of C++ code quality and ways how to reduce the likelihood of errors' occurence.
Zero, one, two, Freddy's coming for you
by Andrey Karpov
From the article:
This post continues the series of articles, which can well be called «horrors for developers». This time it will also touch upon a typical pattern of typos related to the usage of numbers 0, 1, 2. The language you're writing in doesn't really matter: it can be C, C++, C#, or Java. If you're using constants 0, 1, 2 or variables' names contain these numbers, most likely, Freddie will come to visit you at night. Go on, read and don't say we didn't warn you.
By Adrien Hamelin | Feb 12, 2020 02:59 PM | Tags: basics
How do you do it?
Reverse For Loops in C++
by Carlos Buchart
From the article:
As we saw when working on dynamic bitsets, it can be useful to traverse a collection backwards, from its last element to its first one.
It would be nice to be able to use C++11 range for loops to iterate backwards. But unfortunately, there is no such reverse range-for: range-for only works forwards.
Let’s see how to traverse a collection backwards by using a range for loop...
By Adrien Hamelin | Feb 12, 2020 02:57 PM | Tags: community
Did you know them?
Five Awesome C++ Papers for the Prague ISO Meeting and C++20 Status
by Bartlomiej Filipek
From the article:
Continuing the tradition for other ISO C++ Meetings, I prepared a blog post where you’ll learn about:
- The current status of C++20
- an overview about the Prague ISO C++ Meeting (10th till 15th February 2020)
- a few interesting papers that are worth reading
Let’s start!
By Adrien Hamelin | Feb 12, 2020 02:53 PM | Tags: c++20
What do you think?
Concepts in C++20: An Evolution or a Revolution?
by Rainer Grimm
From the article:
Let me conclude my series to concepts with this meta-post. Are concepts an evolution or a revolution in C++? The answer to this question bothered me quite a time...
By Adrien Hamelin | Feb 11, 2020 12:40 PM | Tags: basics
Quick A: It is possible.
Recently on SO:
Setting a vector equal to {};
It's valid (since C++11).
std::vector
has an overloaded operator= takingstd::initializer_list
.
By Adrien Hamelin | Feb 11, 2020 12:35 PM | Tags: intermediate
How do you do it?
Various Ways of Applying a Function to the Elements of a Collection in C++
by Jonathan Boccara
From the article:
Applying a function to each element of a collection of object is a basic use case of manipulating collections, in C++ or anywhere else for that matter...
By Adrien Hamelin | Feb 11, 2020 12:31 PM | Tags: c++20
Concepts continued.
C++20: Define the Concept Regular and SemiRegular
by Rainer Grimm
From the article:
When you want to define a concrete type that works well in the C++ ecosystem, you should define a type that "behaves link an int". Formally, your concrete type should be a regular type. In this post, I define the concepts Regular and SemiRegular...
By Corentin Jabot | Feb 7, 2020 11:45 AM | Tags: c++23
SG-11, the study group charged of all things concurrency and parallelism made forward progress and sent the proposal to LEWG - with the hope of landing a future revision in the C++23 draft. This is rather big news given that this work has been brewing for about a decade.
A Universal I/O Abstraction for C++
by Corentin Jabot
From the article:
The year is 2020 and even consummer CPUs feature double digits number of cores, storage offers 10GB/s read speeds and networks have to accommodate ever-growing traffic.
For a long time, the C++ committee seemed to think that either async file I/O didn’t make sense or was fundamentally irreconcilable with networking. This belief would lead to two inter-incompatible APIs in the standard, which would be a nightmare in term of usability (aka ASIO and AFIO).
It seems that there is finally a way to resolve these divides:
io_uring offers very high performance I/O which doesn’t discriminate on device type.
Sender Receiver provides the composable, low-cost, non-allocating abstraction while offering a simple mental model for asynchronous operations lifetime.
Coroutines make asynchronous i/o dead simple for the 99% use case.
Asynchronous Networking is nice.Asynchronous I/O is better.
AWAIT ALL THE THINGS!