|
|
1
21
C++11标准第23.3.6.3/14段规定(关于
换句话说,这意味着
为了满足这一保证,实现通常采用
copy-and-swap idiom
:如果的复制构造函数
但是,如果矢量的先前内容 感动的 而不是被复制到新的存储器中 move构造函数抛出 ,那么我们就会不可逆转地改变向量的原始内容。
因此,实现将使用的复制构造函数
对
|
|
|
2
5
想想异常保证:如果在重新分配过程中出现异常,向量必须保持不变。这只能通过复制元素并保留旧集来保证,直到整个复制成功为止。
只有知道move构造函数不会抛出,才能安全地将元素移动到新位置。要实现这一点,请声明move构造函数
|