मान लीजिए मैं एक टपलपॉइंटर्स में एक std tuple अनपॅकिंग?
std::tuple<A, B, C> myFavoriteTuple;
मैं यह कर सकता है:
A a;
B b;
C c;
std::tie(a, b, c) = myFavoriteTuple
लेकिन इन tuples के कुछ वास्तव में कॉपी करने के लिए महंगे हैं, तो क्या मैं वास्तव में चाहते हैं के लिए एक संदर्भ या लेने के लिए है मेरे tuple में सही धब्बे के लिए एक सूचक। मैं यह कर सकता:
A* a = &std::get<0>(myFavoriteTuple);
B* b = &std::get<1>(myFavoriteTuple);
C* c = &std::get<2>(myFavoriteTuple);
लेकिन वह कैसे भयानक tie
वाक्य रचना है की तुलना में इतना लंगड़ा लगता है। क्या ट्यूपल घटकों के पॉइंटर्स/संदर्भ प्राप्त करने का कोई और तरीका है?
बूस्ट देखें। फ़्यूज़न –
ट्यूपल से चलना कुछ मामलों में सबसे अच्छा विचार हो सकता है - 'std :: tie (a, b, c) = std :: move (myFavoriteTuple);' – zch
ओह मैन, सी ++ 17 है बढ़िया: 'ऑटो और& [ए, बी, सी] = myFavoriteTuple;' किया। – Barry