Articles & Books

A Recap on User Defined Literals--Jonathan Boccara

Are you using them?

A Recap on User Defined Literals

by Jonathan Boccara

From the article:

User defined literals were introduced in C++11, evolved in C++14 and C++17, and are a nice way to write more expressive code.

The general idea behind user defined literals is that they allow to write a value and tack on a term describing what this value represents. For example:

auto const quantity = 42_bottles_of_water;

In this expression, 42 is the value and _bottles_of_water is the user defined suffix. The expression as a whole is a user defined literal.

A common usage of user defined literals is to represent units, but they can also be used to add meaning to values in more general contexts.

Here is how to write user defined literals in C++11, C++14 and C++17...

C++20 Coroutines — Complete* Guide--Šimon Tóth

Learn to use them.

C++20 Coroutines — Complete* Guide

by Šimon Tóth

From the article:

C++20 brought us initial support for coroutines. In this article, we will go over several examples of coroutines that build upon each other. Word of warning, though, the support in C++20 is mainly targeted at library implementors. C++23 should be bringing additional support that should cover at least the most common use cases...

C++20 Coroutine Iterators--Martin Bond

The series continue.

C++20 Coroutine Iterators

by Martin Bond

From the article:

In my first blog post about C++20 Coroutines I introduced the concepts behind a synchronous or generator style coroutine and developed a template class to support coroutines for any data type.

In this post I’ll add an iterator to the template to support the range-for loop and iterative algorithms. You may want to review that post before reading this one but the following code should act as a reminder about how to write and use a coroutine to read two floating point values into a data structure for subsequent analysis...

Find your dream C++ job at the Meeting C++ online job fair!

Next week is the 3rd online C++ job fair organized by Meeting C++. Attendees have the chance to talk to 8 C++ employers, more companies are welcome to join the event until next week! You can already submit your CV/resume via the upload form at Meeting C++ with the sponsors of the event.

Find your dream C++ job next week!

by Jens Weller

From the article:

The 3rd edition of the Meeting C++ online job fair is next week on September 28th & 29th!

Each of the events lasts 3 hours in which you can hop from table to table to meet with different employers! Right now you are able to already submit your application via the CV/resume sharing form with the 3 companies sponsoring the event. The event will be hosted for the first time on Hubilo, which features a lounge as the main event part. On Tuesday the event in in the European Afternoon, which is also great for folks from Asia/Oceania to join, while the event on wednesday evening (CEST) is easier to join for folks from the Americas and Europe/Africa.

C++20 Coroutines--Martin Bond

A first step.

C++20 Coroutines

by Martin Bond

From the article:

There seems to be a lot of confusion around the implementation of C++20 coroutines, which I think is due to the draft technical specification for C++20 stating that coroutines are a work in progress so we can’t expect full compiler and library support at this point in time.

A lot of the problems probably arise from the lack of official documentation about working with coroutines. We have been given C++ syntax support for coroutines (the co_yield and co_return) but without all of what I consider full library support. The standard library has hooks and basic functionality for supporting coroutines, but we must incorporate this into our own classes. I anticipate that there will be full library support for generator style coroutines in C++23.

The C++20 specification is obviously looking to provide support for parallel (or asynchronous) coroutines using co_await, which makes the implementation of a simpler generator style synchronous coroutines more complex. The implementation requirements for our coroutines utilises a Future and Promise mechanism similar to the std::async mechanism for asynchronous threads.

If you are a Python or C# developer expecting a simple coroutine mechanism, you’ll be disappointed because the C++20 general purpose framework is incomplete. Having said that, there are many blogs and articles on the web that include a template class that supports generator style coroutines. This blog contains a usable coroutine template and example code after discussing what a coroutine is...

C++20 Concepts — Complete Guide--Šimon Tóth

Helping the users.

C++20 Concepts — Complete Guide

by Šimon Tóth

From the article:

One of the well deserved common complaints about C++ is the low quality of compiler errors. Both GCC and Clang made a lot of progress to improve the situation in the past 10 years, but templated code is one area where they can’t really help...