In a previous blog post we introduced clazy, a clang plugin which makes the compiler understand Qt semantics, allowing you to get compile-time warnings about Qt best practices ranging from unneeded memory allocations to misuse of API, including fix-its for automatic refactoring. Today we’ll do a round-up and present the checks related to connect statements, […]
C++ Get the RSS Feed
Content related to C++
Disabling narrowing conversions in signal/slot connections
A small new feature that I have added to Qt 5.8 is the possibility of disabling narrowing conversions in the new-style QObject::connect statement. In this short blog post I would like to share with you why I thought this was useful and therefore implemented it. The problem Since Qt 5.0, the new-style, PMF-based (pointer to […]
Safety critical drawing with OpenGL SC The main sticking points when migrating OpenGL ES software to functionally safe OpenGL SC
Bringing software into a safety critical environment can be tricky, especially when using the complex APIs needed for modern 3D graphics. That’s what makes OpenGL SC (Safety Critical) so important: it bridges the gap between beautiful displays and functional safety, while trying to remain as close to existing embedded standards that we all know and love. OpenGL SC will only […]
Clang-Tidy, part 1: Modernize your source code using C++11/C++14 Automated refactoring of your source code using powerful open-source tooling
This blog series will introduce the clang-tidy utility from the Clang/LLVM project and show how to use it to automatically refactor
What do I do if a slot is not invoked? A practical checklist to debug your signal/slot connections
All Qt developers have asked themselves at least once in their careers: “why isn’t my slot invoked?” (I’ve asked myself that question many, many times). There are a number of reasons why a connection may fail to be properly set up, and ultimately cause our slot not to be invoked. This blog post is a practical […]
New in Qt 5.8: meta-object support for namespaces Using namespaces in Qt for enumeration introspection
A small new feature that was added to Qt 5.8 is the ability for moc (Qt’s meta-object compiler) to extract meta-object information at the namespace level. This means, for instance, that you can have introspection support for enumerations defined in a namespace (not just in QObject subclasses, or classes tagged with Q_GADGET), and use such […]
Heaptrack v1.0.0 Release First stable release of the fast Linux heap memory profiler
I’m extremely happy to finally announce the first stable release of heaptrack, the FOSS heap memory profiler for C/C++ Linux applications. You can download the source tarball from the KDE mirrors: https://download.kde.org/stable/heaptrack/1.0.0/src/ Heaptrack is a fast heap memory profiler that runs on Linux. It allows you to track all heap memory allocations at run-time. Afterwards, the accompanying GUI […]
KDAB contributions to Qt 5.8
Qt 5.8 has just been released! Another great release of Qt, made possible by thousands of commits by over a hundred different contributors: And here we are again, with the usual showcase of the most outstanding contributions to Qt 5.8 developed by KDAB engineers. In no particular order: Qt 3D Qt 3D continues to receive […]
Slaying Latency with Linux Kernel Tracepoints
Knowing what tools are at your disposal when looking to make a program faster or keep it operating smoothly is critical to your success as a programmer. We recently solved a performance problem using Linux Kernel Tracepoints so we thought we’d share the process with you so that you can see for yourself if this […]
Integrating OpenGL with Qt Quick 2 applications (part 2) Implementing overlays and underlays with the Qt Quick 2 renderer
In the last blog post we gave a very high level introduction to the Qt Quick 2 renderer. We also showed how various signals are emitted by the renderer during the synchronization and rendering steps. In this blog post we’re going to discuss those signals and show how they can be used to implement overlays […]