Articles & Books

C++23’s Deducing this: what it is, why it is, how to use it

Useful new feature!

C++23’s Deducing this: what it is, why it is, how to use it

by Sy Brand

From the article:

Deducing this (P0847) is a C++23 feature which gives a new way of specifying non-static member functions. Usually when we call an object’s member function, the object is implicitly passed to the member function, despite not being present in the parameter list. P0847 allows us to make this parameter explicit, giving it a name and const/reference qualifiers...

Pass-by-value vs Pass-by-reference--James Mitchell

Complex world.

Pass-by-value vs Pass-by-reference

by James Mitchell

From the article:

Let’s dig into the age old question, should you pass-by-value or pass-by-reference in C++? (or by pointer in C)

This blog post is mostly a re-post of a reddit comment that I made on r/cpp about pass-by-value and pass-by-reference, with some minor improvements, to make it easier to reference and save.

The answer isn’t as easy as it might seem, it depends on the Application Binary Interface (ABI) and your use-cases, there isn’t a one size fits all answer, this is even more the case for anything which is built to be cross platform.

First it’s probably good to break the problem down into two parts (focusing solely on performance, ignoring readability and maintainability which should often be more important)

  • The language construct costs (copying, moving, etc)
  • Compiler implications (aliasing, pointer provenance, etc)
  • The ABI (the stack, registers, etc)...

Porting my first application from Qt5 to Qt6

An overview on the issues face when porting my first application to Qt6

Porting my first Application from Qt5 to Qt6

by Jens Weller

From the article:

Just this week I had the opportunity to recompile one of my Qt Applications to build it with Qt6. Here is some of the results.

The application in question manages parts of the conference, and hence is written in Qt for the UI and uses SQLite as datastorage, so Qt also used for this and as I learned for a few other things too...

C++20 Ranges Algorithms - sorting, sets, other and C++23 updates--Bartlomiej Filipek

The series continue.

C++20 Ranges Algorithms - sorting, sets, other and C++23 updates

by Bartlomiej Filipek

From the article:

This article is the third and the last one in the mini-series about ranges algorithms. We’ll look at some sorting, searching, and remaining algorithms. We’ll also have a glimpse of cool C++23 improvements in this area.

Let’s go...

Overload journal 169 - June 2022

The new Overload is out.

Overload journal 169 - June 2022

In the journal:

What Happened to Demo 13?
By Frances Buontempo
Making mistakes and forgetting are facts of life. Frances Buontempo tries to find ways to tackle this.

Performance Considered Essential
By Lucian Radu Teodorescu
We know that performance is important. Lucian Radu Teodorescu argues that it is actually the most important thing.

Compile-time Wordle in c++20
By Vittorio Romeo
Wordle is everywhere. Vittorio Romeo introduces wordlexpr, using compiler error messages to play the game.

ACCU 2022 Trip Reports
By Phil Nash and Dom Davis and Hannah Dee and Timur Doumler
The ACCU conference returned in hybrid mode this year. Several writers share their experiences.

Afterwood
By Chris Oldwood
Threads can mean many things. Chris Oldwood pulls a few to see what happens.

Design Patterns VS Design Principles: Factory method--Jonathan Boccara

Design decisions.

Design Patterns VS Design Principles: Factory method

by Jonathan Boccara

From the article:

Let’s examine another design pattern in our “Design Patterns VS Design Principles” series, where we relate design patterns to design principles. Today, we focus on the Factory method design pattern.

We’ll see the various forms the Factory method design pattern can take, the differences with the Abstract Factory method, and to which design principle the Factory method pattern relates to...