如何将“无”分配给 std::Optional

2023-12-21

阅读有关std::optional http://en.cppreference.com/w/cpp/utility/optional,我对分配值的标准方法感到困惑某物 and nothing to an optional.

I guess operator=将是为可选值分配值的标准机制。似乎有效。这是否意味着底层对象的副本?

标准分配方法是什么nothing?我见过x = {}(这对我来说没有意义,因为{}是一个空块)并且x = std::nullopt.


我不会说有一种“标准”方法可以不向 std::Optional 分配任何内容。

如果你读过提案 https://isocpp.org/files/papers/N3672.html#rationale.reset_syntaxl for std::optional(“添加一个实用程序类来表示可选对象的提案”)作者按以下顺序提出了两种方法:

我们在标准语言中提出了额外的要求,以确保以下语法适用于重置可选:

op = {};

我们认为这将成为 C++ 中重置(置于默认构造状态)值的常见习惯用法

请注意,这并不是脱离可选对象的唯一方法。您还可以使用:

op = std::nullopt;

std::optional::reset在撰写该提案时不存在,因此没有提及,但这也是一种有效的方法。

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

如何将“无”分配给 std::Optional? 的相关文章

  • 更新面板工作速度非常慢

    我正在编写一个用户可以注册的应用程序 注册时 可以选择多个选项 并根据这些注册字段可见或不可见以及是否必需 我想出了一个想法 所有字段都将位于 updatePanel 中 当用户更改注册选项时 我将在服务器端设置这些字段的可见性 它可以工作
  • 如何在 VC++ CString 中验证有效的整数和浮点数

    有人可以告诉我一种有效的方法来验证 CString 对象中存在的数字是有效整数还是浮点数吗 Use tcstol http msdn microsoft com en us library w4z2wdyc aspx and tcstod
  • Environment.CurrentDirectory 与 System.IO.Directory.GetCurrentDirectory

    我正在编写一个 Net WinForms 并不断在调试和发布配置之间切换 并且有一些文件我需要任一配置才能访问 我想做的是将文件放在 BIN 文件夹中的公共目录中 这样它看起来像这样 MyProject Bin CommonFiles My
  • 如何在类文件中使用 Url.Action() ?

    如何在 MVC 项目的类文件中使用 Url Action Like namespace 3harf public class myFunction public static void CheckUserAdminPanelPermissi
  • 前向声明类型和“已声明为类类型的非类类型”

    我对以下代码有问题 template
  • 从复选框列表中选择循环生成的复选框中的一个复选框

    抱歉我的英语不好 在我的 ASP NET 网站上 我从 SQL 表导入软件列表 看起来像这样 但实际上要长得多 Microsoft Application Error Reporting br br Microsoft Applicatio
  • 如何将 SOLID 原则应用到现有项目中

    我对这个问题的主观性表示歉意 但我有点卡住了 我希望之前处理过这个问题的人能够提供一些指导和建议 我有 现在已经成为 一个用 C 2 0 编写的非常大的 RESTful API 项目 并且我的一些类已经变得巨大 我的主要 API 类就是一个
  • java中如何重新初始化int数组

    class PassingRefByVal static void Change int pArray pArray 0 888 This change affects the original element pArray new int
  • 如何在 C# Designer.cs 代码中使用常量字符串?

    如何在 designer cs 文件中引用常量字符串 一个直接的答案是在我的 cs 文件中创建一个私有字符串变量 然后编辑 Designer cs 文件以使用此变量 而不是对字符串进行硬编码 但设计者不喜欢这样抛出错误 我明白为什么这行不通
  • 什么是空终止字符串?

    它与什么不同标准 字符串 http www cplusplus com reference string string 字符串 实际上只是一个数组chars 空终止字符串是指其中包含空字符的字符串 0 标记字符串的结尾 不一定是数组的结尾
  • 如何使用 x64 运行 cl?

    我遇到了和这里同样的问题致命错误 C1034 windows h 未设置包含路径 https stackoverflow com questions 931652 fatal error c1034 windows h no include
  • 如何递归取消引用指针(C++03)?

    我正在尝试在 C 中递归地取消引用指针 如果传递一个对象 那就是not一个指针 这包括智能指针 我只想返回对象本身 如果可能的话通过引用返回 我有这个代码 template
  • 将 Word 转换为 PDF - 禁用“保存”对话框

    我有一个用 C 编写的 Word 到 PDF 转换器 除了一件事之外 它工作得很好 有时 在某些 Word 文件上 后台会出现一条消息保存源文件中的更改 gt 是 否 取消 但我没有对源文件进行任何更改 我只想从 Word 文件创建 PDF
  • 比较:接口方法、虚方法、抽象方法

    它们各自的优点和缺点是什么 接口方法 虚拟方法 抽象方法 什么时候应该选择什么 做出这一决定时应牢记哪些要点 虚拟和抽象几乎是一样的 虚方法在基类中有一个实现 可以选择重写 而抽象方法则没有 并且must在子类中被覆盖 否则它们是相同的 在
  • 模板类的模板构造函数的 C++ 显式模板特化

    我有一个像这样的课程 template
  • C++ 对象用 new 创建,用 free() 销毁;这有多糟糕?

    我正在修改一个相对较大的 C 程序 不幸的是 并不总是清楚我之前的人使用的是 C 还是 C 语法 这是在一所大学的电气工程系 我们 EE 总是想用 C 来做所有事情 不幸的是 在这种情况下 人们实际上可以逃脱惩罚 但是 如果有人创建一个对象
  • 如何解压 msgpack 文件?

    我正在将 msgpack 编码的数据写入文件 在编写时 我只是使用 C API 的 fbuffer 如 我为示例删除了所有错误处理 FILE fp fopen filename ab msgpack packer pk msgpack pa
  • 了解 Lambda 表达式和委托 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经尝试解决这个问题很长一段时间了 阅读在线博客和文章 但到目前为止还没有成功 什么是代表 什么是 Lambda 表达式 两者的优点
  • 没有“对 *this”功能的右值引用的解决方法

    我有一个围绕可移动对象的代理容器类 并希望代理能够隐式生成对底层对象的右值引用 但仅当代理本身被移动时 我相信我将能够按照提案 n2439 实施此行为 将移动语义扩展到 this http www open std org jtc1 sc2
  • 在 System.Type 上使用条件断点时出错

    这是函数 public void Init System Type Type this Type Type BuildFieldAttributes BuildDataColumns FieldAttributes 我在第一行设置了一个断点

随机推荐

  • 如何通过 CSS 在 UL/LI html 列表中设置项目符号颜色,而不使用任何图像或 span 标签 [重复]

    这个问题在这里已经有答案了 想象一个简单的未排序列表 其中包含一些 li 项目 现在 我已将子弹定义为方形 list style square 但是 如果我设置颜色 li li 项目与color F00 then 一切变红了 虽然我只想设置
  • Spring ClassPathXmlApplicationContext NullPointerException

    尝试使用弹簧 xml文件位于src下 我已经搜索过 但找不到问题所在 好像找不到xml文件 我收到以下错误 Exception in thread main java lang ExceptionInInitializerError at
  • 使用 GPU 获取数字列表的统计信息

    我的文件中有几个数字列表 例如 333 324 123 543 00054 2243 333 53343 4434 现在 我想使用 GPU 获取每个数字出现的次数 我相信这在 GPU 上比在 CPU 上执行得更快 因为每个线程可以处理一个列
  • 在 Matlab 中创建“多孔”中值滤波器

    我需要做的是在 Matlab 中创建一种用于图像处理的 特殊 中值滤波器 多孔 中值滤波器 这是一个排除区域中心元素的过滤器 对于标准中值滤波器 我使用medfilt2函数 但我无法将其掩码 内核 作为矩阵传递 它不是线性变换 例如 使用标
  • JPA Map 映射

    如何在不使用 Hibernate 类的情况下在 JPA 中映射 Map 虽然Subhendu Mahanta给出的答案是正确的 但 CollectionOfElements已弃用 您可以使用 ElementCollection反而 Elem
  • 如何格式化 R Shiny numericInput?

    我有一个闪亮的应用程序 其中有很多numericInput字段 我想要一种格式化的方法numericInput每 10 3 之间用逗号分隔的字段 例如 我想要 5 000 000 而不是 5000000 我可以在 R 中使用format a
  • knitr 中的 dygraph 不起作用

    当尝试使用 Knit 在 R 中编织我的 dygraph 时 library dygraphs dygraph nhtemp main New Haven Temperatures gt dyRangeSelector dateWindow
  • Azure 门户看不到 DevOps 组织 [帐户问题?]

    我在将 Azure Web App 连接到 Azure DevOps 组织时遇到问题 我以某种方式设法为一个 Web 应用程序做到了这一点 通过选择创建一个新的 DevOps 项目 但现在很难设置一个新的 Web 应用程序来链接到同一个 D
  • 反应本机如何将图像和onpress添加到可触摸中

    我在反应本机中有可触摸的 在可触摸的内部我有图像并且在新闻上像这样
  • Keras 有没有办法立即停止训练?

    我正在为我的自定义提前停止回调tf keras训练 为此我可以设置变量self model stop training True在回调函数之一中 例如on epoch end 然而 Keras 仅在当前 epoch 完成时才停止训练 即使我
  • 在 Java 中从 JButton 拖放到 JComponent

    我在互联网上搜索了如何将 JButton 拖放到对象的示例 但我无法使其工作 我的程序所做的是 当我单击按钮时 对象更新了一个字段 使用选定的 object setField 我希望能够通过拖动 JButton 而不是单击来完成此操作 我怎
  • 赋值的左侧必须是变量[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 对于以下方法 Override public void onCreateContextMenu ContextMenu menu
  • 找到第二大的元素

    在给定的数组中如何找到第二个 第三个 第四个或第五个值 另外 如果我们使用max python中的函数的复杂性顺序是多少 即与该函数相关的顺序max def nth largest li n li remove max li print m
  • VBA:字典内存问题?填充 dict、.removeall、填充问题

    因此 我在这里使用了一些代码 其中我使用一个字典来填充作为自定义类中的属性保存的两个不同的字典 我这样做是为了效率 注意 我有一个解决此问题的方法 即为我想要设置的每个属性使用字典 但这并不是太有效 大致这是我的代码 for iKey 1
  • ORDER_BY 日期 LIMIT 1 [重复]

    这个问题已经存在了 我有一个名为 notify 的表 其中包含 寻求者 捐赠者 日期 列 datetime 类型的日期列 它存储以下格式 YYYY MM DD HH MM SS我正在尝试从通知表中选择具有最新日期的 1 条记录 然后将该日期
  • WPF Datagrid selectitem = MVVM 中的 null

    我正在尝试使用 MVVM 模式来处理数据网格 问题是 每当我将绑定到 SelectedItem 的 VM 属性更改为 null 时 视图不会 取消选择 当前选定的项目 这是我在 xaml 中的绑定
  • 如何查找页面中的所有元素

    我知道有两种方法可以找到页面中的所有元素 document getElementsByTagName and document all 有更好的方法还是其中最好的方法之一 我正在制作一个元素选择器 主要用于练习 我想知道获取页面中所有元素的
  • 使用分类数据的Python堆积条形图

    我有一个 Pandas 数据框 1800 obs 看起来像这样 A B C D 1 CL0 CL1 CL2 CL0 2 CL2 CL1 CL1 CL3 3 CL3 CL2 CL0 CL1 n CL2 CL1 CL0 CL3 我想创建一个堆叠
  • 映射到 PetaPoco 中的集合?

    有没有办法将以下内容映射到Dictionary
  • 如何将“无”分配给 std::Optional

    阅读有关std optional http en cppreference com w cpp utility optional 我对分配值的标准方法感到困惑某物 and nothing to an optional I guess ope