| 2 | using namespace matchit; |
| 3 | |
| 4 | constexpr int32_t fib(int32_t n) |
| 5 | { |
| 6 | assert(n >= 1); |
| 7 | return match(n)( |
| 8 | // clang-format off |
| 9 | pattern | 1 = expr(1), |
| 10 | pattern | 2 = expr(1), |
| 11 | pattern | _ = [n] { return fib(n - 1) + fib(n - 2); } |
| 12 | // clang-format on |
| 13 | ); |
| 14 | } |
| 15 | |
| 16 | static_assert(fib(1) == 1); |
| 17 | static_assert(fib(2) == 1); |
no test coverage detected