यदि मैं बूस्ट वायदा का उपयोग करता हूं, और भविष्य की रिपोर्ट has_exception() के लिए सच है, तो क्या अपवाद पुनर्प्राप्त करने का कोई तरीका है? उदाहरण के लिए, यहां निम्न कोड है:बढ़ावा देने के लिए अपवाद कैसे प्राप्त करें :: भविष्य?
int do_something() {
...
throw some_exception();
...
}
...
boost::packaged_task task(do_something);
boost::unique_future<int> fi=task.get_future();
boost::thread thread(boost::move(task));
fi.wait();
if (fi.has_exception()) {
boost::rethrow_exception(?????);
}
...
सवाल यह है कि "?????" के स्थान पर क्या रखा जाना चाहिए?
डॉक्स 'has_exception' के लिए कहते हैं:' अगर सही है * इस एक अतुल्यकालिक परिणाम के साथ जुड़ा हुआ है, कि परिणाम पुनः प्राप्ति के लिए तैयार है, और परिणाम एक संग्रहीत अपवाद है '। लेकिन दस्तावेज़ीकरण का यह बड़ा हिस्सा यह नहीं कहता कि इसे कैसे प्राप्त करें .... – CharlesB
क्या आपने बस 'fi.get() 'की कोशिश की है? – Nim