Я имею в виду, почему существует 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
Но, как написано выше, у вас нет такой функции для многих других шаблонов классов.