博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
不要想当然的认为移动函数是必然存在, 高效且可用的.
阅读量:6531 次
发布时间:2019-06-24

本文共 390 字,大约阅读时间需要 1 分钟。

1. 当没有移动操作可使用时. 如果类的设计者把一个类的移动拷贝和移动运算符重载都声明为 delete, 那么你使用的所谓 "移动 构造函数函数/运算符" 实际上还是拷贝运算符.

2. 当移动没有拷贝块时有些情况下, 移动并不比拷贝快, 比如 面对 small string optimization (SSO) 的情况下("small" 意味着容量小于 15个字节) 这样的 small string 会储存在 string 对象的缓冲区中, 而不需要给它们在堆中分配空间. 在这种情况下, 移动就不见得比拷贝要快.
3. 移动函数不满足要求. 在一些情况中, 一些移动操作是要求执行移动的函数是声明 noexcept 的. 但是移动函数并没有声明是 noexcept.

转载于:https://www.cnblogs.com/wuOverflow/p/4209750.html

你可能感兴趣的文章