Tooling-encoded idiom

Warnings, clang-tidy, hardened libraries — style as code.

Idiom enforcement is social plus -Wall -Wextra -Werror; clang-format (b. 2013) ends whitespace debates by fiat.

clang-tidy's modernize-* checks mechanize migration: use-auto, use-nullptr, use-make-unique turn guidelines into diffs.

# .clang-tidy
Checks: "modernize-*,performance-*"

The Core Guidelines get executable form: cppcoreguidelines-* checks plus the GSL (gsl::not_null, gsl::owner) encode ownership and bounds rules the language can't yet.

Concepts move API misuse from instantiation spew to one-line diagnostics — the compiler itself becomes the style checker for template boundaries.

Toolchain-support tables become part of idiom choice (what can this project's GCC/Clang/MSVC trio actually use) — the cppstat / compiler-support-page workflow.

Standard library hardening (P3471): bounds and precondition checks become a standards-conforming build mode, not a vendor extension — operator[] can be contract-checked in production. Contracts give assertions a tooling-visible semantic.

// hardened build: v[i] out of range terminates deterministically
// instead of UB — same source, standards-blessed (C++26)
C++29direction · not adopted

Direction: profiles as compiler-enforced rulesets — the committee's bet for “C++ with the sharp edges fenced” without a dialect split.

C++26 per the final working draft; C++29 rows are proposals and direction, not adopted features.