> A bit more generically, each new C++ version usually brings more convenience methods on various classes that have been around for a long time. For example, in C++20, we got std::string_view::starts_with(), but I don't think there was ever a discussion about allowing this. Do we usually consider these new convenience methods allowed by default if they're not otherwise mentioned?
That would be my preference, yes. If we look at the
library features added in C++23, I'd argue changes like
> * Monadic operations (transform, or_else, and and_then) for std::optional (P0798R8)
> * std::tuple is compatible with other tuple-like objects (P2165R4)
> * Adding default arguments for std::pair's forwarding constructor (P2718R0)
> * Constructibility and assignability of containers from other compatible ranges (P1206R7)
> * Allowing iterator pair construction in std::stack and std::queue (P1425R4)
> * Heterogeneous erasure overloads for associative containers (P2077R2)
>
> * constexpr support for
> - std::bitset (P2417R2)
> - std::unique_ptr (P2273R3)
> - Some <cmath> functions (P0533R9)
>
> * New member functions and changes in string types:
> - std::basic_string::contains and std::basic_string_view::contains (P1679R3)
> - Disabling construction from nullptr for std::basic_string and std::basic_string_view (P2166R1)
> - Explicit range constructor for std::basic_string_view (P1989R2)
> - std::basic_string::resize_and_overwrite (P1072R10)
> - Rvalue reference overload of std::basic_string::substr for efficient slicing (P2438R2)
are trivial enough that they shouldn't each require a cxx@ thread. Maybe a guideline of changes to APIs to functions / classes that were already allowed prior to the new C++ version are allowed by default?
Then we could focus cxx@ threads on new language features (e.g. deducing this) and new library functions and classes (e.g. std::forward_like and std::expected).
Best,
Jan