The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

Aug 3, 2023
Post comments count 6
Post likes count 9

Inside STL: The string

Raymond Chen

An allocation, with a twist.

Aug 2, 2023
Post comments count 6
Post likes count 7

Inside STL: The vector

Raymond Chen

A contiguous memory block, reallocated as necessary.

Aug 1, 2023
Post comments count 7
Post likes count 8

Inside STL: The pair and the compressed pair

Raymond Chen

Two fields in one object, how hard can it be?

Jul 31, 2023
Post comments count 4
Post likes count 4

Misinterpreting the misleadingly-named STATUS_STACK_BUFFER_OVERRUN

Raymond Chen

The subcode tells you why we stopped executing, and it's rarely because of a stack buffer overflow.

Jul 28, 2023
Post comments count 1
Post likes count 1

How to split off an older copy of a file while preserving git line history

Raymond Chen

Variation on a theme.

Jul 27, 2023
Post comments count 0
Post likes count 1

Perfect forwarding forwards objects, not braced things that are trying to become objects

Raymond Chen

Before you can forward something, it needs to be a something.

Jul 26, 2023
Post comments count 0
Post likes count 2

On the various ways of creating Windows Runtime delegates in C++/WinRT and C++/CX

Raymond Chen

Comparing and contrasting.

Jul 25, 2023
Post comments count 7
Post likes count 34

Before you try to do something, make sure you can do nothing

Raymond Chen

If you can't do nothing, then don't expect to be able to do something.

Jul 24, 2023
Post comments count 0
Post likes count 2

Why does IAsyncAction or IAsyncOperation.GetResults() produce a E_ILLEGAL_METHOD_CALL exception?

Raymond Chen

You're asking too soon.