E-Ink 新闻日报

返回列表

在 C++ 中懒惰

文章说明了 std::optional::value_or 会提前求值,从而导致不必要的计算,并指出 C++23 的 std::optional::or_else 通过接受可调用对象实现惰性求值。随后提供了一种通用方法,使其他 STL 函数(如 std::map::try_emplace)也能实现惰性求值。

背景

惰性初始化在真正需要结果时才进行耗时计算,常用于提升性能。C++ 中函数参数在调用前会先求值,这会导致像 std::optional::value_or 这样的接口失去惰性。

来源
Lobsters
发布时间
2026年9月13日 20:50
评分
5.0 / 10