Bjarne Stroustrup探讨C++新价值术语:深度解析与影响

需积分: 0 0 下载量 143 浏览量 更新于2024-08-05 收藏 218KB PDF 举报
"New Value Terminology" 是一篇由 Bjarne Stroustrup 发表的关于 C++ 语言的重要论文,其中探讨了 C++ 中核心概念 "lvalue" 和 "rvalue" 的深层次含义。这些术语起源于 Christopher Strachey 在 CPL(CPL编程语言)中的引入,CPL是 BCPL 的前身。Dennis Ritchie 在 C 语言中使用了 "lvalue" 这一术语,但并未提及 "rvalue",他认为 "lvalue" 和 "非 lvalue" 已经足够描述表达式的性质。 在早期的 C++ 定义中,Stroustrup 和 Ellis 也沿用了这一传统,尽管这两个术语在 C++ 的标准文档中广泛出现,但其使用并非随意。Stroustrup 指出,对这些基础术语进行改动必须有充分的理由和谨慎处理,因为它们对于理解和实现 C++ 的语义至关重要。 "lvalue" 通常指代可以被赋值的对象,而 "rvalue" 则代表不能被赋值的对象,如临时对象或函数返回值。在 C++11 之后,随着 rvalue引用(rvalue reference)等新特性的发展,"rvalue" 的概念得到了扩展,不仅限于临时对象,还涵盖了那些不希望或不能被赋值的对象。作者强调,理解这些术语及其演变对于开发者来说是至关重要的,尤其是在设计和优化 C++ 程序时。 这篇论文可能包含对 C++ 语言设计哲学的回顾,以及如何在新的语言版本中平衡传统与创新,确保代码的可读性和性能。它可能还探讨了如何在现代 C++ 中处理对象生命周期和资源管理,特别是在移动语义(move semantics)和通用编程(generic programming)的背景下。 阅读这篇文章,读者可以期待深入了解 C++ 中这些核心概念的历史背景、发展过程以及对当前和未来语言规范的影响。同时,论文作者 Bjarne Stroustrup 的专业知识和经验也为理解这些复杂主题提供了宝贵的视角。如果你在编写 C++ 代码或参与技术讨论时遇到 "lvalue" 和 "rvalue" 相关的问题,这篇文章将是一个深入学习的宝贵资源。