March 2021

Creating a task completion source for a C++ coroutine: Producing a result--Raymond Chen

The series continue.

Creating a task completion source for a C++ coroutine: Producing a result

by Raymond Chen

From the article:

We’ve been looking at creating different types of awaitable synchronization objects. This time, we’ll create something analogous to what C# calls a Task­Completion­Source and what PPL calls a task_completion_event. For lack of a better name, I’m going to call it a result_holder...

Ticket Maps--Anthony Williams

Simple and efficient.

Ticket Maps

by Anthony Williams

From the article:

It has been an increasingly common scenario that I've encountered where you have some ID that's monotonically increasing, such as a subscription or connection index, or user ID, and you need your C++ program to hold some data that's associated with that ID value. The program can then pass round the ID, and use that ID to access the associated data at a later point...

Creating other types of synchronization objects that can be used with co_await, part 10--Raymond Che

The series continue.

Creating other types of synchronization objects that can be used with co_await, part 10

by Raymond Chen

From the article:

We’ve been looking at creating different types of awaitable synchronization objects. This time, we’re going to create something that doesn’t exist in the normal Win32 repertoire: An event where you can wait for the event to be in a desired state, either set or reset. Normal Win32 events allow you to wait for them to be set, but you cannot wait for Win32 event to be reset. The usual workaround is to have two events...

constexpr Dynamic Memory Allocation, C++20--Bartlomiej Filipek

Constexpr all the things.

constexpr Dynamic Memory Allocation, C++20

by Bartlomiej Filipek

From the article:

constexpr has become a major feature for compile-time programming in C++. Introduced in a simple form in C++11 evolved into almost another “sub-language”, an alternative to regular template code. In C++20 you can even use std::vector and std::string in constexpr context!

In this article, I’d like to discuss constexpr memory allocations, a building block for std::vector. Let’s see how this feature works and see its limitations...

Italian C++ Conference 2021 Call for sessions

The Italian C++ Conference 2021 is now putting together its program, and they want you to speak on C++. If you have something to share, check out their

Call for Sessions

by Marco Arena

About the conference:

The Italian C++ Conference 2021 will be online on June 19 and will host live sessions and networking on Remo.

The Italian C++ Conference is the biggest and most successful event organized by the Italian C++ Community and it is an environment where professionals, companies and students meet to share experience about C++ development and practices.

Since the first edition back in 2016, the conference has hosted amazing speakers like Andrei Alexandrescu, Walter Brown, Michael Wong, James McNellis, Bartosz Milewski, Ivan Čukić, Jens Weller, Phil Nash, Anastasia Kazakova, Peter Sommerlad, Rainer Grimm, Marc Goodner, Vittorio Romeo, and many more.

The Italian C++ Conference is put on by the Italian C++ Community and is open to anyone who wishes to be there either as a presenter or an attender.

The event will be free to attend.

The Call for Sessions will close on April 11 at 23:59 CET.

C++20 by Rainer Grimm [Leanpub PDF/iPad/Kindle]

Will you read it?

C++20

by Rainer Grimm

From the article:

My book C++20 is both: a tutorial and a reference for the C++20 standard. It teaches you C++20 and provides you with the details of this new thrilling C++ standard. The thrilling factor is mainly due to the big four of C++20...