阅读

C++设计新思想

Andrei Alexandrescu, 侯捷著,2024年版    [文件格式: PDF - 6MB]

[199]年,我写下《EfectioeC++》第一版。那本书几乎没有讨论template,因为它刚刚才被加入语言之中,我对它儿乎一无所知。为了书中包含的一点点template 代码,我曾通过电子邮件请别人验证,因为我手上的编译器都没有提供对template的支持。 1995 年,我写下《More Effective C++》。又一次,我几乎没有讲述template。这一次阻止我的,既不是对 template 知识的缺乏(在那本书的初稿中,我曾打算以一整章讲述template),也不是我的编译器在这方面有所缺陷。真正的理由是我担心,C++社群对tempiate的理解即将经历次巨大的变化,我对它所说的任何事情,也许很快就会被认为是陈旧的、肤浅的,甚至完全错误的。 我的担心出于两个原因。第一个原因和 John Barton 及 Lee Nackman 在C++ Report 1995年1月的一篇专栏文章有关。这篇文章讨论的是:如何经由template 执行型别安全的维度分析,同时做到运行期零成本。我自己也曾在这个问题上花了不少时间,而且我知道很多人也在寻找解答,但没有人成功。Barton 和 Nackman 的创新解法让我认识到,template 在太多的地方有用,不贝是用来生成“τ容器”。

Github | Docker | Library | Project