首页 > 后端开发 > C++ > C 中移出的标准库对象允许执行哪些操作?

C 中移出的标准库对象允许执行哪些操作?

DDD
发布: 2024-12-25 11:50:40
原创
311 人浏览过

What Operations Are Permissible on Moved-From Standard Library Objects in C  ?

对移出对象的操作

尽管常见的误解是移出对象只能被销毁,但 C 标准指定移出对象-from 标准库类型的对象被置于未指定的状态,允许有限的操作范围。此状态在对象移出后出现,启用通常没有先决条件的操作。

无条件操作

以下操作通常可应用于移出不满足前提条件的对象:

  • 销毁: 解除分配对象的内存。
  • 赋值:将移出的对象设置为另一个对象的值。
  • 持续观察:访问诸如getter 函数、数组大小和空性布尔值。

条件操作

相反,以下操作可能要求对象不处于未指定的状态,因此在移动时通常不允许-来自对象:

  • 取消引用:通过指针或引用访问对象的内部。
  • 突变:对对象的字段进行更改。

关于 std::swap

在示例交换函数模板中,赋值操作(第 2 行和3) 即使涉及移出对象也是有效的,因为赋值通常没有前提条件。

最后

标准库类型的未指定状态对象的标准详细说明位于 17.6.5.15 [lib.types.movedfrom]。

以上是C 中移出的标准库对象允许执行哪些操作?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板