The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

Reminder: When a C++ object fails to construct, the destructor does not run
Jan 20, 2025
0
0

Reminder: When a C++ object fails to construct, the destructor does not run

Raymond Chen
Raymond Chen

If you need to run after a failed construction, you have to put it in a base class or member variable.

The case of the crash when trying to erase an element from a <CODE>std::set</CODE>
Jan 17, 2025
5
1

The case of the crash when trying to erase an element from a std::set

Raymond Chen
Raymond Chen

Another kind of fiasco.

In a C++ class template specialization, how can I call the unspecialized version of a method?
Jan 16, 2025
3
1

In a C++ class template specialization, how can I call the unspecialized version of a method?

Raymond Chen
Raymond Chen

You can't talk about things that might exist, so instead talk about things that do.

Microspeak: The walk-on topic
Jan 14, 2025
5
1

Microspeak: The walk-on topic

Raymond Chen
Raymond Chen

Just walk on in with your topic.

A simplified overview of ways to add or update elements in a <CODE>std::map</CODE>
Jan 13, 2025
4
2

A simplified overview of ways to add or update elements in a std::map

Raymond Chen
Raymond Chen

And using it to find missing opportunities.

Why does inadvertently passing a <CODE>std::string</CODE> instead of a <CODE>char const*</CODE> to a variadic function crash on x86-32 but not x86-64?
Jan 10, 2025
2
0

Why does inadvertently passing a std::string instead of a char const* to a variadic function crash on x86-32 but not x86-64?

Raymond Chen
Raymond Chen

Looking at the calling convention and the small string optimization.

Inside STL: Waiting for a <CODE>std::atomic<std::shared_ptr<T>></CODE> to change, part 2
Jan 9, 2025
0
3

Inside STL: Waiting for a std::atomic<std::shared_ptr<T>> to change, part 2

Raymond Chen
Raymond Chen

Digging into the libstdc++ implementation.

Inside STL: Waiting for a <CODE>std::atomic<std::shared_ptr<T>></CODE> to change, part 1
Jan 8, 2025
1
1

Inside STL: Waiting for a std::atomic<std::shared_ptr<T>> to change, part 1

Raymond Chen
Raymond Chen

Waiting on a single pointer, but checking for two.