C 11中如何区分value category(值类别)与move semantics(移动语义)的应用场景?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1807个文字,预计阅读时间需要8分钟。
前言+C++11之前value categories只有两类,lvalue和rvalue,在C++11之后出现了新的value categories,即prvalue、glvalue和xvalue。不理解value categories可能会让我们在遇到问题时感到困惑,不知如何修改。所以,理解它们是很有必要的。
前言
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的理解。首先从move semantics开始。
什么是move semantics(移动语义)?
semantics是来自语言学的一个概念,翻译成中文就是“语义”。说到计算机语言,可能有很多人认为他是计算机科学下面的子门类。实际上他是计算机科学和语言学的交叉科目,里面有很多概念都来自语言学的内容,甚至也有语言学科班的学生之后去做编译的研究/工作。
本文共计1807个文字,预计阅读时间需要8分钟。
前言+C++11之前value categories只有两类,lvalue和rvalue,在C++11之后出现了新的value categories,即prvalue、glvalue和xvalue。不理解value categories可能会让我们在遇到问题时感到困惑,不知如何修改。所以,理解它们是很有必要的。
前言
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的理解。首先从move semantics开始。
什么是move semantics(移动语义)?
semantics是来自语言学的一个概念,翻译成中文就是“语义”。说到计算机语言,可能有很多人认为他是计算机科学下面的子门类。实际上他是计算机科学和语言学的交叉科目,里面有很多概念都来自语言学的内容,甚至也有语言学科班的学生之后去做编译的研究/工作。

