何时复制和交换习语不适用

Dar*_*ius 13 c++ copy-and-swap

看完有关的复制和交换成语我读过这个这下称(2):

class_name & class_name :: operator= ( const class_name & )     (2)     
Run Code Online (Sandbox Code Playgroud)

(2)当不能使用复制和交换习语时,复制赋值运算符的典型声明

我们何时应该避免使用复制和交换习惯用法?

什么时候"完全不能使用"?

是否有现实生活中的情况,即复制和交换以及零规则都不适用?

我确实找到了这个问题,但它过于具体,没有包含任何关于如何识别此类案例的指南.

eer*_*ika 7

我们何时应该避免使用复制和交换习惯用法?

当你可以证明天真的副本是安全的,速度比swap.

当没有成员指针(既不是智能指针也不是原始指针)拥有对象时,您可以识别所有成员对象的情况.

什么时候"完全不能使用"?

当类型不可交换时,不能使用复制和交换.

要进行交换,类型必须是可移动构造和可移动分配,或者您必须已定义swap成员函数或朋友函数.