GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • sentomk/patternia
  • Home
  • Tutorials
  • Guide
  • API
  • Performance
  • Changelog
  • Roadmap
  • Pattern Matching in Other Languages
  • Custom Predicate Guards
  • Example - Policy Constraint Matching
  • Example - Geometric Constraint Matching
  • Installation
  • v0.9.5

This view

  • Original page
  • New address

GeezerVison is showing patternia.tech — Patternia

Patternia Documentation¶

A modern C++ pattern matching DSL

Patternia is a modern C++ pattern-matching DSL designed to make dispatch logic clear, expressive, and type-safe - without sacrificing performance or compilation efficiency.


Navigation¶

Start Here¶

  • Getting Started - Minimal examples and core syntax
  • Installation - How to integrate Patternia into your project

Concepts and Tutorials¶

  • From Control Flow to Pattern Matching - Onramp for new users
  • Pattern Matching in Other Languages - Mapping familiar ideas to Patternia
  • Custom Predicate Guards - Guard design and composition

Worked Examples¶

  • Policy Constraint Matching - Declarative rules and access control
  • Geometric Constraint Matching - Numeric constraints as patterns

Reference¶

  • API Documentation - Complete API reference for all patterns and functions
  • Performance Notes - Algorithm evolution and dispatch strategy by version
  • Design Overview - Semantics and matching model

Project Information¶

  • Releases - Version update history
  • Benchmark Scripts - JSON compare and visualization tooling

System Requirements¶

  • C++ Standard: C++17 or later (floating-point val<V> literals need C++20)
  • Compilers (minimums enforced by cmake/CheckCompilerVersion.cmake):
Compiler Minimum
GCC 11
Clang 12
AppleClang 14
MSVC 19.30 (Visual Studio 2022)
clang-cl 18, with an MSVC 19.30+ toolset
  • Tested in CI: GCC 11/13 and Clang 14/16/18 on Linux (C++17 through C++26); MSVC and clang-cl on Windows (C++20 through C++26).

Benchmarking¶

  • Run benchmark suite from project root:
.\build\bench\ptn_bench.exe --benchmark_filter="Variant" --benchmark_out=build/variant_all.json --benchmark_out_format=json
  • Visualize one JSON across implementations:
py -3 scripts/bench_single_report.py --input build/variant_all.json --include "Variant" --outdir build/bench/single --prefix variant_single

Make logical structure explicit, make C++ code more elegant
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.