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 […]
C++ Get the RSS Feed
Content related to C++
QStringView Diaries: Advances in QStringLiteral How QStringView Development Also Improves its "Competition"
This is the first in a series of blog posts on QStringView, the std::u16string_view equivalent for Qt. You can read about QStringView in my original post to the Qt development mailing-list, follow its status by tracking the “qstringview” topic on Gerrit and learn about string views in general in Marshall Clow’s CppCon 2015 talk, aptly […]
A Race is a Race is a Race is UB An example of the difference between int, volatile int, and std::atomic
In the last days, I was once again trying to convince fellow programmers that there’s no such thing as a “benign” data race. This is a recurring theme, in particular fueled by the docs of MSVC and Intel x86, which basically seem to say “you don’t need atomics here”. I perused the excellent papers Benign […]
Un-deprecate your Qt project
The last post from my colleague Marc Mutz about deprecating Q_FOREACH caused quite an uproar amongst the Qt developers who follow this blog. I personally feel that this was caused fundamentally by a perceived threat: there is a cost associated to porting away a codebase from a well-known construct (Q_FOREACH) to a new and yet-undiscovered […]
Stepanov-Regularity and Partially-Formed Objects vs. C++ Value Types
In this article, I will take a look at one of the fundamental concepts introduced in Alex Stepanov and Paul McJones’ seminal book “Elements of Programming” (EoP for short) — that of a (Semi-)Regular Type and Partially-Formed State. Using these, I shall try to derive rules for C++ implementations of what are commonly called “value […]
KDAB adds five new trainings in 2017
We’re adding an exciting raft of new trainings to our schedule for 2017 and some new locations, including San Francisco, Seoul and Beijing. Throughout the year you will be able to sign up for top class, always-up-to-date, original-authored trainings, presented by fully qualified KDAB trainers, all engineers actively involved in delivering KDAB’s high quality projects. […]
Writing Code That Won’t Kill A collection of reading material, white papers, and academic journals about functional safety
Functional Safety is the term used for systems designed to minimize risk to human health. But there’s a dilemma in today’s tech-driven world. We are more reliant than ever on software to control our planes, trains, cars, and boats, to operate our medical equipment, to process our food, to clean our water, and to power […]
Fixing bugs via lateral thinking Lessons learned by digging into obscure QML bugs
For today’s blog I would like to share with you the little adventure I had when fixing a very strange bug in Qt. Pop quiz Don’t think about this too much, just guess: what does this QML snippet print? There are no JavaScript semantic tricks involved; and using either == or === does not change […]
QtCon Videos On-line
We’re delighted all the QtCon talks have now been released, thanks to the hard work of the folks at KDE. Many KDABians attended QtCon and contributed to the unique new Qt event we co-created in Berlin, September 2016, along with Qt Contributors, KDE Akademy, VideoLan and FSFE. KDAB funded the event upfront and was Gold sponsor at QtCon […]
Fuzzing Qt for fun and profit A brief introduction to fuzzing and how we successfully use it in Qt
Many KDAB engineers are part of the Qt Security Team. The purpose of this team is to get notified of security-related issues, and then decide the best course of action for the Qt project. Most of the time, this implies identifying the problem, creating and submitting a patch through the usual Qt contribution process, waiting […]