A short video from Prague: C++20 is here!
Here's a 9-minute taste of what it was like to be at the Prague meeting, with attendees talking about their favorite highlights of C++20...
September 13-19, Aurora, CO, USA
October 25, Pavia, Italy
November 6-8, Berlin, Germany
November 3-8, Kona, HI, USA
By Blog Staff | Feb 18, 2020 09:46 AM | Tags: None
Here's a 9-minute taste of what it was like to be at the Prague meeting, with attendees talking about their favorite highlights of C++20...
By Blog Staff | Feb 16, 2020 12:39 AM | Tags: None
A landmark release of C++:
Winter ISO C++ standards meeting (Prague)
by Herb Sutter
From the article:
C++20 is done! ...
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 Marc Gregoire | Feb 12, 2020 10:33 AM | Tags: None
On January 29th, 2020, the Belgian C++ Users Group had their next event sponsored by OMP. The slides and other material are now available online.
Slides of the 29th of January 2020 BeCPP Meeting
by Marc Gregoire
About the event:
- “Coroutines in C++20” by Johan Vanslembrouck
- “The evolution of the C++ Lambda” by Lieven de Cock
If you couldn't attend the event in person, or if you would like to go over the material again, you can download them from the BeCPP website.
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!