C++ / a working model

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

READING EVIDENCE / 已读部分正文

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

原文与实际阅读范围

出版社样章及作者材料保留版权;仅原创教学内容和外链,不转载样章或整书。

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

相关基础知识

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

← 返回全部书籍