首页 >后端开发 >C++ >哪些操作对 C 移出对象有效?

哪些操作对 C 移出对象有效?

Barbara Streisand
Barbara Streisand原创
2024-12-25 17:42:15174浏览

What Operations Are Valid on C   Moved-From Objects?

可以移动哪些对象?

C 标准允许移动 C 标准库中定义的类型的对象。这意味着可以使用现有对象中的数据创建和初始化新对象,然后将其移至未指定的状态。

对移出对象的有效操作

该标准定义移出的对象应置于有效但未指定的状态。这意味着任何没有先决条件的操作都可以在移出的对象上执行。此类操作通常包括:

  • 销毁
  • 赋值
  • 常量观察者(例如,get、empty、size)

操作先决条件

通常有先决条件的操作,例如取消引用和pop_back,不能直接对移出的对象执行。

示例:交换函数模板

标准库中的交换函数模板演示了分配给移出对象的能力。在此函数中,移出的对象首先分配给临时变量(第 1 行)。然后,在为原始对象分配临时变量的值(第 3 行)之前,为原始对象分配另一个对象的值(第 2 行)。

初始化语法注意事项

第 1 行中使用 T c = std::move(a) 而不是 T c(std::move) 与移动操作的讨论无关。这只是风格和偏好的问题。

以上是哪些操作对 C 移出对象有效?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn