May 2019

ReSharper C++ 2019.1 is released: Doctest support, more C++17 and C++20 features, and better for UE4

ReSharper C++ 2019.1 is just released! It brings Significant performance boosts, C++17 and C++20 features, support for Doctest, more flexible configuration for C++ naming and Clang-Tidy, and productivity features for Unreal Engine developers.

ReSharper C++ 2019.1: More Responsive, Better for Unreal Engine, and with New Language Features

by Anastasia Kazakova

From the article:

This year’s first major update includes the following changes and improvements:
  • Performance improvements, including better start times and quicker navigation actions
  • Visual Studio 2019 support
  • Unreal Engine 4 support
  • More steps towards C++17 and C++20 compliance
  • Updated naming and formatter settings
  • More flexible Clang-Tidy integration
  • Doctest support

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...

CppCast Episode 197: Reflection TS with David Sankel

Episode 197 of CppCast the first podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by David Sankel to discuss the C++ Reflection TS.

CppCast Episode 197: Reflection TS with David Sankel

by Rob Irving and Jason Turner

About the interviewee:

David Sankel is a Software Engineering Manager/TL at Bloomberg and an active member of the C++ Standardization Committee. His experience spans microservice architectures, CAD/CAM, computer graphics, visual programming languages, web applications, computer vision, and cryptography. He is a frequent speaker at C++ conferences and specializes in large-scale software engineering and advanced C++ topics. David’s interests include dependently typed languages, semantic domains, EDSLs, and functional reactive programming. He is the project editor of the C++ Reflection TS, a member of the Boost steering committee, and an author of serveral C++ proposals including pattern matching and language variants.

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...

ACCU 2019 Slides and Trip Report--Anthony Williams

Another one.

ACCU 2019 Slides and Trip Report

by Anthony Williams

From the article:

I attended ACCU 2019 a couple of weeks ago, where I was presenting my session Here's my number; call me, maybe. Callbacks in a multithreaded world.

The conference proper started on Wednesday, after a day of pre-conference workshops on the Tuesday, and continued until Saturday. I was only there Wednesday to Friday...