我们再次见证了 C++ 的强大能力 —— 它能够从现有语言中创造出一种新的语言。C++ 本身并不支持命名函数参数,只支持位置参数,这是其核心语言的一部分。然而,我们却能够利用方法链技术,以一种合理且直观的方式扩展语言,实现了类似命名参数的功能。我们也探讨了方法链在命名参数习语之外的其他应用。
其中一种应用就是流式构建器,这再次体现了创造新语言的过程:流式接口的普遍强大之处在于,它可以用来创建领域特定语言(DSL),以便在某些数据上执行一系列指令。因此,流式构建器可以让开发者,以特定领域中熟悉的步骤序列来描述对象的构建过程。
此外,还有隐式构建器,甚至能让 C++ 代码(只要缩进得当)看起来有点像正在构建的 HTML 文档。
下一章将介绍本书中唯一一个纯粹面向性能的惯用法。我们在多个章节中讨论过内存分配的性能开销,以及它对多种设计模式实现的影响。而接下来的这个惯用法 —— 局部缓冲区优化 —— 将直面这一问题,其核心思路是完全避免动态内存分配。