nullptr、{} 和 nullopt 之间的区别

2024-04-06

为什么我不能使用nullptr代替nullopt?以及为什么{}翻译成这样nullopt?


为什么我不能使用nullptr代替nullopt?

因为它们是不同的东西。它们的含义不同,用途也不同。

必须要有鲜明的特色nullopt使用价值std::optional因为nullptr已经做了一些事情:

std::optional<int*> o;
o = nullptr;
assert( o.has_value() );
o = std::nullopt;
assert( !o.has_value() );

And why {}翻译成这样nullopt?

(注:这仅适用于std:optional使用时不{}与其他类型。)

这样做是因为可以很方便地说o = {}并让它 Do The Right Thing™ 等规范std::optional是为了让它工作而编写的。

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

nullptr、{} 和 nullopt 之间的区别 的相关文章

随机推荐

  • “ps aux”有效,但“ps -aux”无效

    这似乎是一个愚蠢的问题 但我一直无法找到明确的答案 这个网站 http www linfo org ps html表明破折号是可选的 ps aux 然而 ps aux有效但是ps aux引发错误no user named x 有什么想法可能
  • 无法解析方法“registerForActivityResult”

    我正在构建一个自定义电容器插件来获取用户的电话号码 我将电容器 3 与 Ionic 6 一起使用 我找到了一个未被弃用的解决方案 并且是最近才获取用户的电话号码 这是我获取电话号码的代码 private void requestHint H
  • Chrome在浏览器后退按钮上再次执行所有JS

    我正在开发一个网络应用程序 我编写了一些 JS 脚本 以便在文档就绪时执行 但是在 Chrome 中 当我们单击后退按钮并返回到上一页时 它会再次执行所有 js 脚本 但是当我在 Firefox 上使用相同的方法时 它不会执行 JS 我在页
  • R 中的子列表命名

    假设我有一个包含 3 个子列表的列表 每个子列表携带 3 个数据帧 它看起来像这样 数据在最后 然后假设我有 2 个向量 j lt seq 10 20 length out 3 v lt seq 0 1 length out 3 我想创建一
  • 我应该将 Visual Studio 调试器附加到哪个进程来调试 Kestrel 应用程序?

    我正在启动命令行并使用运行我的应用程序dotnet run命令 这将启动 Kestrel 并显示我的应用程序 我应该如何确定要附加调试器的进程 以便可以调试 Kestrel 现在托管的网站 我特别需要能够这样做 这意味着我不能使用标准 F5
  • 如何在 Selenium 中结合隐式和显式超时?

    我正在使用带有隐式超时的 Selenium ChromeDriver driver Manage Timeouts ImplicitWait TimeSpan FromSeconds 5 在我的一项测试中 我想用明确的超时来覆盖它 在读取属
  • 类型变量和局部抽象类型有什么区别?

    我试图理解的目的局部抽象类型在 OCaml 中 局部抽象类型与类型变量有何不同 看来他们有相同的行为 Type variable let f x a a x val f a gt a
  • Flutter 升级后无法运行应用版本解决失败

    Nope 这个答案不起作用 https stackoverflow com questions 51375674 error after running flutter upgrade这次对我来说 My flutter doctor v F
  • 选择最新的作为分组依据(或其他解决方案...)的一部分

    我有一个表 其中重要的列如下所示 username source description 我的目标是获取用户 源组合唯一的 10 条最新记录 从以下数据来看 1 katie facebook loved it 2 katie faceboo
  • 在模板中使用 django 查询集会访问数据库吗?

    当针对非上下文值调用时 模板值标签是否会强制 django 访问数据库 例如 request user username 是显示当前登录用户的用户名的调用 然而 像 request user someobject set all 会将 FK
  • 元素的屏幕坐标,通过 Javascript

    我试图获取浏览器窗口中元素的屏幕坐标 即相对于屏幕的左上角 很容易获取窗口的大小和位置 screenX screenY 也很容易 使用 jQuery 获取元素的偏移量 element offset left 但是 我需要知道从元素一直到屏幕
  • 将 Android apk 与其他可执行文件一起打包

    作为先前问题的后续 Android ioctl root权限和使用 https stackoverflow com questions 6983156 android ioctl root permissions and usage 698
  • X-Frame-Options 不起作用 IIS web.config

    我们的网站目前无法免受点击劫持 因此我进入了网络配置并添加了
  • 使用 django 中的 cpanel 创建的电子邮件

    我在我的 cpanel 上创建了一个电子邮件 ID 我想在 django 中使用它 至于gmail 我们写道 EMAIL BACKEND django core mail backends smtp EmailBackend EMAIL H
  • Spark JDBC 到 DashDB (DB2) 并出现 CLOB 错误

    我正在努力将我的 Spark 应用程序连接到 DashDB 目前 我可以很好地加载我的数据 但是 我无法将 DataFrame 保存到 DashDB 任何见解都会有所帮助 var jdbcSets sqlContext read forma
  • 注册后无法将闪存数据应用于页面

    所以我试图从登录屏幕进入管理屏幕 我设置了闪存数据 这样我就可以告诉用户他们是否已登录 并检查是否有多个用户或密码错误 它会显示抱歉未登录 这是我的控制器 public function insertInformation this gt
  • 警告:可加载部分“my_section”位于 ELF 段之外

    我使用 Cortex R4 的 Arm Compiler v6 9 构建了一个 axf elf 文件 但是 当我使用 Arm MCU Eclipse J link GDB 插件将其加载到目标时 它无法加载我的段的初始化数据 如果我使用 Se
  • 用户 ID 未显示在 Google Analytics 仪表板 (iOS) 中

    我正在尝试将 GA 的用户 ID 功能链接到我的 iOS 应用程序 但这似乎不起作用 从文档中 我启用了支持用户 ID 的视图 配置文件 然后 我设置 userId 字段 我的代码 AppDelegate m id
  • Android 导航组件:未找到 NavHostFragments 错误

    我目前正在我的应用程序中实现导航组件 但无论我做什么 似乎发现 NavHostFragment 都不起作用 我尝试过重建 失效 重新启动 更改名称以及更新我的 Android Studio 但似乎没有任何效果 我认为这也是为什么我在尝试获取
  • nullptr、{} 和 nullopt 之间的区别

    为什么我不能使用nullptr代替nullopt 以及为什么 翻译成这样nullopt 为什么我不能使用nullptr代替nullopt 因为它们是不同的东西 它们的含义不同 用途也不同 必须要有鲜明的特色nullopt使用价值std op