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 […]
Blog Archives
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 […]
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 […]
Tuple And Pair in C++ APIs? A Simple Design Goal to Improve Your C++ APIs
Quick: When you design C++ APIs, when and how should you use pair and tuple? The answer is as simple as it is surprising: Never. Ever. When we design APIs, we naturally strive for qualities such as readability, ease-of-use, and discoverability. Some C++ types are enablers in this regard: std::optional, std::variant, std::string_view/gsl::string_span, and, of course, […]
Faster than Fast String Search in Qt
Is your code burning a lot of cycles hunting for strings? Maybe you need to find the proper charset nestled in a chunk of HTML, or look for the dimensions in an XPM image file, or locate the email attachment boundaries in a block of MIME. If you string search a lot and performance is […]
C++ Tools Save time and efforts - Get the most out of C++ tools
In KDAB we know that C++ tools often can be hard to understand, hard to setup and/or it’s not clear which one to use. Based on our extensive experience in using C++ tools in our projects, we can help you to automatically analyze your native C++ source code, detect memory management and threading bugs, find […]
KDAB. Working with the latest C++ standards Modernizing your C++ development with C++11 / C++14 / C++17
KDAB’s in-depth expertise in C++ and the new C++11 / C++14 / C++17 standards is demonstrated through projects, popular C++11 / C++14 / C++17 training courses and talks at conferences. Many of our projects have focused on modernizing the code base, boosting an application’s performance and making it as future-proof as possible. Refactoring code makes […]