Angenommen, ich ein Tupel habenEin std-Tupel in Zeiger entpacken?
std::tuple<A, B, C> myFavoriteTuple;
kann ich dies tun:
A a;
B b;
C c;
std::tie(a, b, c) = myFavoriteTuple
Aber wenn einige dieser Tupel wirklich teuer zu kopieren, was ich wirklich möchte eine Referenz nehmen oder ein Zeiger auf die richtigen Stellen in meinem Tupel. Ich kann dies tun:
A* a = &std::get<0>(myFavoriteTuple);
B* b = &std::get<1>(myFavoriteTuple);
C* c = &std::get<2>(myFavoriteTuple);
Aber das scheint so lahm im Vergleich zu, wie genial die tie
Syntax ist. Gibt es eine andere Möglichkeit, Zeiger/Referenzen auf die Tupel-Komponenten zu bekommen?
Siehe Boost.Fusion –
Das Verschieben von Tupel könnte in einigen Fällen die beste Idee sein - 'std :: tie (a, b, c) = std :: move (meinFavoritentuple);' – zch
Oh Mann, C++ 17 ist großartig: 'auto && [a, b, c] = meinFavoritTuple;' fertig. – Barry