Constants are great. Types are great. Constants of a specific type are really great. This is why enum classes are just fantastic. Last year, we talked about why we should avoid using boolean funct...
Virtual functions and binary sizes
In the previous article of this series on binary sizes, we discussed how special functions’ implementations - or their lack of - influence the size of the generated binary. Our conclusion was that...
Special functions and binary sizes
These months, I try to better understand how our code affects binary sizes. Last week, we had a look into storage durations and memory allocations. This week, let’s have a look into special member ...
Deep vs shallow modules
I keep telling that I don’t post negative book reviews. It’s because no matter how much I dislike a book, I can be pretty sure that the author made a huge effort writing it. I have absolutely no re...
Object initialization and binary sizes
Let’s have this piece of code that generates a big binary. #include <array> struct Node { int a = 1, b = 1; }; std::array <Node, 10'000> a; int main() {} If you compile this p...
What's an executable and how is it structured
In this post, let’s have a look at how executables are generated, what are the most important executable formats and how they are structured. How executables are generated? In this section let’s ...
The run-time, compile-time, binary size triangle
Often we start software development, we only care about writing some code. Or actually about writing the most amount of code that is possible. We often don’t really know how to build C++ files, but...
The 8 best books I read in 2022
There is barely any day for me without reading a book. On days when I can’t read I really miss it. Sadly there were quite a few such days lately. It feels bad. It feels like my mind is hungry. When...
2022: Another great year!
It’s such a cliché to say that the year was busy. But it was. Probably it’d be better to say it was incredibly fruitful, even though I didn’t meet many of the goals I set for this year. Anyway, it...
Class templates versus constructor templates
I realized that this simple but important difference should be covered twice during the last year. Once when I wrote about how shared and unique pointers take their deleters, and once when I read T...