自动生成移动操作的规则
在 C 11 中,编译器自动生成移动操作的能力与复制操作的规则不同在 C 98 中。
移动构造函数和移动赋值运算符
在以下条件下,编译器会自动生成移动构造函数和移动赋值运算符:
不自动生成移动操作的情况
如果满足以下任一条件,编译器将不会自动生成移动操作:
验证自动生成规则的工具
以下资源提供了自动生成特殊规则的直观表示成员,包括移动操作:
[Howard Hinnant 的 ACCU 2014 演示幻灯片图片](https://i.sstatic.net/b2VBV.png)
其他说明
表中的红色方块表示已弃用的行为。如果您希望避免依赖于弃用,请考虑遵循 C 98/03 中的“3 规则”:如果声明析构函数,则声明两个副本成员,或者声明至少一个副本成员。
以上是C 11 编译器何时自动生成移动操作?的详细内容。更多信息请关注PHP中文网其他相关文章!