Let’s continue with what is changing in C++23. This time, let’s look at the three changes related to the chrono library. The first two are related to std::format and using locales, and the last one...
Do engineering teams really resemble sports teams?
“We are one big family!” - so many developers have heard that at various workplaces. Some people like the comparison, but probably many more don’t. And no matter whether you like it or not, it’s si...
Two cases when forward declaring is not enough
Let me share two cases when I had to include some header files instead of just using forward declarations. I was surprised by both at first. As you will see, one was a simple overlook, but the othe...
Quo vadis this blog?
I’ve been writing this blog since the end of 2016. After about half a year, I found my ideal schedule. At least one article per week. That means that I’ve been publishing a post for about 350 weeks...
When and how variables are initialized? - Part 4
For the last couple of weeks, we’ve been learning about the different forms of initializations in C++. As a reminder, we covered so many different forms of initializations. In part 1, we covered th...
When and how variables are initialized? - Part 3
For the last couple of weeks, we’ve been learning about the different forms of initializations in C++. This quest is motivated by a bug I discovered after a compiler update in a code base that I ma...
When and how variables are initialized? - Part 2
During the last two weeks, we saw a bug related to uninitialized values and undefined behaviour, we listed the different kinds of initializations in C++ and we started to more detailed discovery wi...
When and how variables are initialized? - Part 1
Recently, I shared a story with you about a bug, about a manifestation of undefined behaviour a compiler upgrade uncovered. There we briefly looked into why a member was left uninitialized, but the...
Upgrading the compiler: undefined behaviour uncovered
Not so long time ago, I already mentioned the differences between the different kinds of initializations in my article, Struct Initialization. In the coming weeks, I’m going to revisit the topic. ...
Should we move from fundamental types?
In this blog post, we are going to discuss the intersection of move semantics and fundamental types. Should we move values of fundamental types? Or can we even move them in the first place? Let’s d...