Bjarne Stroustrup探讨C++新价值术语:深度解析与影响
需积分: 0 104 浏览量
更新于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-12 上传
2024-11-12 上传
2024-11-12 上传
2024-11-12 上传
dkshsc
- 粉丝: 0
- 资源: 10
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍