You may already be hosting your code on GitHub, but do you know that GitHub provides a built-in Continuous Integration solution called GitHub Actions that is very easy to set up and free for public repositories? In this article I’m providing a crash course on what GitHub Actions are and how to use it for […]
C++ Get the RSS Feed
Content related to C++
See you in Berlin in November 2023?
In just a couple of months, there’s going to be not one, not two, not three, but four fantastic developer events in Berlin! We are not going to miss any of them, and so shouldn’t you. November 12-14: Meeting C++ If you are a C++ developer, do not miss the 2023 edition of Meeting C++. […]
Intro to C++ Coroutines: Concept
The time has come, fellow devs. We are on our way to uncover the newest concept of C++ language – Coroutines. They are already used by several programming languages, like C# async tasks and yield iterables, forming LINQ base; JS with awaitables, replacing the old way of making consecutive calls, that was hard to understand […]
Reverse Engineering Android Apps Join the dark side :)
Reverse engineering in general is a tricky business and sometimes not very orthodox. So, why bother to write this article? Well, sometimes reverse engineering is also for something good. It started when my wife dusted off her watch. We had a huge unpleasant surprise when we found that the companion app is not available anymore […]
Object Ownership
Last time we touched upon object lifetime and today we wrap up the basics with a bit of a spicy topic of object ownership. We covered the lifetime quirks, and we found out that manual memory management can be a nightmare, even if we new and delete in the correct order. There must be something […]
Object Lifetime
Last time we discussed Value Semantics. However, I missed one topic that is super important for a better understanding of basic building blocks of C++. Today, we are going to talk about an object. Without further ado, let’s dive deeper! Object What is an object? According to the C++ standard, part 3.9.8 under the name […]
Value Semantics
C++ is an old language. Many aspects of our programming styles have become habits that we do not think about too much today. In this blog, I’m going to address one major issue that has resulted from such habits and get you prepared for a new bright world of C++2b. So without further ado, let’s […]
Pimpl for Small Classes
The familiar solution for thick value classes that want to preserve binary compatibility is to use the pimpl pattern (private implementation), also known as d-pointer (pointer to data). In future versions of our class, we can freely change the contents of the pimpl (i.e. adding, removing, and/or modifying data members) but the binary compatibility of […]
FMA Woes
Floating-point math is hard, and compilers will exploit every language loophole to make our FP calculations go faster, sometimes with surprising results.
QObjects, Ownership, propagate_const and C++ Evolution Const Correctness in Qt Applications
A very common implementation pattern for QObject subclasses is to declare its child QObjects as data members of type “pointer to child.” Raise your hand No, keep your hand on your computer input device 🙂 Nod if you have ever seen code like this (and maybe even written code like this yourself): A fairly common […]