This period

2026-07-27 → 2026-08-26 · rolling 30 days

Articles

51 this period

Comparing the two holograms on the Windows 95 box

This article discusses the changes made to the Windows 95 anti-piracy hologram due to a government complaint about its depiction of a baby. It highlights the differences between the original and revised holograms.

The Old New Thing | The Old New Thing | 2026-08-24 | 5 min

Scaling Memory Safety: AI-Assisted Rewrites of C/C++ Dependencies to Rust

Scaling Memory Safety: AI-Assisted Rewrites of C/C++ Dependencies to Rust

dayanruben | Lobsters | 2026-08-24

“Bare Metal” STM32 Programming (2018)

The STM32 line of ARM Cortex-M microcontrollers are a fun way to get started with embedded programming. The nice thing about these chips is that they don’t require much setup, so you can start to learn about them bit by bit, starting with…

kaycebasques | Lobsters | 2026-08-23

Integrating Discord SDK into EVE Frontier

Integrating Discord SDK into EVE Frontier

juliethefoxcoon | Lobsters | 2026-08-23

Optimizing memory usage in a markdown parser

Ctrl + K to search... Home • Software • Contact Me Optimizing memory use in a Markdown parser edit I’m porting gpui-component (a Rust UI component library built on GPUI) to C++ as gpui-cpp . By which I mean: my friend Claude does the…

abareplace | Lobsters | 2026-08-23

Reducing C++ template bloat by factoring out the type-dependent portions of the function, practical exam

This article discusses techniques for reducing C++ template bloat by factoring out type-dependent portions of functions. It highlights the inefficiencies of using lambdas in templated functions and presents a method to simplify the function by using a shared type.

The Old New Thing | The Old New Thing | 2026-08-21 | 5 min

Reducing C++ template bloat by factoring out the type-dependent portions of the function

This article discusses the cost of C++ template expansions and how to mitigate template bloat by using helper objects to encapsulate common functionality. It provides insights into optimizing template functions that accept lambdas.

The Old New Thing | The Old New Thing | 2026-08-20 | 5 min

Bloated C++ code

This article discusses the pitfalls of writing bloated C++ code and the importance of writing concise and efficient code. It highlights the humorous notion that programmers should not be paid by the line of code.

PVS Studio Team | PVS Studio C++ Blog | 2026-08-19 | 5 min

C++26: std::polymorphic

This article discusses the new std::polymorphic feature in C++26, detailing its implications and usage. It provides insights into how this feature enhances polymorphism in C++.

Sandor Dargo | Sandor Dargo's Blog | 2026-08-19 | 5 min

On wrapping a callable in a lambda that just calls it with the same parameters

This article discusses the unnecessary complexity of wrapping a lambda inside another lambda when the inner lambda can be called directly. It explains that a lambda is just syntactic sugar for a class with a function call operator, and highlights the importance of understanding this to avoid unnecessary indirection.

The Old New Thing | The Old New Thing | 2026-08-19 | 5 min

Why did the Microsoft Entertainment Pack for Windows have a special sticker announcing that it also had Tetris?

This article discusses the unique marketing decision behind the first Microsoft Entertainment Pack for Windows, which included a sticker announcing the addition of Tetris due to licensing negotiations. It highlights the rarity of copies with the sticker.

The Old New Thing | The Old New Thing | 2026-08-18 | 3 min

How do functions like alloca allocate memory from the stack?

This article explains how the _alloca function works in conjunction with the _chkstk function to allocate memory from the stack while ensuring that large allocations do not skip over the guard page. It includes a code example demonstrating the process.

The Old New Thing | The Old New Thing | 2026-08-17 | 5 min

How do functions like alloca allocate memory from the stack?

This article explains how the _alloca function works in conjunction with the _chkstk function to manage stack memory allocation. It provides an example of stack allocation in x86-64 architecture.

The Old New Thing | The Old New Thing | 2026-08-17 | 5 min

A faster way to calculate the day-of-the-week

Converting a day-count ("rata-die") to the day-of-the-week (“weekday”) sounds like it should be so trivial, that there's almost nothing to say about it. But, as it turns out, when we look under the hood, this is a surprisingly complex…

benjoffe | Lobsters | 2026-08-16

Forcing an ARM64X executable to run as a specific architecture

This article discusses how to force an ARM64X executable to run as a specific architecture on Windows. It explains the use of the PROC_THREAD_ATTRIBUTE_MACHINE_TYPE attribute to relaunch a program with the desired architecture when loading a DLL fails.

The Old New Thing | The Old New Thing | 2026-08-14 | 5 min

Static and dynamic analysis help when unit tests fail

This article discusses the importance of static and dynamic code analysis in conjunction with unit tests, highlighting how these techniques can provide valuable insights when tests fail.

PVS Studio Team | PVS Studio C++ Blog | 2026-08-14 | 5 min

A little helper class for managing LPPROC_THREAD_ATTRIBUTE_LISTs

This article discusses the challenges of managing LPPROC_THREAD_ATTRIBUTE_LISTs in C++ and presents a helper class to simplify the process. It provides code examples and insights into memory management for process attributes.

The Old New Thing | The Old New Thing | 2026-08-13 | 5 min

Clearer Build Optimization Results with GitHub Copilot

This article discusses improvements in GitHub Copilot's build performance for Windows, focusing on clearer result messages that help C++ developers understand optimization outcomes. The new experience aims to provide deterministic results and better insights into build optimizations.

C++ Team | C++ Team Blog | 2026-08-13 | 5 min

MSVC Build Tools Preview updates – August 2026

This article discusses the latest updates to the MSVC Build Tools Preview, targeting the v14.52 release, including improvements in C++ conformance and modules. It provides insights into new features and fixes from the MSVC development team.

C++ Team | C++ Team Blog | 2026-08-13 | 5 min

µ-Boosting Your CMake Productivity with Environment Variables

Find what you need - explore our website and developer resources If you are working with C++ code chances are that you are using CMake to build your code, and for good reason. CMake is a powerful tool that allows you to target a wide…

raymii | Lobsters | 2026-08-12

C++26: std::indirect

This article discusses the proposed std::indirect feature in C++26, exploring its implications and usage. It provides insights into how this feature can enhance the language's capabilities.

Sandor Dargo | Sandor Dargo's Blog | 2026-08-12 | 5 min

The comments that go into code versus those that go into the pull request description

This article discusses the importance of distinguishing between comments in code and those in pull request descriptions. It emphasizes how clear titles and descriptions can aid in understanding changes and tracking down regressions.

The Old New Thing | The Old New Thing | 2026-08-12 | 5 min

Obfusk8, c++ Obsfucation Library for Windows Binaries

Sign in Appearance settings Platform AI CODE CREATION GitHub Copilot Write better code with AI GitHub Copilot app Direct agents from issue to merge MCP Registry Integrate external tools DEVELOPER WORKFLOWS Actions Automate any workflow…

juliethefoxcoon | Lobsters | 2026-08-11

The little-known winstart.bat batch file

This article explains the purpose of the winstart.bat file in Windows 95 and its role during system startup compared to autoexec.bat. It details how the virtual machine manager utilizes winstart.bat before launching the user-mode kernel.

The Old New Thing | The Old New Thing | 2026-08-11 | 5 min

What’s New in vcpkg (Jul 2026)

This blog post summarizes changes to the vcpkg package manager as part of the July 2026 registry release, including major improvements and updates to ports. It highlights the addition of new ports and enhancements in supply-chain metadata quality.

C++ Team | C++ Team Blog | 2026-08-11 | 5 min

How can I perform a Copy­File in unbuffered mode?

This article discusses how to use the Copy­File­Ex and Copy­File2 functions in Windows to copy files in unbuffered mode by utilizing specific flags. It explains the limitations of changing the buffering flag after a handle is opened and provides code examples for both functions.

The Old New Thing | The Old New Thing | 2026-08-10 | 5 min

Understanding std::counting_semaphore and std::binary_semaphore from C++20

This article explains the two semaphore types introduced in C++20: std::counting_semaphore and std::binary_semaphore. It covers their usage in multi-threading scenarios and provides examples.

C++ Stories | C++ Stories | 2026-08-08 | 5 min

Creating a fake agile wrapper that is technically agile but is not useful outside its home apartment, part 5

This article discusses the use of std::unique_ptr to manage a registration cookie in a Windows context. It explains how to smuggle an integer value inside a pointer and the implications of this technique.

The Old New Thing | The Old New Thing | 2026-08-07 | 5 min

Thoroughly Understanding C++ ABI

| 简体中文 Articles Archives Thoroughly Understanding C++ ABI 2024-04-16 · Updated 2025-12-24 · 11 min · 5285 words · ykiko | Translations: 简体中文 Table of Contents CPU & OS Object File Format Data Representation Function Calling Convention C++…

mempko | Lobsters | 2026-08-07

Creating a fake agile wrapper that is technically agile but is not useful outside its home apartment, part 4

This article discusses the implementation of a fake agile wrapper in C++ that utilizes the global interface table. It explores the concept of moving non-marshalable COM objects rather than copying them.

The Old New Thing | The Old New Thing | 2026-08-06 | 5 min

Crubit, C++/Rust Bidirectional Interop Tool

Press ← or → to navigate between chapters Auto Light Rust Coal Navy Ayu Crubit Documentation document.getElementById('mdbook-sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible')…

kaycebasques | Lobsters | 2026-08-06

C++26: #embed

This article discusses the proposed #embed feature for C++26, exploring its implications and potential use cases.

Sandor Dargo | Sandor Dargo's Blog | 2026-08-05 | 5 min

Creating a fake agile wrapper that is technically agile but is not useful outside its home apartment, part 3

This article discusses the challenges of creating a marshalable wrapper around a non-marshalable COM object in C++. It explains how to implement a solution using templates to manage object lifetimes across different apartments.

The Old New Thing | The Old New Thing | 2026-08-05 | 5 min

How PVS-Studio helps enhance quality of embedded projects

This article discusses the challenges of embedded development and how PVS-Studio can help improve the quality of embedded projects through effective analysis.

PVS-Studio Team | PVS Studio C++ Blog | 2026-08-05 | 5 min

An Honest Review of AI Programming

An Honest Review of AI Programming

renchap | Lobsters | 2026-08-04

cppdashboard.dev – The aggregator of what matters in C++ right now

cppdashboard.dev is a new website that aggregates various content focused on C++, including articles, videos, podcasts, events, books, and courses. It aims to provide a curated view of the C++ community's activity.

Marius Bancila | Marius Bancila's Blog | 2026-08-04 | 5 min

Creating a fake agile wrapper that is technically agile but is not useful outside its home apartment, part 2

This article discusses the implementation of a fake agile reference in C++ that holds a reference to an object in another apartment, automatically expiring when the apartment runs down. It details the structure and functionality of the fake agile reference, including its components and construction.

The Old New Thing | The Old New Thing | 2026-08-04 | 5 min

C++ to Rust Migration

Disclaimer: This article was created with the assistance of AI and reviewed by the JetBrains RustRover team. C and C++ to Rust migrations are no longer just an experimental idea. More teams are now looking at Rust as a practical way to…

raymii | Lobsters | 2026-08-03

Creating a fake agile wrapper that is technically agile but is not useful outside its home apartment, part 1

This article discusses the concept of creating a reference that is strong but releases its reference when the originating apartment tears down, utilizing the global interface table (GIT) for automatic release.

The Old New Thing | The Old New Thing | 2026-08-03 | 5 min

How fast is C++26’s std::hive?

Daniel Lemire is a software performance expert. He ranks among the top 2% of scientists globally (Stanford/Elsevier 2025) and is one of GitHub's top 1000 most followed developers. C++26 adds a new container to the standard library…

raymii | Lobsters | 2026-08-02

Asynchronous I/O in DuckDB: Work, Thread, Work

Documentation Getting Started Installation Quack Remote Protocol Guides Data Import Client APIs SQL Introduction Why DuckDB Resources Blog Library Events Everywhere Webshop Design FAQ GitHub 39.9k Support Support Asynchronous I/O in…

eatonphil | Lobsters | 2026-07-31

Making an agile version of a Windows Runtime delegate in C++/WinRT, part 10

This article discusses the challenges and considerations when implementing agile delegates in C++/WinRT, particularly focusing on the behavior of ContextCallback in COM and its implications for error handling and reentrancy.

The Old New Thing | The Old New Thing | 2026-07-31 | 5 min

Why we write our own C and C++ inference engines

A 66 MiB binary instead of a 9.1 GiB virtualenv, depth estimation that beats PyTorch on CPU in half the memory, and biometrics that match insightface bit for bit. The method, the measurements, and what it costs us. Ettore Di Giacinto 24…

eatonphil | Lobsters | 2026-07-31

GCC steering committee announces AI policy

The GCC steering committee has announced that it has accepted an AI contributions policy recommended by the GCC AI policy working group. The policy, in part, states that the project will decline any " legally significant contributions…

nemin | Lobsters | 2026-07-30

Making an agile version of a Windows Runtime delegate in C++/WinRT, part 9

This article discusses the challenges faced while creating an agile version of a Windows Runtime delegate in C++/WinRT, particularly focusing on non-marshalable delegates. It compares the implementations of C++/WinRT, C++/CX, and WRL.

The Old New Thing | The Old New Thing | 2026-07-30 | 5 min

const_cast: A Necessary Evil

Thoughts both confusing and enlightening. Thoughts both confusing and enlightening. We don’t like const_cast much. It’s ugly, and can even lead to undefined behaviour. But unfortunately sometimes it’s needed. Even aside from interacting…

raymii | Lobsters | 2026-07-29

C++ float-to-int conversion can be undefined behavior

C++ float-to-int conversion can be undefined behavior

classichasclass | Lobsters | 2026-07-29

C++26: Reducing undefined behaviour

This article discusses the changes in C++26 aimed at reducing undefined behavior in the language. It highlights the implications of these changes for developers and the overall safety of C++ programming.

Sandor Dargo | Sandor Dargo's Blog | 2026-07-29 | 5 min

Making an agile version of a Windows Runtime delegate in C++/WinRT, part 8

This article discusses handling exceptions in the context of C++/WinRT delegates, particularly focusing on the construction order of lambda captures and potential reference leaks. It emphasizes the importance of precreating deleters to avoid issues with raw pointers.

The Old New Thing | The Old New Thing | 2026-07-29 | 5 min

Making an agile version of a Windows Runtime delegate in C++/WinRT, part 7

This article discusses the challenges of creating a unique_ptr with a deleter in C++/WinRT, particularly focusing on exception safety and memory management. It provides insights into handling exceptions during the construction of custom deleters to prevent memory leaks.

The Old New Thing | The Old New Thing | 2026-07-28 | 5 min

Making KIO copy many files fast

There is a bug in KDE's bug tracker that is almost as old as some of our contributors: bug 342056 , "Ridiculously slow file copy (multiple small files)", reported by Alexander Nestorov back in 2014. The report is blunt: copying a 15 GB…

FedericoSchonborn | Lobsters | 2026-07-28