की जांच करते समय क्या exception_ptr
करता है, सी ++ 11 मानक का कहना है (18.8.5/7) कि: exception_ptr वस्तुओं है कि एक ही अपवाद वस्तु का उल्लेख एक डेटा दौड़ परिचय नहीं करेगा पर rethrow_exception कीrethrow_exception वास्तव में एक प्रतिलिपि के बजाय एक ही अपवाद वस्तु फेंक सकता है?
का प्रयोग करें। [नोट: यदि rethrow_exception एक ही अपवाद वस्तु rethrows (बल्कि एक प्रति की तुलना में), कि rethrown अपवाद वस्तु एक डेटा दौड़ परिचय हो सकता है समवर्ती पहुँच ...
मैं मामले नहीं मिल रहा है, जहां इस अजीब "ध्यान दें "लागू होता है, क्योंकि rethrow_exception
का वर्णित प्रभाव" फेंकता है: अपवाद ऑब्जेक्ट जिस पर पी संदर्भित करता है "लेकिन 15.1/3, सामान्य अपवाद फेंकने की प्रक्रिया का वर्णन करने के लिए जरूरी है कि" एक अपवाद प्रतिलिपि बनाना एक अस्थायी वस्तु को प्रारंभ करता है, जिसे अपवाद वस्तु कहा जाता है। "
अजीब नोट यह इंगित करेगा कि rethrow_exception इस प्रति-प्रारंभिकरण को छोड़ देता है। लेकिन क्या यह वास्तव में संभव है?
शायद यह अभी चल रहा है? –
यूप, 'std :: rethrow_exception' को 'throw x;' अभिव्यक्ति का उपयोग करके कार्यान्वित नहीं किया जा सकता है। (लेकिन यह 'फेंक' जैसा ही है; 0। – aschepler