Sneaking into the auditorium for the Windows 2000 launch rehearsalWait, that's not him. The post Sneaking into the auditorium for the Windows 2000 launch rehearsal appeared first on The Old New Thing .๐The Old New ThingWelcome to SwedenCpp
Latest blogs, videos, podcasts and releases in one stream
Monday, November 2, 2026
Sneaking into the auditorium for the Windows 2000 launch rehearsalWait, that's not him. The post Sneaking into the auditorium for the Windows 2000 launch rehearsal appeared first on The Old New Thing .๐The Old New Thing
Types of Recursion in C++ Explained ๐ฅ | Direct, Indirect, Tail, Head & More๐ฅCppNuts
In C++, = default and {} are not the same constructorYou can write an empty default constructor as span() = default or as span() {}. It can have remarkable effects on performance. struct span { const char *p; int len; const char *end; span() = default; // or span() {} span(const char *s, int n) : p(s), len(n), end(s + n) {} }; The constructor โฆ Continue reading In C++, = default and {} are not the same constructor๐Daniel Lemire's blog
Implementing C++ Standard Library - Design and Optimisations in Libc++ - Hui Xie - ACCU 2026๐ฅACCUConf
Are You Shipping Your Source Code? - Ryan Wardell - ADC Japan 2026๐ฅaudiodevconIf this page is useful, please consider donating a coffee
Sunday, November 1, 2026
Lightning Talk: ?: - Jonathan Mรผller - C++Now 2026๐ฅCppNow
The Problem with C++ Safety (Part 2): Modern C++ Is a Mindset, Not a StandardIn the first part, we saw how hard it is to be certain that loop-based C++ code is correct. Now Klaus presents the modern solution, a single algorithm call that is correct by inspection, and explains why the real problem in our community is an educational one, made worse by AI tools that keep generating classic C++.๐MC++ BLOGSaturday, October 31, 2026
CallMeMaybe - Building Modern Runtime Reflection via C++26 - Laurie Kirk - ACCU 2026๐ฅACCUConf
pbrt-v4 with BazelThe almost forgotten backlog story I have a personal backlog of things I want to do. On Aug 9, 2020, I wrote down this: This issue is now more than six years old. Other, more important things popped up in my life in the idea went further and further down in my backlog. I even forgot it was there. With the advent of vibe coding, the idea popped up again.๐Vertexwahn
Cppcon 2026 trip report | Modern Cpp Series Ep. 250๐ฅMike Shah
Hans Wennborg: Windows debug info - CodeView and PDB files๐ฅSwedenCpp
**arr[3] vs 3[arr] in C++ ๐คฏ | The Weird Array Trick Explained!**๐ฅCppNuts
ะกััะธะผ ะฝะฐ 10ะบ ะฒ ัะตะปะตะณัะฐะผะผะต: ะฟะธัะตะผ PBQP solver๐ฅKonstantin Vladimirov
Beating the compiler at signed 32-bit divisionDividing integers is slow on our processors. A 32-bit division costs: processor latency throughput Emerald Rapids about 12 cycles one every 6 cycles Zen 4 9 to 12 cycles one every 6 cycles Zen 5 10 to 13 cycles one every 6 cycles Arrow Lake performance core 12 cycles one every 6 cycles Apple M4 โฆ Continue reading Beating the compiler at signed 32-bit division๐Daniel Lemire's blogFriday, 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
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 Shah
