败犬日报 2025-08-21
1. 模板模板参数的一个例子:Allocator rebind
这个操作非常神人。
如果要写一个模板容器(如红黑树),用户提供的是一个节点的 allocator 类型 Allocator<Node>
,模板容器可以把 allocator 拿出来 rebind 成其他类型 Allocator<Other>
。
2. 微软的 proxy 适用场景是什么
https://zhuanlan.zhihu.com/p/22307747744 的评论区。
除了性能外,主要是更加灵活,proxy 是非侵入式的多态实现。
3. goto 有没有合适的应用
复杂一点的状态机,比手写 switch 简单清晰很多,控制流跳转一目了然。
4. 头文件、符号循环依赖的工程难题
循环依赖的问题核心难点是你根本没法抽象出一个图,连正确解析依赖都做不到。比如宏套宏,现在用啥工具能分析出来符号依赖呢。
特别是在两个头文件互相依赖的时候,clangd 必须要先做出一个假设才能往下推进,然后其中一个文件就会导致很多符号没法分析,必须得你手动拆。现在两个不管是 A 先还是 B 先都不对的情况下,工具就没法自动梳理出来依赖,只能手动分析然后改。