They 'input' argument of std::getline is not taken by universal
reference. If it were, the lvalue reference and rvalue reference
overloads would be unnecessary.
The non-const argument 'std::basic_istream<CharT,Traits>& input' takes
an lvalue only. The argument 'std::basic_istream<CharT,Traits>&& input'
takes a rvalue only. The argument 'std::basic_string<CharT, Traits,
Allocator>& str' is an out parameter which takes a lvalue only.
Given a template type T, an argument 'T&& t' represents a universal (aka
forwarding) reference. That is not the case here.