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
 {