The Old New Thing
Practical development throughout the evolution of Windows.
Latest posts
Oct 16, 2026
Post comments count
2
Post likes count
1
C++ futures part 5: std::future and std::shared_future
Getting the results back out.
Oct 15, 2026
Post comments count
1
Post likes count
1
C++ futures part 4: What if I want an immediate on-thread std::async?
Providing the case that the C++ language won't do.
Oct 14, 2026
Post comments count
1
Post likes count
1
C++ futures part 3: The mental model for std::async
Doing things later in different ways.
Oct 13, 2026
Post comments count
3
Post likes count
2
C++ futures part 2: The mental model for std::promise, std::packaged_task
Building things out of the state.
Oct 12, 2026
Post comments count
6
Post likes count
3
C++ futures part 1: The mental model
Managing a value that is produced later.
Oct 9, 2026
Post comments count
0
Post likes count
2
One way of thinking about access specifiers in C++/WinRT implementation types
Mapping them to concepts from C# and the now-defunct C++/CX.
Oct 8, 2026
Post comments count
11
Post likes count
3
If one anti-malware software is good, does that make two better?
Not always.
Oct 7, 2026
Post comments count
2
Post likes count
2
How can undefined opcodes ud0 and ud1 have parameters? How undefined were they?
They weren't defined, not even as undefined.
Oct 6, 2026
Post comments count
2
Post likes count
4
Why does the compiler sometimes use ud2 and sometimes int 3 for code that shouldn’t execute?
It shouldn't execute, but for different reasons.