fork download
  1. #include <iostream>
  2. #include <thread>
  3. #include <future>
  4.  
  5. int main() {
  6. try {
  7. std::promise<void> p;
  8. auto f = p.get_future();
  9. std::thread{[p = std::move(p)] () mutable {
  10. // p.set_value(); // Imagine exception happens
  11. }}.detach();
  12. f.get();
  13. } catch (const std::future_error&) {
  14. // promise broken as expected.
  15. return 0;
  16. }
  17. std::cout << "Promise not broken?\n";
  18. return 1;
  19. }
Success #stdin #stdout 0.01s 12688KB
stdin
Standard input is empty
stdout
Standard output is empty