可以移动哪些对象?
C 标准允许移动 C 标准库中定义的类型的对象。这意味着可以使用现有对象中的数据创建和初始化新对象,然后将其移至未指定的状态。
对移出对象的有效操作
该标准定义移出的对象应置于有效但未指定的状态。这意味着任何没有先决条件的操作都可以在移出的对象上执行。此类操作通常包括:
操作先决条件
通常有先决条件的操作,例如取消引用和pop_back,不能直接对移出的对象执行。
示例:交换函数模板
标准库中的交换函数模板演示了分配给移出对象的能力。在此函数中,移出的对象首先分配给临时变量(第 1 行)。然后,在为原始对象分配临时变量的值(第 3 行)之前,为原始对象分配另一个对象的值(第 2 行)。
初始化语法注意事项
第 1 行中使用 T c = std::move(a) 而不是 T c(std::move) 与移动操作的讨论无关。这只是风格和偏好的问题。
以上是哪些操作对 C 移出对象有效?的详细内容。更多信息请关注PHP中文网其他相关文章!