Articles & Books

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

The series continue.

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

by Raymond Chen

From the article:

Last time, we developed a library for building awaitable synchronization objects. I noted that when the coroutines are released, they are resumed in sequence, which means that one coroutine can prevent others from progressing. Let’s resume them in parallel...

Job related results from the Meeting C++ community survey

Taking a look at the job related questions from the Meeting C++ community survey.

Job related results from the Meeting C++ community survey

by Jens Weller

From the article:

I started a blog series about the results for 2020 of the Meeting C++ Community survey. As next week is the second online C++ Job fair, I thought I take a look at the job related questions.

This time all graphs show the result of 2020 on the left and the current result for 2021 on the left. So you can compare and see a few first changes to 2020. Mostly the results are similar though, most questions have so far around ~200 answeres in 2021. If this trend continues, 2021 is going to collect again around 1-1.5k answers per Question it seems.

Lets start with what is your job title today?

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

A new series.

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

by Raymond Chen

From the article:

So far, we’ve been looking at how we could build a one-shot event that can be used with co_await. There are other types of synchronizations objects you may want to use with coroutines, so let’s write a library for creating all sorts of awaitable synchronization objects...

Parameter Passing in C and C++--Scott Wolchok

Let's go down to the metal.

Parameter Passing in C and C++

by Scott Wolchok

From the article:

Now that we know how to read assembly language, we can talk about how parameter passing works at the machine level and its consequences for writing faster code. We will focus on x86_64, but ARM64 works in a roughly similar way...

Concise Result Extraction in Modern C++--David Gorski

Template magic.

Concise Result Extraction in Modern C++

by David Gorski

From the article:

A popular idiom in functional programming is the use of sum types to express results or optional values. When a function returns, it either succeeded and we get the result, or it failed and we have an error on our hands. This is a pattern in Modern C++ as well, enabled by standard library types such as std::variant and std::optional. In this article we will explore how to improve the ergonomics of handling multiple results and potential error values...

Lazy Futures with Coroutines--Rainer Grimm

Another one.

Lazy Futures with Coroutines

by Rainer Grimm

From the article:

Based on the coroutines-based implementation of a simple future in my last post "Implementing Simple Futures with Coroutines", I want to go today one big step further. I analyze the workflow of the simple future and make it lazy...

Creating a co_await awaitable signal that can be awaited multiple times, part 4--Raymond Chen

The series continue.

Creating a co_await awaitable signal that can be awaited multiple times, part 4

by Raymond Chen

From the article:

Last time, we created an awaitable signal that can be awaited multiple times, operating entirely in user mode. However, it did perform memory allocations, and that could result in low-memory exceptions. Furthermore, it used a std::vector, and pushing a value onto the vector could take a long time if the vector needs to be reallocated...