pdf文档 This is C++

8.25 MB 67 页 0 评论
语言 格式 评分
英语
.pdf
3
摘要
文档介绍了C++的核心特性和设计理念,强调了其在性能方面的优势。C++的性能是通过接受未定义行为(UB)和在安全性方面做出权衡来实现的。文档讨论了现代C++的关键特性,如移动语义和右值引用语法,以及这些特性如何影响代码效率和逻辑错误。同时,文档还涉及了C++标准库中的类型功能,例如std::vector的操作方法,并比较了效率与安全性的不同选择。
AI总结
《This is C++》文档总结如下: 1. **C++的特性** - **无妥协的性能**:C++追求极致性能,但通过接受未定义行为(UB)和安全性的权衡来实现。 - **未定义行为(UB)**:C++允许UB的存在,这可能导致安全隐患,但这是性能优化的代价。 2. **委员会的决策与争议** - C++委员会曾决定将某些完全-formed类型从"==默认"移动,这一决策被认为可能带来性能下降和逻辑错误,部分人认为这是一个错误。 3. **现代C++的安全与性能** - **移动语义与右值引用**:通过使用`std::move`和右值引用,C++在性能和安全性之间找到了平衡,例如在`Widget`类的构造函数中使用`std::list &&`。 - **效率与安全的对比**: - `std::vector`的`operator[]()`高效但不检查范围(潜在安全风险)。 - `at()`检查范围更安全,但效率较低。 4. **未定义行为的具体表现** - 包括分支预测、简单操作(如除以零时返回常量)等,可能导致性能问题。 总结:C++通过接受未定义行为(UB)和移动语义等机制,在性能和安全之间进行权衡,既追求极致性能,又提供了部分安全保障,但仍需开发者谨慎使用。
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余 55 页请下载阅读 -
文档评分
请文明评论,理性发言.