sentomk /
patternia
Patternia 致力于为 C++ 提供一种更自然的 match-style 表达方式,同时尽量避免隐式绑定、隐藏规则这类容易让人困惑的设计。 目前支持: 字面量匹配 显式绑定(且只允许显式绑定) has<> 解构 std::variant 匹配 多分支下的快速分发路径 守卫谓词 [] 语法示例如下: cpp int x = 42; // 基本的字面量匹配 auto res = match(x) | on ( lit(1) >> "O…
sentomk /
Patternia 致力于为 C++ 提供一种更自然的 match-style 表达方式,同时尽量避免隐式绑定、隐藏规则这类容易让人困惑的设计。 目前支持: 字面量匹配 显式绑定(且只允许显式绑定) has<> 解构 std::variant 匹配 多分支下的快速分发路径 守卫谓词 [] 语法示例如下: cpp int x = 42; // 基本的字面量匹配 auto res = match(x) | on ( lit(1) >> "O…
Patternia 致力于为 C++ 提供一种更自然的 match-style 表达方式,同时尽量避免隐式绑定、隐藏规则这类容易让人困惑的设计。 目前支持: 字面量匹配 显式绑定(且只允许显式绑定) has<> 解构 std::variant 匹配 多分支下的快速分发路径 守卫谓词 [] 语法示例如下: cpp int x = 42; // 基本的字面量匹配 auto res = match(x) | on ( lit(1) >> "One", lit(2) >> "Two", "Other" ); cpp struct Point { int x; int y; }; Point p {0, 0}; // 结构体解构并绑定解构的值 match(p) | on ( $(has<&Point::x, &Point::y>) >> [](int x, int y]{ std::cout << "x: " << x << " y: " << y << '\n'; }, ... ... ); 更多代码示例可以前往 Show Patternia 查看并运行; 官方文档
Discuss this product