我已经使用实验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 表达式更清楚。