Introduction
std::optional as return value
value_or
Using optionals to represent the absence of a value
Using optionals to represent the failure of a function