C++ / a working model

BOOK / SOURCE & READING RECORD

Modern C++ Design: Generic Programming and Design Patterns Applied

Andrei Alexandrescu

1st edition, 2001

READING EVIDENCE / 已读完整正文

Modern C++ Design: Generic Programming and Design Patterns Applied

已完整阅读 2001 年第一版第 1–11 章及附录 A 的可读正文和文本代码:策略、技术、typelist、small-object allocator、广义函子、singleton、智能指针、factory、abstract factory、visitor、multimethods 与线程讨论。私有全文提取共 16122 行,连续分段阅读并补读截断区间 216–554;另读出版社第 1、7、8、11 章用于交叉核对。书中 C++98 和平台线程技巧按历史材料理解,不当作 C++20 推荐实现。

查看版本、实际阅读范围与原文入口 →

阅读原创实践:Policy-based design:分离决定,不复制流程 →

策略是可替换的选择,不是模板装饰

策略设计真正分离的是独立决策,而不是把每个成员函数改写成模板。宿主负责维持整体流程,策略负责一个可命名的变化点;如果两项策略必须知道彼此内部状态,它们就不再正交。原书以多重继承和 C++98 技巧实现组合,但这些只是当时的机制。现代代码可通过成员组合和 concepts 表达所需调用,不必复制手写智能指针、破坏性复制或 safe-bool 的历史实现。一个错误处理策略可以选择拒绝还是截断,却不应偷偷改动容量检查规则。泛化还应有停止条件:没有实际第二种选择时,普通函数通常比政策框架更易维护。

阅读定位:第 1 章 1.5、1.9、1.12;第 7 章所有权策略讨论;第 8 章 8.5 错误处理策略。

原文与实际阅读范围

作者和出版社保留版权;第三方公开完整 PDF 不代表再发行授权。全文与提取文本只在私有 research/books 保存,公开仅出版社/作者外链和原创课程,不提供第三方下载链接。

能下载不等于已经读完;试读章节不等于全书。这里的原创笔记不是原书全文、译本或逐章替代品。

相关基础知识

相关主题链接用于补充背景,不表示这些既有文章已经按整本书核查。

← 返回全部书籍