cancel: Fix passing nullopt to constructor

It should be possible to use any of the Handle constructors in addition
to the new default constructor.

Change-Id: I384c5c8a9061d2fde4517bbd75c8b75b705ec1d3
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/src/stdplus/cancel.hpp b/src/stdplus/cancel.hpp
index 4b52e59..cb40c87 100644
--- a/src/stdplus/cancel.hpp
+++ b/src/stdplus/cancel.hpp
@@ -33,7 +33,8 @@
     Cancel() : detail::CancelHandle(std::nullopt)
     {
     }
-    explicit Cancel(Cancelable* c) : detail::CancelHandle(c)
+    template <typename T>
+    explicit Cancel(T&& t) : detail::CancelHandle(t)
     {
     }
 };