SIGN IN SIGN UP

docs: rename reserved __ identifiers in SW_STATIC_ASSERT fallback

Round-4 review: Codex and Kimi both requested changes — the fallback assertion's
helper identifiers used double underscores (`SW__SA_CAT_`, `SW__SA_CAT`, and the
generated `sw__static_assert_` typedef prefix). Any identifier containing `__` is
reserved to the implementation in C and C++, so a public header must not define
them; `clang -Wreserved-identifier -Werror` flags them on the C++98 fallback path.

Rename to non-reserved, project-private names (single underscores throughout):
- `SW__SA_CAT_`        -> `SW_STATIC_ASSERT_CAT_`
- `SW__SA_CAT`         -> `SW_STATIC_ASSERT_CAT`
- `sw__static_assert_` -> `sw_static_assert_`

Also address the non-blocking nits:
- The macro comment said "C89+", but the header includes <stdint.h> (C99); say
  "C99+, C++98+" so it doesn't oversell portability. (Copilot, Kimi)
- The §4 Python FFI snippet referenced EXPECTED_MAJOR without defining it; add
  `EXPECTED_MAJOR = 1  # must match SW_API_VERSION_MAJOR ...` so it is runnable.
  (Copilot, Kimi)

Verified across the full matrix with
-Wall -Wextra -Werror -Wconversion -Wshadow -Wpedantic -fsyntax-only:
- gcc/clang c99/c11/c17 and g++/clang++ c++98/c++11/c++17 -> clean;
- clang/clang++ with -Wreserved-identifier (c99, c++98, c++17) -> clean;
- gcc -fshort-enums still fails the width asserts in c99 and c17;
- uv run pytest -> 42 passed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
C
Claude Coder committed
94dda48592ca57950ad8e8152276bc0580a9f09b
Parent: c0e391a