摘要:
一个对象是左值还是右值会影响其成员函数的调用,在参数后边放置一个引用限定符来修饰:&表示该对象是左值,&&表示该对象是右值。 class Foo{ public: Foo sorted() &&; //右值对象可以调用 Foo sroted() const &; //任何对象都可以 private: 阅读全文
摘要:
右值的定义:只能出现在等号“=”右边的表达式。 当我们需要拷贝或者复制一个右值的时候,我们可以考虑移动右值。因为拷贝会新建一个对象,当对象初始化需要分配内存,拷贝的分配内存开销也很大,而移动不会新建对象,而是接管右值的资源。 对象移动是相对于对象拷贝的,在一些场景(比如:把对象作为一个参数传递)移动 阅读全文