Qual é o motivo do `std :: make_tuple`?

Quero dizer por questd::make_tuple existir? Eu sei que existem situações em que a função reduz a quantidade de caracteres que você precisa digitar, porque você pode evitar os parâmetros do modelo. Mas é a única razão? O que faz ostd::tuple especial que a função existe enquanto outros modelos de classe não têm essa função? É apenas porque você pode usarstd::tuple mais frequentemente em tais situações?

Aqui estão dois exemplos em questd::make_tuple reduz a quantidade 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

Mas, como escrito acima, você não tem uma função como essa para muitos outros modelos de classe.

questionAnswers(3)

yourAnswerToTheQuestion