BOOK / SOURCE & READING RECORD
More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions
Herb Sutter
1st edition, copyright 2002; publisher PDFs carry November 27, 2001 production timestamps
More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions
读完出版社Item2(独立PDF5页)与Item3(9页)。Item1(6页)和Item4(14页)的全部公开文字也已读,但文件最后分别止于“Good sepa-”及“foreordained base class”,无法保证结尾完整,按可见节选计。Items5–40及附录A/B未读;未获得整本全文,GotW原版不替代书本。
查看版本、实际阅读范围与原文入口 →条件可以携带配置,但不要偷偷携带位置
Items2–3展示的真正边界是算法拥有遍历策略,调用方拥有判断规则。一个捕获阈值且保持不变的谓词有数据,但每个副本仍回答相同问题;一个把调用次数当作当前位置的谓词则把控制流程藏进条件,复制或不同调用顺序都会改变其含义。要删除某个位置,应使用明确的位置操作;要删除符合值条件的元素,就让条件只依赖元素与稳定配置。C++20 的 erase_if 简化了 erase-remove 组合,却不会替这种混淆提供保证。原书末尾手写引用计数用于说明共享状态,不能据此推断共享状态解决了次序依赖,更不应在新项目里照搬旧智能指针。
阅读定位:Item2独立PDF pp.2–5;Item3独立PDF pp.5–9
原文与实际阅读范围
- More Exceptional C++ Item 1 — Switching Streams
6页公开内容全部读完,最后一段中途终止。
- More Exceptional C++ Item 2 — What remove() Removes
完整5页,问题和解答。
- More Exceptional C++ Item 3 — Matters of State
完整9页,谓词副本、调用次序与引用计数补充。
- More Exceptional C++ Item 4 — Inheritance or Traits
14页全部公开文字;末句无结束标点,不将未见部分当作已读。
- InformIT More Exceptional C++ catalog
40条与附录目录、版本;没有整本免费全文。
出版社样章及作者材料保留版权;仅原创教学内容和外链,不转载样章或整书。
能下载不等于已经读完;试读章节不等于全书。这里的原创笔记不是原书全文、译本或逐章替代品。
相关基础知识
相关主题链接用于补充背景,不表示这些既有文章已经按整本书核查。