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.