Was ist der Grund für `std :: make_tuple`?

Ich meine, warum tutstd::make_tuple vorhanden? Ich weiß, dass es Situationen gibt, in denen die Funktion die Anzahl der Zeichen reduziert, die Sie eingeben müssen, da Sie Vorlagenparameter vermeiden können. Aber ist es der einzige Grund? Was machtstd::tuple Special, dass die Funktion existiert, während andere Klassenvorlagen keine solche Funktion haben? Ist es nur, weil Sie @ verwenden könnstd::tuple öfter in solchen Situationen?

Hier sind zwei Beispiele, bei denenstd::make_tuple reduziert die Anzahl der Zeichen:

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

Aber wie oben beschrieben haben Sie für viele andere Klassenvorlagen keine solche Funktion.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage