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