Daniel Lemire 发布 C++23 编译期编程单头库 useful_abstractions
lemire · x · 2026-09-16
以快速性能工程闻名的 Daniel Lemire 发布了 C++23 单头库 usefulabstractions(ConstexprCore),目标是让 C++ 的编译期(constexpr/consteval)编程更优雅易用,把哈希、字符串、转义等工作移到编译期以获得更快更安全的代码。
- 单个头文件(约 2000 行),除标准库外零依赖,也支持 CMake FetchContent/FindPackage 接入
- 7 个组件,可按需单独引入:
- fixedstring:把字符串字面量作为模板参数(如定义带名字的类型)
- constexprhash:编译期 FNV-1a 哈希、字符串 switch
- typename<T>():无需 RTTI 的类型名与稳定 typeid
- escapestring:编译期 JSON/URL/HTML 转义
- utfconvert:编译期 UTF-8 校验(精确错误码)与 UTF-8→UTF-16/32 转换
- constexprptr:reinterpretptr/writableptr,在常量求值中做类型双关(替代受限的 reinterpretcast)
- constexprcheck:staticrequire 让 consteval 内检查失败直接变成带自定义消息的编译错误
- 要求 GCC 14+ 或 Clang 19+,项目刚起步(v0.1.0),欢迎贡献
「编程与Agent」频道最新
- 实测同一函数本地 500ms 生产 7000ms:云端机器可慢 14 倍 — DanielLockyer · 2026-09-16
- 笔记引用偏差 5 天后才暴露,作者定下「存源 URL+原文」铁律 — Agent-OmegaLT · 2026-09-16
- blender-mcp 更名 mcp-for-blender,老配置无需改动 — sidahuj · 2026-09-16
- 两个 2-4B 小模型实测客服任务:100 分 vs 84 分差在最后一公里 — Equivalent-Grass-527 · 2026-09-16
- Agent 记住了旧指令,不代表它现在还有权执行 — FactivalUniverse · 2026-09-16
- Lean Kernel Challenge 第一阶段启动,优化内核验证计算性能 — AlexKontorovich · 2026-09-16