std::optional::value_or() - 惰性参数求值

2024-01-02

是否可以评价std::optional::value_or(expr)以一种懒惰的方式论证,所以expr仅在没有值的情况下才计算?

如果没有,什么是合适的替代品?


#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;}});
}

DEMO http://coliru.stacked-crooked.com/a/68660776247975dc

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

std::optional::value_or() - 惰性参数求值 的相关文章

  • 部署 MVC4 项目时出错:找不到文件或程序集

    过去 我只需使用 Visual Studio 2012 发布到 AWS 菜单项即可部署我的 MVC4 网站 到 AWS Elastic Beanstalk 现在 程序可以在本地编译并运行 但无法部署 从消息来看 它似乎正在寻找不在当前部署的
  • boost::multi_index_container 复合键中的 equal_range 与比较运算符

    我正在尝试从多索引容器查询结果 其中值类型是三个元素的结构 第一个值已给出 但第二个和第三个值必须大于或小于查询参数 经过搜索后 我发现必须实现自定义密钥提取器 并且这里的一些链接建议相同 但我无法实现它 boost multi index
  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • 模板类的不明确多重继承

    我有一个真实的情况 可以总结为以下示例 template lt typename ListenerType gt struct Notifier void add listener ListenerType struct TimeListe
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • C# 中可空类型是什么?

    当我们必须使用nullable输入 C net 任何人都可以举例说明 可空类型 何时使用可空类型 https web archive org web http broadcast oreilly com 2010 11 understand
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • 为什么模板不能位于外部“C”块内?

    这是一个后续问题一个答案 https stackoverflow com questions 4866433 is it possible to typedef a pointer to extern c function type wit
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 我的 strlcpy 版本

    海湾合作委员会 4 4 4 c89 我的程序做了很多字符串处理 我不想使用 strncpy 因为它不会终止 我不能使用 strlcpy 因为它不可移植 只是几个问题 我怎样才能让我的函数正常运行 以确保它完全安全稳定 单元测试 这对于生产来
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • 可空属性与可空局部变量

    我对以下行为感到困惑Nullable types class TestClass public int value 0 TestClass test new TestClass Now Nullable GetUnderlyingType
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • 已过时 - OpenCV 的错误模式

    我正在使用 OpenCV 1 进行一些图像处理 并且对 cvSetErrMode 函数 它是 CxCore 的一部分 感到困惑 OpenCV 具有三种错误模式 叶 调用错误处理程序后 程序终止 Parent 程序没有终止 但错误处理程序被调
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反

随机推荐

  • php 中俄语的 mb_convert_encoding

    如何使用 mb convert encoding 或任何其他方法在 PHP 中将俄语字符转换为 utf 8 您尝试过以下操作吗 但不确定它是否有效 mb convert encoding str UTF 8 auto
  • 如何成功地将图像嵌入 HTML 中以在网络邮件客户端中显示?

    我正在尝试使用以 Base 64 数据 URL 编码的图像在 HTML 中进行签名 这是一个例子 img src 它与 Mac 上的 Mail 或 Thunderbird 等邮件软件配合良好 但不适用于 gmail outlook roun
  • includeHTML 用于shiny、shinyApps.IO 和 Dropbox

    晚上好 快速问题 与 R shiny 应用程序相关 托管在shinyApps IO 上 我希望在我的 Dropbox 帐户上驻留一个 HTML 文件 并使用 includeHTML 将其包含到一个闪亮的应用程序中 这样做的主要原因是我的本地
  • 从 iframe 访问父 URL

    好的 我有一个页面 在这个页面上有一个 iframe 我需要做的是在 iframe 页面上 找出主页的 URL 是什么 我已经搜索过 我知道如果我的 iframe 页面位于不同的域上 这是不可能的 因为这是跨站点脚本 但我读过的所有地方都说
  • 根据列的组合在数据框中创建唯一标识符

    我有以下数据框 id Lat Lon Year Area State 50319 36 0629 62 3423 2019 90 Iowa 18873 36 0629 62 3423 2017 90 Iowa 18876 36 0754 6
  • 从 jwilder/nginx-proxy 提供静态文件

    我有一个 Web 应用程序 由 uwsgi 提供的 django 我使用 nginx 将请求代理到特定容器 这是我的 default conf 中的相关片段 upstream web ubuntu com server 172 18 0 9
  • 限制 has_many 关系中关联数量的最佳实践?

    假设我有两个模型 用户和帐户 每个账号最多可以关联n个用户 一个用户只能关联一个账号 说 User 似乎很自然 belongs to account 和账户 has many users 但是 我不清楚通过 has many 声明限制关联数
  • C# 禁用/启用 USB 端口

    我想立即禁用 启用所有 USB 端口 我尝试了以下方法 更改注册表 具有管理员权限 disable USB storage Microsoft Win32 Registry SetValue HKEY LOCAL MACHINE SYSTE
  • 正则表达式匹配双引号外的左单引号

    Note 左双引号 ldquo 右双引号 rdquo 左单引号 lsquo 我当前的正则表达式是这样的
  • Angular 2:将视图/DOM 注入组件构造函数

    我不知道如何为组件提供对其视图的引用 以执行诸如在显示表单时关注输入元素之类的操作 我似乎无法注入Element or ng core ViewRef or ng core View进入构造函数 我怎样才能访问该视图 在 Angular 1
  • 将多个相同值字段分组到一个单元格中

    首先 记录按表组件显示在表中 而不是在报表中显示 结果如下 YEARS MONTHS SUMMONTH SUMQUARTER 2009 Jan 130984 432041 Feb 146503 Mar 154554 Apr 147917 4
  • 由于 google auth 已弃用,如何删除已打开的内容?

    根据最新通知 google plus oauth 已折旧 根据我的理解 只有当我在代码中使用 plus me 时 我才应该担心 My code google oauth remote app google consumer key app
  • Tk.winfo() 在 Windows 8 上返回错误的屏幕尺寸 / python 2.7.5

    为什么 tk winfo 返回 1280 x 800 的屏幕尺寸 我想以 1920 x 1200 的原始分辨率运行 我在控制面板中设置的 我可以以某种方式改变它吗 谢谢 Python 2 7 5 与 Windows 8 一起运行 使用控制面
  • 如果 StringSet 不存在,则追加或创建

    所以这应该很简单 我想将字符串附加到 DynamoDB 中的 StringSet 如果存在 或者创建 StringSet 属性 如果不存在 并设置值 如果我们可以在创建时用空数组初始化 StringSet 那就太好了 但遗憾的是我们不能 这
  • Spring 和 PostgreSQL 之间的编码错误

    我有一个 Spring Boot 版本 1 3 Web 应用程序 全部采用 UTF 8 格式 还有一个 PostgreSQL 服务器 服务器编码为 UTF 8 客户端编码为 WIN1252 问题是 当我手动在数据库中保存带有特殊字符的内容时
  • 当列数变化时动画回收器视图网格

    我正在使用一个RecyclerView with GridLayoutManager 用户可以在 2 和 4 之间切换跨度计数 这将产生一个动画 该动画将每个单元格的内置平移动画运行到其新位置 到目前为止我一直使用的代码是 Transiti
  • 将日期的 NSString 转换为 NSDate

    这可能是一个愚蠢的问题 但我似乎无法在这里或文档中找到答案 我想将 NSString 例如 9 22 2010 3 45 PM 转换为 NSDate 我知道使用 NSDateFormatter 但问题是 月份可以是一位数或两位数 同样 日期
  • Java 8 显示此错误。在封闭范围内定义的局部变量 itemList 必须是最终的或有效最终的

    我正在使用 java 8 编写代码 但我迭代了List然后找到RestaurantOrderBook使用类别类型 并把它List into a Map 它显示这个错误 局部变数itemList在封闭范围中定义的必须是最终的或有效最终的 Qu
  • 如何在 Play 2.6 上禁用 CSRF 过滤器?

    我一直在尝试将 Postman 与 Play Framework API 结合使用 但我不断遇到与 CSRF 过滤器相关的问题 我浏览了一些论坛 包括SO 寻找解决方案 并且众所周知的建议似乎正在添加 play filters disabl
  • std::optional::value_or() - 惰性参数求值

    是否可以评价std optional value or expr 以一种懒惰的方式论证 所以expr仅在没有值的情况下才计算 如果没有 什么是合适的替代品 include