Si j'utilise des contrats à terme Boost, et que les futurs rapports sont vrais avec has_exception(), y a-t-il un moyen de récupérer cette exception? Par exemple, voici le code suivant:Comment faire pour que l'exception soit signalée à boost :: future?
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(?????);
}
...
La question est, qu'est-ce qui devrait être mis à la place de "?????"?
Docs disent pour 'has_exception':' vrai si * ceci est associé à un résultat asynchrone, ce résultat est prêt pour la récupération, et le résultat est une exception stockée ». Mais cette grande partie de la documentation ne dit pas comment l'obtenir .... – CharlesB
avez-vous essayé simplement 'fi.get()'? – Nim