В чем причина `std :: make_tuple`?

Я имею в виду, почемуstd::make_tuple существовать? Я знаю, что есть ситуации, когда функция уменьшает количество символов, которые вы должны ввести, потому что вы можете избежать параметров шаблона. Но единственная ли это причина? Что делаетstd::tuple что функция существует, в то время как другие шаблоны классов не имеют такой функции? Это только потому, что вы можете использоватьstd::tuple чаще в таких ситуациях?

Вот два примера, гдеstd::make_tuple уменьшает количество символов:

// 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

Но, как написано выше, у вас нет такой функции для многих других шаблонов классов.

Ответы на вопрос(3)

Ваш ответ на вопрос