Универсальные ссылки (universal references) — это специальный вид ссылок в C++, которые годятся для работы с rvalue и lvalue одновременно.

Пример использования универсальной ссылки:

#include <iostream>
#include <vector>
 
// Функция, использующая универсальную ссылку для перфектного форвардинга
template <typename T>
void forwardValue(T&& val) {
    std::cout << "Received value: " << val << std::endl;
}
 
int main() {
    int num = 42;
    forwardValue(num); // lvalue, T будет выведен как int&
 
    forwardValue(10); // rvalue, T будет выведен как int
 
    std::string str = "Hello";
    forwardValue(std::move(str)); // std::move(str) - rvalue, T будет выведен как std::string&&
 
    return 0;
}