C++迎来重大更新,对这门语言你了解多少?

上个月 , C++ 20的国际标准草案投票结束 , 而且获得了全票通过 , 这预示着C++ 20将有望在年底正式发布 ,C++ 语言也将迎来一次非常重大的更新 。
而在此之前 , C++这门占有市场7%份额的主流编程语言已经诞生了有足足40多年 , 对于这门语言的历史和发展 , 你知道多少?
为了解决一个小问题
1982年 , 一个年轻人从剑桥毕业后获得了著名的贝尔实验室的工作机会 , 为了解决工作中遇到的一个小问题 , 他创造出了C++ 。 这个人就是丹麦计算机科学家本贾尼·斯特劳斯特卢普(Bjarne Stroustrup) 。
刚到贝尔实验室的时候 , Stroustrup在贝尔实验室从事将C改良为“带类的C(C with classes)”的工作 。 在工作中 , 他发现了Simula语言虽然具有对大型软件开发非常有帮助的功能 , 但是就实际体验而言 , 该语言实在太慢了 。 Stroustrup对Simula体系的运行效率非常不满意 。
于是 , Stroustrup开始着手自己编写语言 , 希望编写起来不仅简单、正确可靠 , 还能运行高效、可移植 。 他以C语言为背景 , 以Simula思想为基础 , 就此走上了C++的开发之路 。
最初 , 他只是向C编译器Cpre添加了功能 , 包括类 , 派生类 , 强类型 , 内联和默认参数 。 到1982年 , 斯特劳斯特卢普开始使用Classes开发C的后继者 , 并最终将其命名为“ C++” 。
自此 , C++这门编程语言正式诞生 。
最流行的语言之一
1985年 , C++被商业化发布并得到迅速传播 , 一举成为20世纪90年代的主流面向对象编程语言 , 成为当时最流行的语言之一 。
作为C++语言的奠基人 , Stroustrup获得了1993年的格雷斯·默里·霍珀奖(ACM Grace Murray Hopper) 。
在20世纪90年代早期 , C++建立了第一个标准 , 成立了一个ANSI和ISO国际标准化组织的联合标准化委员会 , 该委员会在1994年1月25日提出了第一个标准化草案 。
此后 , 为了帮助支持和发展C++社区 , Stroustrup在C++标准委员会工作了超过25年 , 不断努力将C++改进为一个稳定、实用的工具 。
这门语言也被广泛应用于各行各业 , 这令Stroustrup自己都感到惊讶:从电饭煲到太空火箭 , 放眼望去 , 汽车、电影、游戏、医药、金融、计算机、农业等等行业都有使用 C++ 。 甚至人类基因组计划、欧洲核子研究中心和其他地方的基础物理研究还有火星探测器 , C++ 都在其中发挥了作用 。
由于编写这门语言的贡献 , Stroustrup获得了许多荣誉:
2004年 , Stroustrup成为美国国家工程院院士;
2005年 , Stroustrup作为第一位计算机科学家获得西格马西(科学研究协会)颁发的威廉·普罗克特科学成就奖;
2015年 , Stroustrup获得了被认为是软件工程领域最负盛名的奖项之一的达尔·尼加德奖;
2017年 , Stroustrup获得了由工程技术的英国学会(IET)颁发的最高荣誉——法拉第奖(Faraday);
2018年 , 美国国家科学院将NEA的最高荣誉 , 也是工程师的世界最高荣誉之一的德雷珀奖颁发给Stroustrup 。
如今 , 这门经久不衰的语言的故事还在延续 。 对此次C++20的更新 , 大家是否早已急不可耐?
C++20的四大新特性
可以确定的是 , 此次c++20更新 , 将会带来四大新特性的改变:
1.概念
使用模板进行通用编程 , 需要定义能通过各种类型(type)使用的函数和类 。 但在实例化模板时经常会出现用错类型的问题 , 其结果通常是几页难懂的报错信息 。 此次更新的概念让我们能为模板编写要求 , 编译器则可以检查这个要求 , 这革新了我们思考和编写通用代码的方式 。
2.范围
【C++迎来重大更新,对这门语言你了解多少?】范围库是概念的首个客户 。 它支持的算法满足以下条件:
◇可以直接在容器上操作;
◇无需迭代器指定一个范围;
◇可以宽松地评估;
◇可以组合 。
3.协程
c++20提供的无栈协程 , 有三大优势:
◇没有传染性;
◇可以与以前非协程风格的代码并存;
◇不需要额外的调度器 。
4.模块
◇模块承诺能够实现:
◇更快的编译时间;
◇宏的隔离;
◇表达代码的逻辑结构;
◇不必再使用头文件(header file);
◇摆脱丑陋的宏方法 。
C++创始人亲授学习秘诀
创造出C++之后 , Stroustrup对C++语言的推广也做出了极大的贡献 。 他写的书《C++程序设计语言》已经成为C++最为权威的学习资料 , 至少被翻译成18种语言 。
现在 , Stroustrup本人的另一本著作《C++语言的设计和演化》(The Design and Evolution of C++)也于今年9月出版啦 。