败犬日报 2025-12-25
败犬日报 2025-12-25
1. Linux线程栈内存占用优化:从理论到实战(文章)
https://mp.weixin.qq.com/s/n6UYKP-36UWmhOn2H2Hq5A
2. shallow const 问题(浅 const 问题)
https://www.zhihu.com/question/839881639
const 不会往下传递,比如 int *const 可以通过这个指针修改 int。
解决思路除了往期讲过的 std::experimental::propagate_const,更经典的做法是封装成类来控制,暴露两个成员函数,把 const 传递下去:
cpp
class A {
private:
int* data;
public:
int* foo() { return data; }
const int* foo() const { return data; }
};其他语言也有类似现象,例如 javascript:
js
const a = [1];
a[0] = 2;例外是 safe rust 的借用检查阻止了这个行为。
3. sum type 处理错误
sum type 就是 std::variant 这种联合类型。
std::expected 就是 sum type 处理错误的例子。