if I replace the typename std::enable_if< traits::detail::is_deferred_invocable::value, bool>::type with bool - it compiles fine. I originally had this trouble with the mpi executor, but I do not see any work arounds for it in the mpi exec stuff. It must only check if the function is invokable for apply and not for async