ADR-0001:使用 C++23 现代特性

状态

已接受 (Accepted)

背景

Hahaha 项目定位为教育型库。为了展示最先进的 C++ 编程范式,我们需要决定支持的 C++ 标准上限。

决策

我们决定全面拥抱 C++23 标准。

核心理由:

  1. Concepts:相比 enable_if,Concepts 让张量模板的报错信息更加人类可读。
  2. stacktrace:内置的堆栈追溯极大简化了底层数学库的调试成本。
  3. expected:用于完善的错误处理。

影响

  • 编译器门槛:强制要求 GCC 13+ 或 Clang 16+。
  • 教育价值:代码库成为学习现代 C++ 的绝佳范本。
  • 风险:旧系统可能难以直接编译,需依赖 Docker 容器。