Я читаю правила свертывания ссылок, и у меня возникает вопрос: почему, если я передаю rvalue A к
template<typename T>
void foo(T&&);
T выводится как A?
например. если перейти std::string() к функции T, выведено как std::string, почему бы не std::string&&? Для меня было бы более разумным, каково обоснование вывода T самому типу?