我已经使用实验std::optional一段时间了,我想知道是否std::optional<T>::value_or_default 曾经考虑过类似的方法。如果参与,这将为您提供价值,如果不参与,则为您提供默认值T。是的,它很容易写std::optional::value_or( T { } ),但有时如果T有一堆字符,我认为它不像写那么清楚value_or_default。
此外,像 n3672 这样的论文并没有给出一个很好的理由来说明为什么std:optional::is_engaged不包括这样的方法。我理解为什么nullopt在某些情况下有用并被包括在内,但我认为std::optional::is_engaged简单的 if 表达式更清楚。