P3666R3 — Bit-precise integers (14 items) EWG, LEWG
Jan Schultke
This paper proposes adding C23's bit-precise integer types (_BitInt) to C++ as fundamental types, along with the wb/WB literal suffixes and std::bit_int/std::bit_uint alias templates. The design prioritizes C compatibility by matching C23 semantics including conversion rank rules, integer promotion exemption, and permissive implicit conversions. The proposal includes both core language wording and standard library support covering to_chars, from_chars, to_string, abs, make_signed/make_unsigned, and various other facilities.

References — Anthropic Citations API

[1]
"std::uint8_t y = ~x >> 1; // y = 0b1000'01111"
[2]
"such as the minimum supported BITINT_WIDTH"
[3]
"to more more clearly distinguish them from wording changes"
[4]
"requires the user of 128-bit arithmetic"
[5]
"Last but no least,"
[6]
"the type of each enumerator prior ot the closing brace"
[7]
"Use of pre on e.g. bit_int::operator/ cannot be used to achieve this"
[8]
"C's functions deliberately all integers types"
[9] chars 101089–101993
"In [cmath.syn], change the synopsis as follows: constexpr int abs(int j); // freestanding constexpr long int abs(long int j); // freestanding constexpr long long int abs(long long int j); //..."
[10]
"template constexpr from_chars_result from_chars(char* first, char* last, // freestanding T& value, int base = 10);"
[11] chars 74717–74791
"std::bit_int cannot be used as the underlying type of enumerations. "
[12] chars 78708–78727
"is_integral_type). "
[13]
"This has never been a practical issue before, it is now theoretically possible that an implementation may want to provide _BitInt(32'768) or wider."
Summary: P3666R3 proposes adding bit-precise integer types to C++ via a std::bit_int wrapper over _BitInt(N), with conversions, arithmetic semantics, and standard library integration. Thirteen findings were identified, including a cross-reference pointing to the wrong synopsis section, a function signature mismatch between synopsis and definition, a teaching section that contradicts the paper's own design, and several typos and corrupted words in the prose and wording.
Pipeline: Discovery (Anthropic Opus + Citations API) → Verification Gate (OpenRouter Opus) → Report Writer (OpenRouter Opus)
Provenance: All references are machine-verified character positions from the Anthropic Citations API — deterministic, exact substrings, not model-generated quotes.