summaryrefslogtreecommitdiff
path: root/src/mongo/util/future.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/util/future.h')
-rw-r--r--src/mongo/util/future.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mongo/util/future.h b/src/mongo/util/future.h
index 9fa51d173b4..978dca58106 100644
--- a/src/mongo/util/future.h
+++ b/src/mongo/util/future.h
@@ -652,6 +652,10 @@ public:
Future(const Future&) = delete;
Future& operator=(const Future&) = delete;
+ /* implicit */ Future(T val) : Future(makeReady(std::move(val))) {}
+ /* implicit */ Future(Status status) : Future(makeReady(std::move(status))) {}
+ /* implicit */ Future(StatusWith<T> sw) : Future(makeReady(std::move(sw))) {}
+
/**
* Make a ready Future<T> from a value for cases where you don't need to wait asynchronously.
*
@@ -1144,7 +1148,8 @@ class MONGO_WARN_UNUSED_RESULT_CLASS future_details::Future<void> {
public:
using value_type = void;
- Future() = default;
+ /* implicit */ Future() : Future(makeReady()) {}
+ /* implicit */ Future(Status status) : Future(makeReady(std::move(status))) {}
static Future<void> makeReady() {
return Future<FakeVoid>::makeReady(FakeVoid{});