为 c++ 提供模式匹配

查看 3|回复 0
作者:maredbf   
我用 C++ 实现了一个模式匹配库 Patternia:
https://github.com/sentomk/patternia
目前整体设计与实现已经趋于稳定,具备实际可用性,但仍然非常依赖真实使用场景来暴露设计与语义层面的不足,因此非常欢迎 issue 、反馈或设计层面的讨论。
Patternia 旨在以零运行时开销的方式,为 C++ 提供一种更结构化、更具表达力的条件分支与数据解构机制,使控制流能够围绕数据的形态与语义展开,而不是分散在大量 if / switch 与手动解构之中。
当前已支持的核心能力包括(但不限于):
  • 值模式与字面量匹配
  • 结构化匹配与成员解构
  • 绑定模式与占位符
  • 守卫模式( guard )与自定义谓词约束

    可以参考这里的示例集合来直观看看 Patternia 的实际用法:
    https://github.com/sentomk/patternia/tree/main/samples
    对 variant 等代数式数据结构以及运行时多态的模式匹配已在规划中,后续的稳定版本也将逐步完善穷尽性检查与编译期诊断能力。
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部