败犬日报 2024-10-11
1. Pimpl
头文件这么写:
cpp
class A {
public:
// 一些接口
private:
class Impl;
std::unique_ptr<Impl> impl;
};
实现细节隐藏在 Impl 中。
- ABI 稳定:类只有 impl 一个成员,布局不变,Impl 增加成员变量不会导致使用方的重新编译。
- 隔离,防止使用的人干坏事。
Codegen 使用 Pimpl 的比较多。
2. 一个几何题
三维空间有一些点,随机分布两个平面上(或在平面附近),如何拟合出这两个平面。
根据群友的思路:
选择合适的 5 个点,必然有 3 个点所在的平面是对的。
如何选取“合适”的 5 个点,一种做法是:考虑第 1 个点任意选,第 2 个点选与第 1 个点距离最大的点,第 3 个点选与前 2 个点距离最小值最大的点,以此类推。
3. Python Final
众所周知 Python 语法是没有常量的,但是可以用 type hint 标记:
py
from typing import Final
MAX_SIZE: Final = 9000
MAX_SIZE += 1 # Error reported by type checker
4. 新闻时间
据说 Kimi 准备上线能自我反省的 LLM,类似 OpenAI 的 CoT。