March 2021

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

The series continue.

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

by Raymond Chen

From the article:

Last time, we created an awaitable signal that can be awaited multiple times. We noted that one problem with the implementation is that the object couldn’t be copied: Everybody has to await the same object, which can create lifetime issues...

return first example--Marius Elvert

Clarifying.

return first example

by Marius Elvert

From the article:

It seems my “return first” post was not as enlightening as I had hoped. It was posted on reddit, and while the majority of commenters completely missed the point, it wasn’t really clear for those that did not just read the title. Either way, I am to blame for that – the examples and my reasoning were not very conclusive. So let me try clearing up the confusion with a better example...

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

Harnessing the power of coroutines.

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

by Raymond Chen

From the article:

C++/WinRT asynchronous activities can be awaited only once. This is consistent with their intended usage pattern, which is for an application to start the activity, co_await the result, and then continue.

But maybe you want something like a Win32 event, where any number of people can co_await the event, and then once it is signaled, all the awaiters are resumed...

C++ Concepts: More than Syntactic Requirements--Jonathan Boccara

A new tool to simplify usage.

C++ Concepts: More than Syntactic Requirements

by Jonathan Boccara

From the article:

After years and years of expectation, concepts have finally made it in C++20.

Concepts are descriptions in code of a set of expressions that must be valid with a given type. Those are syntactic requirements. But there is more to concepts than that: concepts also have semantic requirements.

Before getting into that, here is a recap of what concepts are. If you’re already familiar with concepts you can skip to the section on semantic requirements...

My tutorial and take on C++20 coroutines--David Mazières

Detailed and interesting.

My tutorial and take on C++20 coroutines

by David Mazières

From the article:

Over the last 25 years, I’ve written a lot of event-driven code in C++. A typical example of event-driven code is registering a callback that gets invoked every time a socket has data to be read. Once you have read an entire message, possibly after many invocations, you parse the message and invoke another callback from a higher layer of abstraction, and so forth. This kind of code is painful to write because you have to break your code up into a bunch of different functions that, because they are different functions, don’t share local variables...

Next steps for Clang Power Tools--Horatiu Prica

Were you using them?

Next steps for Clang Power Tools

by Horatiu Prica

From the article:

We are happy to announce that Clang Power Tools is now entirely free for everyone while keeping it open-source on GitHub. We had a blast these past two years, working full-time on making Clang Power Tools better and bringing to fruition its code modernization mission...