The main goal of this article is to share with you the new <spanstream> header, but we are going a bit beyond it. We won’t only discuss the motivations behind the proposal introducing this he...
C++23: Growing unicode support
The standardization committee has accepted (at least) four papers which clearly show a growing Unicode support in C++23. Let’s review what those papers cover. C++ Identifier Syntax using Unicode S...
Nonconform by Gergely Böszörményi-Nagy
When I went to university, I started to read a lot. After some time, the books we had at home didn’t satisfy my appetite and I started to buy lots of books. I kept buying books pretty much until we...
Struct initialization
This article is inspired by a compiler warning that I fixed recently. The warning is -Wmissing-field-initializers. This flag will report you potentially uninitialized fields. Sometimes it’s overly ...
C++: The most important complexities
It’s been about a year since I started to work for Spotify. That time I wrote a few articles about my job search experience. Among others, I shared how much I underestimated the importance of compl...
10x is easier than 2x by Dr. Benjamin Hardy
If you’ve been following my blog, you probably know that I’m a fan of Benjamin Hardy’s books. I already read and praised quite a few of them. 10x is easier than 2x is part of a series that he coaut...
Extern templates to reduce binary size
In my quest towards a smaller binary size, someone asked me if I considered extern templates. I did not. I didn’t even know about them. But I was more than happy for the suggestion and now here I a...
C++23: Removing garbage collection support
If we go through the list of C++23 features, we can stumble upon the notion of garbage collection twice. Once among the language and once among the library features. Both entries refer to the same ...
My battle against signed/unsigned comparison: the worst violations
We spent the last two weeks discussing the dangers of signed/unsigned comparisons. First, we discussed why it’s a problem in the first place, and how we can safely compare signed and unsigned types...
My battle against signed/unsigned comparison: the most usual violations
As we discussed last week, comparing numbers with different signs can be dangerous in C++. If you try to compare a signed with an unsigned integer, you might get a result that makes no sense if you...