败犬日报 2025-12-18
败犬日报 2025-12-18
1. 裸指针可以用 optional<T&> span mdspan 替代了
众所周知裸指针一开始的功能非常多,智能指针 (C++11) 出现后,裸指针就不再有所有权功能。
借用功能一部分被引用代替,optional<T&> (C++26) 出现后又增加了可空、可重新绑定功能。不过和裸指针差别不大,不是明显的上位替代。
而表达数组的借用有 span (C++20) mdspan (C++23) 替代,功能上也会更完备。
2. asan + 协程对称转移会爆栈
带着 asan 编译会没法做尾递归优化,协程对称转移依赖这个。
在一个循环里 co_await 十万次就爆栈了。