Logo

Blog


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 [...]