C++之父Bjarne Stroustrup:程序员在数学上付出的努力(3)
概念:在C++20之前,所有模板都是不受约束的,也就是说,它们没有定义接口以供开发人员和工具查看模板的参数要求,但C++20中提出了“概念(Concepts)”弥补这一缺点。我们一直希望实现这种受约束的模板参数,只不过以前我不知道如何在不限制灵活性或增加运行时开销的情况下实现这个想法。现在我们可以检查模板的使用情况,在出错时得到改进后的错误消息,也可以重载函数模板,甚至提升某些方面的性能。
至于之后的版本,受疫情影响,很多功能的开发都被推迟了。我们希望能够在C++23中推出一些重要的功能,但很可惜,我最喜欢的一些功能未能如愿进入C++23。在这里,我只透露三点。
静态反射:我们需要一种机制来根据程序中的类型在编译时生成代码,这不仅可以为我们提供运行时反射的灵活性,而且无需时间或空间成本。例如,我们可以针对一组固定类型,很容易地生成优化过的JSON阅读器。在这方面,我们已经付出了巨大努力。
模式匹配:在许多函数式编程语言中,根据表达式与一组类型或备选值的匹配程度来选择操作,是表达备选操作最方便的方法之一。我们可以在C++中实现相同的功能,且在此过程中无需使用switch语句。我们有一个非常完整的设计和一个实验性的实现,所以我非常期待C++26。
并发模型:多年来,我们一直在研究一个通用的并发模型,可惜我们发现的总是明显不太适合的用例,因此我们不得不再三推迟。但我希望C++26能有所突破。
最后,有一点需要记住:单凭一个功能并不能让编程变得方便、安全且高效。我们需要在类型系统中创建大量特性,同时,我们又不能破坏现有的数十亿行C++代码,因为兼容性和稳定性是非常重要的特性。
原文地址: CSDN 翻译,转载请注明来源出处
END
《新程序员001-004》全面上市,对话世界级大师,报道中国IT行业创新创造
文章来源:《应用数学》 网址: http://www.yysxzzs.cn/zonghexinwen/2022/0422/1564.html
上一篇:青未了/我的数学老师
下一篇:“文科生不配看时间?”中科大时钟布满数学公