Articles & Books

Report from using std::cpp 2019

The statitistics.

Report from using std::cpp 2019

From the article:

On March, 7th, we had the sixth edition of using std::cpp (the C++ conference in Spain). The conference was again a on-day free event, and as every other year it was hosted at the Higher Polytechnic School of University Carlos III of Madrid in Leganés.

As many other years roughly 200 participants attended the conference. Most of the attendees were coming from industry...

C++17 STL Parallel Algorithms - with GCC 9.1 and Intel TBB on Linux and macOS--Paul Silisteanu

It's coming!

C++17 STL Parallel Algorithms - with GCC 9.1 and Intel TBB on Linux and macOS

by Paul Silisteanu

From the article:

GCC 9.1 has support for C++17 parallel algorithms by using the Intel TBB library. In this article, I will show you how to build Intel TBB from sources on your machine and how to sort a vector of random numbers in parallel using C++17 std::sort...

ACCU Trip report--Kate Gregory

Sweet and short.

ACCU Trip report

by Kate Gregory

From the article:

In early April I was lucky enough to go to Bristol in the UK for the annual ACCU conference. This has been an aspirational conference for me, one I attended before speaking at and am always delighted to attend. This year I was invited to keynote, and it turned out to be the closing keynote, which meant I was not done with all my talks until the conference was over! Nevertheless I enjoyed the week tremendously...

Curried Objects in C++--Jonathan Boccara

Abstraction to the rescue.

Curried Objects in C++

by Jonathan Boccara

From the article:

Curried objects are like facilitators. They consist in intermediary objects between a caller and a callee, and helps them talk to each other in a smooth way. This ability makes the code simpler and easier to read...

Top Ten Reasons To Send Your Developers to CppCon (or any C++ Conference)--Jon Kalb

So you should send them.

Top Ten Reasons To Send Your Developers to CppCon (or any C++ Conference)

by Jon Kalb

From the article:

Sending software engineers to conferences is both a time and money expense, but conferences exists because they provide value to attendees and companies that send them. Some of the value may be obvious, some may not. Here is a list of the top business reasons to send your developers to CppCon or any other C++ conference...

Quick Q: What are copy elision and return value optimization?

Quick A: a way to remove copying objects in certain case, improving performance and reducing the constraints on a class (no copy or move needed).

Recently on SO:

What are copy elision and return value optimization?

Copy elision is an optimization implemented by most compilers to prevent extra (potentially expensive) copies in certain situations. It makes returning by value or pass-by-value feasible in practice (restrictions apply).

It's the only form of optimization that elides (ha!) the as-if rule - copy elision can be applied even if copying/moving the object has side-effects...

Conference Report: ACCU 2019--Quentin Balland

Another one.

Conference Report: ACCU 2019

by Quentin Balland

From the article:

I had the pleasure to attend to the ACCU2019 at Bristol which was my first cpp centred conference (the first of a long series I hope :p) and it was amazing in a different aspect.


It is a 4 days conference that occurs every year between March and April in the Marriott hotel in Bristol.


Amazing people, very inclusive and easy to talk to everyone!

How to Write Safe and Expressive Multi-Threaded Code in C++11--Louis-Charles Caron

Did you think about that?

How to Write Safe and Expressive Multi-Threaded Code in C++11

by Louis-Charles Caron

From the article:

I started writing multi-threaded code two years ago. Two years and one day ago, I would start sweating at the sound of the the words thread and mutex. But after literally a few days of practice (and, I admit, a 3-day course on multi-threading and C++11), I figured the basic principles are quite understandable.

Typical multi-thread problems can be solved by using a handful of tools. Admittedly, complex problems are even more complex when they appear in multi-threaded code, but I did not happen to run into those yet.

Since C++11, one now finds the necessary multi-threading tools in the C++ standard library. Finally! We can write multi-threaded code in pure C++.

The multi-threading part of the C++11 library is functional: it is simple and to the point. However, it is nearly impossible to write clear and expressive multi-threaded code using only the C++11 tools. And when multi-threaded code is not clear, it tends not to be safe.

In this article, I introduce some multi-threading tools you will find in the C++11 standard library through a code example. Although simple, this example will clearly demonstrate the shortcomings of the C++11 standard library. Then, I present safe: a small header-only C++11 library I designed to make my multi-threaded code more expressive, and ultimately safer...

Handling errors is canceling operations--Andrzej KrzemieĊ„ski

Understand why it is done that way.

Handling errors is canceling operations

by Andrzej Krzemieński

From the article:

I actually covered this topic before, in this post, but given my recent experience I feel it needs reiterating and a bit of restructuring. It boils down to the observation that any error handling I have encountered — be it error codes, errno, exceptions, error monad — is about canceling operations that depend, directly or indirectly, on the function that reported failure. This has some consequences on how we look at our program flow and what principles we should follow when responding to failures in our programs...

The Rule of Zero in C++--Jonathan Boccara

What's your opinion?

The Rule of Zero in C++

by Jonathan Boccara

From the article:

Now that we’re clear on the Compiler-generated Functions, the Rule of Three and the Rule of Five, let’s put this to use to reflect on how to use the “= default” feature to have expressive and correct code...