Allerdings ermöglicht std::pair als einziges der drei einen stückweisen Aufbau. Das heißt, wenn die Typen T1 und T2 aus einer Menge von Argumenten a1, a2, ... und b1, b2, ... konstruiert werden können, dann können wir moralisch gesehen ein Paar bilden
Code: Select all
"pair p(a1, a2, ..., b1, b2, ...)"
Code: Select all
std::pair p(std::piecewise_construct,
std::forward_as_tuple(a1, a2, ...),
std::forward_as_tuple(b1, b2, ...));
Code: Select all
std::tuple t(std::piecewise_construct,
std::forward_as_tuple(a1, a2, ...),
std::forward_as_tuple(b1, b2, ...),
std::forward_as_tuple(c1, c2, ...));
(Ich habe wirklich eine Situation, in der ich einen Vektor von Tupeln mit einem Standardelementwert initialisieren möchte, den ich lieber direkt aus den Argumenten konstruieren würde, ohne jeden Tupelelementtyp erneut zu buchstabieren.)
Mobile version