P4022R0 — Remove try_append_range from inplace_vector for now (5 items) LEWG
Barry Revzin, Jonathan Wakely, Tomasz Kamiński
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.

References — Anthropic Citations API

[1]
"There are two issues with try_append range:"
[2]
"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"
[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"
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.