【备忘】c++之移动语意

个人认为c++11里最难的是右值引用,因此在此梳理一下

移动语义:利用move函数来标记右值进行移动。对于基本类型,行为和拷贝一样。对于内存上的资源,其速度会大幅提升

虽然关于移动构造的规则繁杂,但是可以总结出几个简单实用的原则

1能使用移动的时候就应该使用移动

2没有资源的类进行移动构造,其行为等价于拷贝

3有资源的类进行移动构造,需要将资源指针置空。(如果你不确定析构函数的行为,就将所有资源相关指针置空而不只是handle)

推荐阅读更多精彩内容