价值或

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 可选,并在实际需要值时提供默认行为。通过这种方式,默认行为决策可以被推回到最佳制造和立即需要的程度,而不是在某些引擎的内部产生一些默认值。