23|未来展望:透过未来标准演进看C++设计哲学
C++ 的标准化进程
- 深入了解
- 翻译
- 解释
- 总结
C++设计哲学的演进围绕着将计算提前到编译时而非运行时,以大幅提升程序性能。文章回顾了C++的标准化进程,强调了C++的未来演进理念,强调了核心范式和效率。C++的核心范式依然是支持面向对象编程、支持泛型编程、可扩展的静态类型安全,但在不断完善标准库支持的基础上,逐渐向外扩展延伸,适用于更多的问题场景。C++始终坚持效率原则,语言特性必须能够直接映射到硬件,实现零负担的抽象。文章还讨论了C++的编译时计算、洋葱原则、对旧特性的兼容以及标准库的扩充。总体而言,C++的演进将继续坚守效率原则,以保持其核心竞争力。
《现代 C++20 实战高手课》,新⼈⾸单¥59
全部留言(1)
- 最新
- 精选
- peter请教老师几个问题: Q1:Java是动态语言,运行时会做很多事情,这是导致Java比C++性能差的一个主要原因吧。 Q2:嵌入式开发一般不用C++,有界面的应用一般用VC等。那纯C++开发会用在什么场景呢。 Q3:一些人强烈反对使用模板和C++标准库,说是性能差。C++也就是自身的语言特性和库,这些不用的话,那还用什么啊?
作者回复: 1. Java的核心问题在于无法直接在CPU上执行,需要以虚拟机作为媒介,运行时的动态特性当然也会影响性能,这些都是性能不如C++的原因。 只不过由于现在JIT和垃圾回收技术相当成熟,很多场景下Java并不一定比C++性能差,只不过如果考虑通用场景,C++平均性能肯定是比较好的。 2. C++主要用于大规模的工业和行业软件开发(比如AutoCAD等),这些软件往往同时需要考量性能、响应速度和语言抽象能力,这个时候C++是比较合理的选择。 3. 模板和C++标准库本身性能在通用场景下并不差。首先现代体系结构里,模板一般不会因为页问题引发性能问题,还往往是一种能够提升性能的技术。其次你要相信标准库提供的算法性能在很多场景下是通用场景的最佳实现,肯定比大多数人手糊的算法代码性能要好。之所有人说标准库性能差,大部分是因为他们的场景比较特殊需要进行特殊优化(这个时候任何通用算法库都不可能适用。。。),最典型的就是高性能计算、科学计算和游戏开发等场景,这些场景下都有合适的成熟的第三方库,自然不适合使用标准库。还有就是他们自己的场景可以忽略掉通用场景的很多问题,自然可以写出在“特定情况”下性能更好的实现,这种情况也不需要标准库。但无论如何在大多数通用场景下,标准库绝对是更高效和更安全的第一选择。
2023-03-16归属地:北京4