2023 posts
C++ Insights
C++ Insights Episode 45: C++20s Designated Initializers
I published a new C++ insights episode: C++20s Designated Initializers. [...]

C++
When an empty destructor is required
In last month's post Why you shouldn't provide an empty destructor, I taught you the difference between user-provided and user-declared. I hope you remember the conclusion; never [...]

C++ Insights
C++ Insights Episode 44: Compilers are lazy, and this is good
I published a new C++ insights episode: Compilers are lazy, and this is good. [...]

C++
Why you shouldn't provide an empty destructor
Today's post is a written version of C++ Insights episode 38 I published back in May. I decided to write this post to be able to use what I teach you in next month's post. In case [...]

C++ Insights
C++ Insights Episode 43: A copy constructor cannot be a template
I published a new C++ insights episode: A copy constructor cannot be a template. [...]

Conference
CppNorth 2023 recording of my talk "C++ Feature Coroutines, Beginner Friendly" is available
I'm pleased to announce that the recording of my talk at CppNorth C++ Feature Coroutines, Beginner Friendly of my presentation is available YouTube: [...]

C++
Using C++23s constexpr unique_ptr
Back in 2022, my paper P2273R3: Making std::unique_ptr constexpr was accepted for C++23. All the time, I planned to provide an implementation for libc++ but never found the time. [...]

C++ Insights
C++ Insights now uses Clang 17
Today, I managed to switch C++ Insights to Clang 17! [...]

Conference
CppIndia Con 2023 recording of my talk "C++ Coroutines from scratch" is available
I'm pleased to announce that the recording of my talk at CppIndia Con C++ Coroutines from scratch of my presentation is available youtube: [...]

C++ Insights
C++ Insights now uses Clang 16
On Monday, I finally managed to switch C++ Insights to Clang 16! [...]

C++ Insights
C++ Insights Episode 42: C++20: When is a struct an aggregate
I published a new C++ insights episode: C++20: When is a struct an aggregate. [...]

Publications
Overload Article: aaa
An article I wrote for the Accu Overload magazine "C++20 Dynamic Allocations at Compile-time" is available in issue 176. It is available as a printed edition as well as online. [...]

C++
Best Speaker Award
I'm very pleased to tell you that I received a Best Speaker Award from a German conference ESE Kongress for my talk "C++ 20 Templates - Die nächste Generation" I presented there [...]

C++
Control your numbers in C++
Today's post is probably easier and shorter than usual. But that doesn't mean the feature is any less powerful. [...]

C++ Insights
C++ Insights Episode 41: How type-traits work
I published a new C++ insights episode: How type-traits work. [...]

C++
A strongly typed bool
Today I like to share a pattern I have used for some time. The pattern is generally well-received whenever I present it during one of my training courses. I still don't know [...]

C++ Insights
C++ Insights Episode 40: The traps of returning references
I published a new C++ insights episode: The traps of returning references. [...]

C++
Visiting a std::variant safely
I assume you all know C++17's type-safe replacement for unions: std::variant. Here you look at a great replacement for unions as it knows the active type and destructs that object [...]

C++ Insights
C++ Insights Episode 39: Recursion-free templates with C++17s fold expressions
I published a new C++ insights episode: Recursion-free templates with C++17s fold expressions. [...]

C++
constexpr functions: optimization vs guarantee
The feature of constant evaluation is nothing new in 2023. You have constexpr available since C++11. Yet, in many of my classes, I see that people still struggle with constexpr [...]

C++ Insights
C++ Insights Episode 38: User-provided vs. user-declared
I published a new C++ insights episode: User-provided vs. user-declared. [...]

C++ Insights
Happy 5th anniversary C++ Insights
This year we celebrate the 5th anniversary of C++ Insights! [...]

C++
Evaluation order in C++ and uniform initialization
In today's post, you learn or get reminded about an interesting benefit of uniform initialization. [...]

C++ Insights
C++ Insights Episode 37: C++20's range-based for-loop with initializer
I published a new C++ insights episode: C++20's range-based for-loop with initializer. [...]

C++
push_back vs emplace_back: When to use what
In today's post, I like to address a topic already discussed by others. However, in classes or code reviews, I still see the confusion. That's why I want to highlight this once [...]

C++ Insights
C++ Insights Episode 36: Coroutine customization points
I published a new C++ insights episode: Coroutine customization points. [...]

C++
static, inline, or an unnamed namespace what's the difference
Today's post teaches the difference between a function declared static, inline, or in an unnamed namespace. "What of these should I use when?" is a question that occasionally [...]

C++
C++ Insights Vim plugin available
Great news for all VIM lovers FreedWu developed a Vim plugin to use C++ Insights in your favorite editor. The plugin is available on GitHub: github.com/Freed-Wu/cppinsights.vim. [...]
C++
Equality of a string class that is only instantiable at compile-time
Today's post continues with last month's post A string class that is only instantiable at compile-time. [...]
C++
A string class that is only instantiable at compile-time
Do you know this, sometimes you have a class that should only be instantiable at compile-time? By that, you can build several assumptions on such a class. For example, that the [...]