cancel: Add default constructor
Change-Id: Ib05b5bef9058c1b868bd06850b5aaebff983f538
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/src/stdplus/cancel.hpp b/src/stdplus/cancel.hpp
index e151e00..4b52e59 100644
--- a/src/stdplus/cancel.hpp
+++ b/src/stdplus/cancel.hpp
@@ -12,6 +12,10 @@
virtual ~Cancelable() = default;
virtual void cancel() noexcept = 0;
};
+
+namespace detail
+{
+
struct CancelableF
{
inline void operator()(Cancelable* c) noexcept
@@ -19,7 +23,20 @@
c->cancel();
}
};
-using Cancel = stdplus::Managed<Cancelable*>::HandleF<CancelableF>;
+
+using CancelHandle = stdplus::Managed<Cancelable*>::HandleF<CancelableF>;
+
+} // namespace detail
+
+struct Cancel : detail::CancelHandle
+{
+ Cancel() : detail::CancelHandle(std::nullopt)
+ {
+ }
+ explicit Cancel(Cancelable* c) : detail::CancelHandle(c)
+ {
+ }
+};
namespace detail
{