Skip to content

ADR-0003: #pragma once instead of include guards

Status: accepted (2026-09)

Context

Include guards are verbose and error-prone across a large header-heavy tree.

Decision

Use #pragma once everywhere. FastMM builds on Linux with gcc and clang (CI: gcc 13 and clang 18), and both implement it.

Consequences

Headers must not be copied to multiple paths (pragma once is path-based).