std::tie
संदर्भ उपस्थित टपल देता है, तो आप निम्न कर सकते हैं:कितना अपवाद सुरक्षित है std :: टाई?
int foo, bar, baz;
std::tie(foo, bar, baz) = std::make_tuple(1, 2, 3);
यह अजगर में foo, bar, baz = (1, 2, 3)
के समान है।
यदि कोई असाइनमेंट फेंकता है, तो निम्न उदाहरण में क्या होता है?
int foo = 1337;
struct Bar {
Bar& operator=(Bar) { throw std::exception{}; }
} bar;
try {
std::tie(foo, bar) = std::make_tuple(42, Bar{});
} catch (std::exception const&) {
std::cout << foo << '\n';
}
क्या यह 1337 या 42 प्रिंट करेगा, या यह निर्दिष्ट नहीं है?
चूंकि 'tuple' का लेआउट निर्दिष्ट नहीं है, इसलिए मुझे लगता है कि यहां उत्तर भी" निर्दिष्ट नहीं है "। –