摘要:
C++11之前value categories只有两类,lvalue和rvalue,在C++11之后出现了新的value categories,即prvalue, glvalue, xvalue。不理解value categories可能会让我们遇到一些坑时不知怎么去修改,所以理解value categories对于写C++的人来说是比较重要的。而理解value categories离不开一个概念——move semantics。了解C++11的人我相信都了解了std::move,右值引用,移动构造/移动复制等概念,但是对move semantics这个概念的准确定义,可能还有很多人比较模糊。我想通过这篇文章谈一谈我对value categories和move semantics的理解。 阅读全文