P4022R0 — Remove try_append_range from inplace_vector for now
(5 items)
LEWG
This paper proposes removing try_append_range from std::inplace_vector in C++26 due to unresolved design questions about its semantics (partial vs. all-or-nothing insertion) and its return type (iterator vs. subrange, and the confusing bool-conversion behavior of subrange). The intent is to allow more time for design discussion and reintroduce the function in C++29 with well-defined semantics and ergonomics.
- Section 4, References — Bibliography entry keyed and titled as P3981R0 links to https://wg21.link/p3980r0 (wrong paper number in URL); should be https://wg21.link/p3981r0. [1]
- Section 2, Issues heading prose — Identifier 'try_append range' is missing an underscore; should be 'try_append_range'. [2]
- Section 2.1, Semantics — Doubled phrase 'attempt to attempt to'; should read 'attempt to' once. [3]
- Section 1, Introduction — Wrong tense 'lead' referring to a past telecon; should be 'led'. [4]
References — Anthropic Citations API
[1]
"There are two issues with try_append range:"
"There are two issues with try_append range:"
[2]
"But if we attempt to attempt to add N elements"
"But if we attempt to attempt to add N elements"
[3]
"a few issues came up with this particular member function that lead us to conclude that we should remove it"
"a few issues came up with this particular member function that lead us to conclude that we should remove it"
[4]
"[P3981R0] Barry Revzin, Jonathan Wakely, and Tomasz Kamiński. 2026-01-27. Better return types in std::inplace_vector and std::exception_ptr_cast. https://wg21.link/p3980r0"
"[P3981R0] Barry Revzin, Jonathan Wakely, and Tomasz Kamiński. 2026-01-27. Better return types in std::inplace_vector and std::exception_ptr_cast. https://wg21.link/p3980r0"
Summary: P4022R0 proposes removing try_append_range from inplace_vector (as specified in P0843R14) on the grounds that its semantics are unclear and potentially harmful, deferring it to a future paper rather than shipping a problematic API. The paper identifies design issues with partial insertion and strong exception guarantees, and proposes wording to strike the function from the working draft.
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.