價值或

void print_name( std::ostream& os, std::optional<std::string> const& name ) {
  std::cout "Name is: " << name.value_or("<name missing>") << '\n';
}

value_or 要麼返回儲存在 optional 中的值,要麼返回引數,如果那裡沒有任何儲存。

這使你可以使用 maybe-null 可選,並在實際需要值時提供預設行為。通過這種方式,預設行為決策可以被推回到最佳製造和立即需要的程度,而不是在某些引擎的內部產生一些預設值。