码迷,mamicode.com
首页 > 移动开发 > 详细

不要想当然的认为移动函数是必然存在, 高效且可用的.

时间:2015-01-08 00:56:59      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:

1. 当没有移动操作可使用时. 如果类的设计者把一个类的移动拷贝和移动运算符重载都声明为 delete, 那么你使用的所谓 "移动 构造函数函数/运算符" 实际上还是拷贝运算符.
2. 当移动没有拷贝块时有些情况下, 移动并不比拷贝快, 比如 面对 small string optimization (SSO) 的情况下("small" 意味着容量小于 15个字节) 这样的 small string 会储存在 string 对象的缓冲区中, 而不需要给它们在堆中分配空间. 在这种情况下, 移动就不见得比拷贝要快.
3. 移动函数不满足要求. 在一些情况中, 一些移动操作是要求执行移动的函数是声明 noexcept 的. 但是移动函数并没有声明是 noexcept.

不要想当然的认为移动函数是必然存在, 高效且可用的.

标签:

原文地址:http://www.cnblogs.com/wuOverflow/p/4209750.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!