¿Cuál es la razón de `std :: make_tuple`?

Me refiero a por quéstd::make_tuple ¿existe? Sé que hay situaciones en las que la función reduce la cantidad de caracteres que tiene que escribir porque puede evitar los parámetros de la plantilla. ¿Pero es la única razón? Lo que hacestd::tuple ¿especial que la función existe mientras que otras plantillas de clase no tienen esa función? ¿Es solo porque puedes usarstd::tuple más a menudo en tales situaciones?

Aquí hay dos ejemplos dondestd::make_tuple reduce la cantidad de caracteres:

// Avoiding template parameters in definition of variable.
// Consider that template parameters can be very long sometimes.
std::tuple<int, double> t(0, 0.0); // without std::make_tuple
auto t = std::make_tuple(0, 0.0);  // with std::make_tuple

// Avoiding template parameters at construction.
f(std::tuple<int, double>(0, 0.0)); // without std::make_tuple
f(std::make_tuple(0, 0.0));         // with std::make_tuple

Pero como se escribió anteriormente, no tiene una función como esta para muchas otras plantillas de clase.

Respuestas a la pregunta(3)

Su respuesta a la pregunta