Załóżmy, że mam krotkiRozpakowywanie std-a do wskaźników?
std::tuple<A, B, C> myFavoriteTuple;
mogę to zrobić:
A a;
B b;
C c;
std::tie(a, b, c) = myFavoriteTuple
Ale jeśli niektóre z tych krotek są naprawdę drogie, aby skopiować, co naprawdę chciałbym to zrobić odniesienie lub wskaźnik do właściwych miejsc w mojej krotce. Mogę to zrobić:
A* a = &std::get<0>(myFavoriteTuple);
B* b = &std::get<1>(myFavoriteTuple);
C* c = &std::get<2>(myFavoriteTuple);
Ale to wydaje się tak kiepski w porównaniu do tego, jak niesamowite jest składnia tie
. Czy istnieje inny sposób uzyskania wskaźników/odwołań do składników krotki?
See Boost.Fusion –
Przenoszenie z krotki może być najlepszym pomysłem w niektórych przypadkach - 'std :: tie (a, b, c) = std :: move (myFavoriteTuple);' – zch
Oh man, C++ 17 is great: 'auto && [a, b, c] = myFavoriteTuple;' done. – Barry