In this post we’ll have a look at new operations added to
std::optional in C++23. These operations, inspired by functional programming concepts, offer a more concise and expressive way to work with optional values, reducing boilerplate and improving code readability.
By Bartlomiej Filipek
From the article:
or_else(), new member functions.
Traditional Approach with
if/elseand optional C++20
In C++20 when you work with
std::optionalyou have to rely heavily on conditional checks to ensure safe access to the contained values. This often led to nested
if/elsecode blocks, which could make the code verbose and harder to follow.
Consider the task of fetching a user profile. The profile might be available in a cache, or it might need to be fetched from a server. Once retrieved, we want to extract the user’s age and then calculate their age for the next year.