是否有可能以惰性方式评估 std::optional::value_or(expr)
参数,因此 expr
仅在没有的情况下计算值(value)?
如果不是,什么是合适的替代品?
最佳答案
#include <optional>
template <typename F>
struct Lazy
{
F f;
operator decltype(f())() const
{
return f();
}
};
template <typename F>
Lazy(F f) -> Lazy<F>;
int main()
{
std::optional<int> o;
int i = o.value_or(Lazy{[]{return 0;}});
}
关于c++ - std::optional::value_or() - 惰性参数评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51695541/