Я хотел спросить, почему as_const
запрещает аргументы rvalue, в соответствии с cppreference.com(то есть, почему люди Стандартов сделали это так, не потому, что cppreference.com специально цитировал их на этом. А также не там, где в спецификации намерение комитета кодифицировано, просто для того, чтобы убедиться:))). Этот (искусственный) пример даст ошибку (пользователь хочет сделать его const, чтобы сохранить COW тихим)
QChar c = as_const(getQString())[0];
Еще один ответ на вопрос отмечает, что если мы просто удалим удаление ссылочной перегрузки rvalue, он будет молча преобразовывать значения rvalues в lvalues. Правильно, но почему бы не обрабатывать rvalues грациозно и возвращать const rvalues для ввода rvalue и const lvalues для ввода lvalue?