Skip to content
败犬日报 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 处理错误的例子。