Welcome to SwedenCpp
Latest blogs, videos, podcasts and releases in one stream
Saturday, October 31, 2026
If this page is useful, please consider donating a coffee
Friday, October 30, 2026
A slightly better ThreadPoolExecutor in Pystd through typesIn the previous post we looked at a simple multithreaded task executor that behaves roughly like its Python standard library counterpart . The biggest missing feature was being able to return values from run tasks via future objects. In a fully dynamic language like Python this is fairly straightforward, whereas in a language with static typing, such as C++, things are trickier. The simplest solution is merely to make your Executor class a template, parameterized by the function you want to run. The obvious downside is code bloat. If your program has an Executor and Executor , all of their code is duplicated in the binary, even though 90% of it is probably the same. Also, due to the magic of template instantiation, compilation is slower. Another downside is that you can't run tasks that do different things, especially having different return value types, with one Executor. I set about trying to solve both of these issues at the same time. It turned out that if you are willing to tolerate just a little bit of OO and one extra malloc per task, one can get a fairly nice solution. As a task executor is used for things that run for a long time and consume a lot of resources, the overhead is insignificant for most use cases. And if it absolutely, positively matters to someone, they are going to roll their own anyway. Trying to cater to those use cases would be a waste of effort in any case. These requirements point to a fairly obvious solution. The executor deals with TypeErasedFuture/Promise types that store all the task metadata via good ol' void pointers and virtual functions. The concrete Future and Promise tasks are just type safe shims on top of them. The entire implementation required the use of only two reinterpret_cast s, which is quite surprising. I would have expected more, but sometimes you get lucky, I guess. The Executor gets to remain a concrete class. The only template in it is the submit method that preserves the type erased task and returns a typed future object. Using this is not quite a simple as its Python counterpart, but still fairly easy. After you have written a class that implements the executor's task interface, submitting work and consuming the results is done like this. If the return value had been something other than void, .get() would return a reference to the result object. The tradeoff between the ease of use provided by maximal templateism and minimal code generation is clearly visible in the extra boilerplate code you need to write to get things going. But in return you get both reduced binary size and faster compile times. Whether that is an improvement or a detriment is up to you. This code is not going to win any robustness prizes (though, in the modern day of AI garbage, you never know), but the end result is more than adequate for a single evening work.๐Nibble Stew
Contains Duplicate in C++: a hash set (LeetCode 217)๐ฅDeepDiveDev
Compromised eMudhra Certificates: Update Your JetBrains IDEs, ReSharper, .NET Tools, Toolbox App, and Gateway NowSummary Available fixed versions The issue is fixed in the following versions: The 2025.2.6.* updates for all IDEs now contain only the JBR fix. They will get a separate hotfix for the JCEF problem. Until then, use a workaround to disable JCEF in your IDE (see instructions below). IDE versions 2025.1 and earlier, and Toolbox [โฆ]๐CLion : A Cross-Platform IDE for C and C++ | The JetBrains Blog
C++ Libraries - The Road Ahead - Jeffrey Garland - C++Now 2026๐ฅCppNow
The Microsoft building that was reportedly hauntedLots of rumors, little confirmation. The post The Microsoft building that was reportedly haunted appeared first on The Old New Thing .๐The Old New Thing
AMIA 2026 Annual SymposiumKitware is excited to participate in the American Medical Informatics Association (AMIA) 2026 Annual Symposium in Dallas, Texas. AMIA brings together professionals and students across the informatics community to share knowledge, foster collaboration, and advance the use of informatics to improve health and healthcare.๐Kitware Inc
2D Transforms Now Supported in 3D SlicerRegistration of 2D images, such as histology sections, X-rays, or ultrasound frames, produces 2D transforms. Until recently, Slicer could not load them properly.๐Kitware Inc
Generative Instruments with Large Piano Models - Tomek Roszczynialski - ADC Japan 2026๐ฅaudiodevconThursday, October 29, 2026
CMake 4.4.5 available for downloadCMake 4.4.5 available for download๐Kitware Inc
Pitfalls of bit fields in C++C++ is a language that lets developers do absolutely anything, and then it just silently watches as they blow everything up. We're used to thinking in terms of bytes, but what if the standard type...๐from pvs-studio.com
Kitware Welcomes Dr. Mike Ter Louw as Director of Advanced Cybersecurity ResearchStrategic hire marks Kitwareโs expansion into cybersecurity research and resilience technologies, building on our established defense AI research capabilities to address emerging threats. Clifton Park, N.Y.โ 29 October 2026 โ Kitware is pleased to announce that Mike Ter Louw, Ph.D., has joined the company as Director of Advanced Cybersecurity Research. His appointment marks the launch [โฆ]๐Kitware Inc
CMake 4.3.6 available for downloadCMake 4.3.6 available for download๐Kitware Inc
Whatโs New in vcpkg (Oct 2026)This blog post summarizes changes to the vcpkg package manager as part of the 2026-10-16 registry release and the 2026-09-26 tool release. These updates include configurable binary-cache compression, improved cache reliability and diagnostics, Boost 1.92, and other improvements and bug fixes. There are now 2,877 total ports available in the vcpkg curated registry. A port [โฆ] The post Whatโs New in vcpkg (Oct 2026) appeared first on C++ Team Blog .๐C++ Team Blog
๐ Does std::move actually move anything in C++?๐ฅCppNuts
The support case of a customer who said that all they could see was a black screenThen again, that is what they asked for. The post The support case of a customer who said that all they could see was a black screen appeared first on The Old New Thing .๐The Old New Thing
SEGGER Tools Gain Deeper Integration in CLion with AI-assisted DebuggingAmsterdam, Netherlands โ October 29, 2026 SEGGERโs embedded development tools are now more deeply integrated into JetBrains CLion. CLion provides dedicated configuration for J-Link debug probes as well as direct access to SEGGERโs Ozone debugger and SystemView real-time software analysis tool, connecting coding and ultra-fast flash programming with advanced debugging and real-time system analysis. CLionโs [โฆ]๐CLion : A Cross-Platform IDE for C and C++ | The JetBrains Blog
Incrementally Migrating C++ to a Memory Safe Language with Swift - Tim Condon - ACCU 2026๐ฅACCUConf
C++26, WG21, and ISO's national bodiesThe C++26 draft did not pass the ISO vote. How is that possible, and why does ISO matter when we have WG21?๐Engineering the Craft
Let them try it before they install anythingLet them try it before they install anything You found a promising library. To actually try it, you clone the repository, install a toolchain it expects, wire it into your build system, and resolve its dependencies. One hour later, before you have written a single line of your own, you are debugging someone else's CMake. Most people never get that far and simply close the tab.๐mp-unitsWednesday, October 28, 2026
CMake 4.5.0-rc2 is ready for testingThe second CMake 4.5 release candidate!๐Kitware Inc
C++/WinRT overcorrection: Using make_self and immediately converting it to the projected interfaceYou are taking the scenic route. The post C++/WinRT overcorrection: Using make_self and immediately converting it to the projected interface appeared first on The Old New Thing .๐The Old New Thing
Why VTK Arrays Are Not NumPy Arrays (Anymore)In my last blog, I promised to get into the philosophy of the latest rewrite of VTK arrays in Python. Here it is. Let's start with the line that looks like a step backwards.๐Kitware Inc
DJ่ฃฝๅใซใใใJUCEๆดป็จ - ็พ็ถใจไปๅพใฎๅฑๆ - Masamichi Tomii, Akihito Yamada & Tetsuro Abe - ADC Japan 2026๐ฅaudiodevcon
What is PVS-Studio?๐ฅPVS-Studio
Vibe Coding Is Not a Software Engineering MethodologyVibe coding gets software running fast, but it is not software engineering. Why AI-built tools still need owners, evidence, and a path to grow up.๐John FarrierTuesday, October 27, 2026
Don't Miss ADC26 | Get Your Online Pass Today!๐ฅaudiodevcon
AI is Forcing us to Obey Scott Meyers - Jody Hagins - C++Now 2026๐ฅCppNow
Why donโt we run the taskbar and Task Manager at high priority, so they can remain responsive?Hurry up and wait. The post Why donโt we run the taskbar and Task Manager at high priority, so they can remain responsive? appeared first on The Old New Thing .๐The Old New Thing
Embedding Next-Gen Graphics: VTKโs Hardware Windows, WebGPU, and QVTKWebGPUWidgetFor most of VTKโs history, rendering and window management went hand in hand. A single vtkRenderWindow handled it all: creating the OS window, managing the OpenGL context, running the event loop, and drawing pixels. In the early days of OpenGL, pairing them together made perfect senseโthe graphics context was tightly bound to the window, so [โฆ]๐Kitware Inc
Orphan Processes (C example)๐ฅJacob Sorber
Qt Bridges Technology Preview: Qt Quick UIs for Rust and C# DevelopersWhen we announced Qt Bridges at Qt World Summit 2025, we had a simple goal: let developers build Qt Quick user interfaces with a backend written in their favorite programming languages. This year, the C# and Rust bridges went through several public betas. Thank you to everyone who tried them and sent feedback. It shaped every release.๐Qt Blog
Message Passing - Concurrency Part 9 of N [D Language - Dlang Episode 156]๐ฅMike ShahMonday, October 26, 2026
Introducing NetMaestro: Open Source Network Modeling and SimulationNetwork engineers need to evaluate changes to infrastructure without disrupting the systems that depend on it. Testing a new configuration, replacing equipment, or investigating a potential failure can be difficult when physical testbeds are expensive and production networks cannot be used for experimentation. Kitware is developing NetMaestro, an open source network modeling and simulation tool that allows engineers to investigate congestion, compare configurations, and explore what-if scenarios using virtual network models before making changes to production infrastructure.๐Kitware Inc
Billion-query-per-second lookup tables in C++A lot of software spends its time mapping strings to values. A web server must identify the HTTP method (GET, POST, โฆ). It must recognize header names. A URL parser must recognize the protocol (http, https, ftp, โฆ). A compiler must recognize keywords. In C++, the default approach is to put the strings in a โฆ Continue reading Billion-query-per-second lookup tables in C++๐Daniel Lemire's blog
Supercomputing 2026At SC26, Kitware will showcase interactive visual workflows designed for large, complex simulations. Our work combines scalable visualization, in situ analysis, AI, GPU computing, and modern application development to support todayโs demanding scientific and engineering workflows. Visit Kitwareโs booth to see these capabilities in action and talk directly with our technical team.๐Kitware Inc
With Qt 6.12, the SkyMaterial is the limitQt Quick 3D 6.12 introduces a new SkyMaterial QML type, and in this post we will explain what it is, how to use it and why you'd want to. SkyMaterial provides a way of writing custom fragment shader code to render a scene's sky, as well as computing image-based lighting (IBL) from it. This means the same sky acts as both the visible background and a light source for the scene. With it you can create a dynamic sky with a moving sun, day/night cycle, clouds, stars etc. QML properties set on the SkyMaterial type are automatically made available in the custom shader, and whenever a property is updated, the SkyMaterial re-renders itself. This is what makes it possible to have a dynamic sky. Since the rendering is happening on the GPU, the performance cost depends on the complexity of the shader and how often it is updated. It is possible to tweak certain quality and performance properties to fit your performance budget. To use SkyMaterial in your 3D scene you need to point the SceneEnvironment::skyMaterial property to your SkyMaterial object, and set SceneEnvironment::backgroundMode to SceneEnvironment.SkyMaterial .๐Qt Blog
C++ Weekly - Ep 556 - C++23's is_implicit_lifetime๐ฅJason Turner
Puzzling out why a program doesnโt work when run from a batch file, but works when double-clicked from ExplorerMimicking the operation more accurately. The post Puzzling out why a program doesnโt work when run from a batch file, but works when double-clicked from Explorer appeared first on The Old New Thing .๐The Old New Thing
Creating Composable Callables in C++ - Using Senders / Receivers as a Frame Graph - Bjรถrn Fahller๐ฅACCUConf
TX/RX Part 2 - AI Audio on the Raspberry Pi - Kieran Coulter - ADC Japan 2026๐ฅaudiodevcon
