为 c++ 提供模式匹配

2025 年 12 月 16 日
 maredbf

我用 C++ 实现了一个模式匹配库 Patternia: https://github.com/sentomk/patternia

目前整体设计与实现已经趋于稳定,具备实际可用性,但仍然非常依赖真实使用场景来暴露设计与语义层面的不足,因此非常欢迎 issue 、反馈或设计层面的讨论。

Patternia 旨在以零运行时开销的方式,为 C++ 提供一种更结构化、更具表达力的条件分支与数据解构机制,使控制流能够围绕数据的形态与语义展开,而不是分散在大量 if / switch 与手动解构之中。

当前已支持的核心能力包括(但不限于):

可以参考这里的示例集合来直观看看 Patternia 的实际用法: https://github.com/sentomk/patternia/tree/main/samples

对 variant 等代数式数据结构以及运行时多态的模式匹配已在规划中,后续的稳定版本也将逐步完善穷尽性检查与编译期诊断能力。

2139 次点击
所在节点    C++
3 条回复
GavinXSF
2025 年 12 月 16 日
粗看了下 README ,很用心的项目,star 支持了
maredbf
2025 年 12 月 16 日
@GavinXSF 感谢支持!
kirigaya
2025 年 12 月 16 日
不错,给同事都分享了一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1179116

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX