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.
How to Use Monadic Operations for `std::optional` in C++23
By Bartlomiej Filipek
From the article:
Let’s meet
and_then()
,transform()
andor_else()
, new member functions.Traditional Approach with
if/else
and optional C++20In C++20 when you work with
std::optional
you have to rely heavily on conditional checks to ensure safe access to the contained values. This often led to nestedif/else
code 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.
Add a Comment
Comments are closed.