Which WG21 documents explain the decision not to include ref-qualifiers in most standard library classes?
An example that would benefit from such inclusion:
template <class C1, class C2>
C1 container_cast(C2&& source)
{
C1 dest;
// if constexpr(can do so) dest.reserve(source.size());
for(auto&& element : std::forward<C2>(source))
{
dest.emplace_back(std::forward<decltype(element)>(element));
}
return dest;
}
However, no methods of accessing container members propagate rvalue-ness to them, causing unnecessary copies. This is in contrast to, for example, std::get(std::tuple) and std::optional::operator *, which do provide overloads of all kinds, including the oxymoronic “const &&”.
(Closely related to rvalue ref-qualifiers for STL containers, but the question is more specific.)