Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add missing constant definitions for Fortran
[simgrid.git] / include / xbt / future.hpp
index 95ab69d..4d2842f 100644 (file)
@@ -12,6 +12,7 @@
 #include <boost/variant.hpp>
 #include <exception>
 #include <functional>
+#include <future> // std::future_error
 #include <stdexcept>
 #include <type_traits>
 #include <utility>
@@ -66,7 +67,7 @@ public:
         break;
       }
       default:
-        throw std::logic_error("Invalid result");
+        throw std::future_error(std::future_errc::no_state);
     }
   }
 private:
@@ -126,7 +127,7 @@ template <class R, class F> auto fulfill_promise(R& promise, F&& code) -> declty
   }
 }
 
-template <class P, class F> auto fulfill_promise(P& promise, F&& code) -> decltype(promise.set_value())
+template <class R, class F> auto fulfill_promise(R& promise, F&& code) -> decltype(promise.set_value())
 {
   try {
     std::forward<F>(code)();