Articles & Books

Don’t Make Your Interfaces *Deceptively* Simple--Jonathan Boccara

A good thing to think about.

Don’t Make Your Interfaces *Deceptively* Simple

by Jonathan Boccara

From the article:

Just because we can provide an interface doesn’t mean that we should.

At least this is one of the takeaways that I got from from Howard Hinnant’s opening keynote at Meeting C++ 2019.

In this impressive keynote, Howard made a presentation about <chrono> and the host of features it brings in C++20. But beyond showing us how to use <chrono>, Howard explained some of the design rationale of this library.

Those are precious lessons of design, especially coming from someone who had a substantial impact on the design of the standard library. I believe we can apply those practices to our own code when designing interfaces.

So, just because we can provide an interface doesn’t mean that we should. To illustrate what this means in practice, let’s go over two examples in the C++ standard library...

C++ coroutines: Getting started with awaitable objects--Raymond Chen

So many possibilities!

C++ coroutines: Getting started with awaitable objects

by Raymond Chen

From the article:

Coroutines were added to C++20, and Lewis Baker has a nice introduction to them.

  • Coroutine theory.
  • Understanding operator co_await.
  • Understanding the promise type.

But I’m going to write another one, taking a more practical approach: The least you need to know to accomplish various coroutine tasks...

C++20: Concepts, the Details--Rainer Grimm

The series continue.

C++20: Concepts, the Details

by Rainer Grimm

From the article:

In my last post C++20: Two Extremes and the Rescue with Concepts, I gave the first motivation for concepts. Concepts put semantic constraints on template parameters. Today, I present different use-cases for concepts in a compact form...

Named Template Arguments--Barry Revzin

It's coming!

Named Template Arguments

by Barry Revzin

From the article:

C++, unlike many other programming languages, doesn’t have named function parameters or named function arguments. I hope it will someday, it’s a language feature that I find has large benefits for readability. Until then, in C++20, we actually have the ability to do a decent approximation not only of named function arguments but also named template arguments...

Meeting C++ 2019 summary--Schneide blog

Trip report.

Meeting C++ 2019 summary

by Schneide blog

From the article:

A fellow colleague and me had the pleasure to attend this years Meeting C++ 2019 from November 14th-16th in Berlin. It was my second visit and a quite interesting and insightful one. Therefore I would like to give a short summary and share some of my take-aways...

How C++17 Benefits from Boost Libraries, Part Two--Bartlomiej Filipek

The series continue.

How C++17 Benefits from Boost Libraries, Part Two

by Bartlomiej Filipek

From the article:

As you know, Boost libraries give us a vast set of handy algorithms, types and features that we don’t have in the Standard Library. Many functionalities were “ported” into core C++. For example, in C++11 we got std::regex, threading and smart pointers..