V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
maredbf
V2EX  ›  C++

为 c++ 提供模式匹配

  •  
  •   maredbf · Dec 16, 2025 via iPhone · 2417 views
    This topic created in 132 days ago, the information mentioned may be changed or developed.

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

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

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

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

    • 值模式与字面量匹配
    • 结构化匹配与成员解构
    • 绑定模式与占位符
    • 守卫模式( guard )与自定义谓词约束

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

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

    4 replies    2026-04-08 16:26:57 +08:00
    GavinXSF
        1
    GavinXSF  
       Dec 16, 2025
    粗看了下 README ,很用心的项目,star 支持了
    maredbf
        2
    maredbf  
    OP
       Dec 16, 2025 via iPhone
    @GavinXSF 感谢支持!
    kirigaya
        3
    kirigaya  
       Dec 16, 2025   ❤️ 1
    不错,给同事都分享了一下
    xinyu391
        4
    xinyu391  
       18 days ago
    一堆怪异的语法...
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5428 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 05:55 · PVG 13:55 · LAX 22:55 · JFK 01:55
    ♥ Do have faith in what you're doing.