Давайте представим, что у меня есть такая функция:
auto funct(T const& lhs) { ... };
Эту функцию часто можно оптимизировать путем кражи ресурсов, поэтому мы можем перегрузить ее следующим образом:
auto funct(T&& lhs) { ... };
Зная, что временные значения неявно преобразуются в rvalue-ссылки, это фактически улучшило бы производительность, когда кража актуальна.
Должен ли я перегружать каждую функцию, как эта? Кажется, это приводит к большому дублированию кода ... Если я прав, можно ли избежать этого дублирования?