Bjarne Stroustrup探讨C++新价值术语:深度解析与影响
需积分: 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" 相关的问题,这篇文章将是一个深入学习的宝贵资源。
2018-06-25 上传
点击了解资源详情
2024-11-26 上传
2024-11-26 上传
dkshsc
- 粉丝: 0
- 资源: 10
最新资源
- AJT-Practicals:回购在AJT中完成的实践
- 行业文档-设计装置-一种用于汽车主动安全测试的多用途驾驶模拟平台.zip
- JavaECC:椭圆曲线密码学 - El Gamal (ECCEG) 算法在 Java 中的实现
- saas CRM系统网页UI模板 .fig素材下载
- administration-template
- LinearAnalysisofPlates_finiteelement_
- 基于uniapp的多tab滚动吸顶效果
- 《JAVA面试题》--数据结构(链表、队列、栈、二叉树、哈希表等)以及一些常用的算法排序:归并、快速排序、基数排序等.zip
- goit-markup-hw-05:作业#5
- devday-spring:VaadinSpring附加组件的Vaadin DevDay示例项目
- 一组响应式网页元素设计素材 .fig素材下载
- Python库 | tqsdk2-1.1.0-cp38-cp38-manylinux1_x86_64.whl
- scratch3.0_html5_js.rar
- javaee登陆页面源码-bluemix-java-postgresql-uploader:用Java编写的Bluemix示例应用程序,使用P
- EpsonL4169打印机修复软件
- S/Key Generator for J2ME architecture-开源