P3737R3 — std::array is a wrapper for an array!
(5 items)
LEWG
This paper proposes tightening the specification of std::array to mandate that it is implemented as a simple wrapper around a C-style array, standardizing universally existing practice. For non-zero N, the standard would require a single public non-static data member of type T[N], guaranteeing properties like trivial copyability when T is trivially copyable. For zero-length specializations, the paper standardizes existing libc++ and libstdc++ behavior, ensuring trivial copyability, value-initialized iterators and data(), and removing the unimplemented uniqueness requirement on begin()/end().
- §4.1, implementation comparison table, libc++ row — The hyperlink for libc++ points to the gcc-mirror/gcc repository (libstdc++ source), not to llvm/llvm-project. Copy-paste error; the two rows link to the same URL. [1]
- §3 Motivation, sentence beginning 'Having the certainty...' — Missing subject before 'clarifies' -- the gerund phrase in the preceding clause does not supply a grammatical subject for the main verb. [2]
- §3 Motivation, same sentence — Subject-verb disagreement: 'the array ... provide storage' should be 'provides'. [3]
- §4.1 Zero-length std::array status quo, bug block — Subject-verb disagreement: 'it actually holds one element (and call its constructors ...)' should be 'calls'. [1] [4]
References — Anthropic Citations API
[1]
"For instance, clarifies that the array within std::array provide storage for objects inside"
"For instance, clarifies that the array within std::array
[2]
"the array within std::array provide storage for objects inside"
"the array within std::array
[3]
chars 91012–91437
"Despite
"Despite
std :: array < T , 0
Summary: P3737R3 proposes to mandate that std::array contains a public T[N] data member (or T[1] when N is zero), resolving long-standing ambiguity about its layout, and to add constexpr to the swap and fill member functions. Four items were found: one copy-paste link error in the implementation comparison table and three grammatical errors in the prose.
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.
Provenance: All references are machine-verified character positions from the Anthropic Citations API — deterministic, exact substrings, not model-generated quotes.