Разные перегрузки функции make_pair в C++ отличаются типами параметров, которые используются для инициализации элементов пары. 15
Некоторые перегрузки:
template <class T, class U> pair<T, U> make_pair(T& Val1, U& Val2)
. 1template <class T, class U> pair<T, U> make_pair(T& Val1, U&& Val2)
. 1template <class T, class U> pair<T, U> make_pair(T&& Val1, U& Val2)
. 1template <class T, class U> pair<T, U> make_pair(T&& Val1, U&& Val2)
. 1При вызове функции компилятор по количеству и типам аргументов определяет, какую версию функции следует вызвать. 4