diff --git a/include/stdplus/pinned.hpp b/include/stdplus/pinned.hpp
index 085ea8d..abf6c7f 100644
--- a/include/stdplus/pinned.hpp
+++ b/include/stdplus/pinned.hpp
@@ -63,6 +63,9 @@
 };
 
 template <typename T>
+Pinned(T t) -> Pinned<std::remove_cvref_t<T>>;
+
+template <typename T>
 struct PinnedRef : std::reference_wrapper<T>
 {
     using type = T;
@@ -99,6 +102,21 @@
     }
 };
 
+template <typename T>
+PinnedRef(T t) -> PinnedRef<std::remove_reference_t<T>>;
+
+template <typename T>
+PinnedRef(Pinned<T>& t) -> PinnedRef<T>;
+
+template <typename T>
+PinnedRef(const Pinned<T>& t) -> PinnedRef<const T>;
+
+template <typename T, typename Deleter>
+PinnedRef(const std::unique_ptr<T, Deleter>& t) -> PinnedRef<T>;
+
+template <typename T>
+PinnedRef(const std::shared_ptr<T>& t) -> PinnedRef<T>;
+
 } // namespace stdplus
 
 template <class T>
diff --git a/test/pinned.cpp b/test/pinned.cpp
index c8daa3c..a46d949 100644
--- a/test/pinned.cpp
+++ b/test/pinned.cpp
@@ -12,10 +12,10 @@
 TEST(Pinned, Basic)
 {
     EXPECT_EQ("hi", Pinned<std::string>("hi"));
-    EXPECT_EQ("hi", Pinned<std::string>(std::string("hi")));
+    EXPECT_EQ("hi", Pinned(std::string("hi")));
     auto s = std::string("hi");
-    EXPECT_EQ("hi", Pinned<std::string>(s));
-    EXPECT_EQ("hi", Pinned<std::string>(std::move(s)));
+    EXPECT_EQ("hi", Pinned(s));
+    EXPECT_EQ("hi", Pinned(std::move(s)));
     Pinned<std::string> ps = "hi";
     EXPECT_EQ("hi", Pinned<std::string>(ps));
     // EXPECT_EQ("hi", Pinned<std::string>(std::move(ps)));
@@ -37,7 +37,7 @@
 
 TEST(Pinned, Fundamental)
 {
-    Pinned<int> pi = 4;
+    Pinned pi = 4;
     EXPECT_EQ(4, [](int& f) { return f; }(pi));
     EXPECT_EQ(4, [](int f) { return f; }(pi));
 }
@@ -66,7 +66,7 @@
 TEST(PinnedRef, Basic)
 {
     auto uptr = std::make_unique<std::string>("hi");
-    PinnedRef<std::string>(uptr).get()[0] = 'd';
+    PinnedRef(uptr).get()[0] = 'd';
     EXPECT_EQ("di", *uptr);
     PinnedRef<const std::string> cref(uptr);
     // cref.get()[0] = 'e';
@@ -81,6 +81,7 @@
     const Pinned<std::string> cpstr("hi");
     // EXPECT_EQ("hi", PinnedRef<std::string>(cpstr).get());
     EXPECT_EQ("hi", PinnedRef<const std::string>(cpstr).get());
+    EXPECT_EQ("hi", PinnedRef(cpstr).get());
 }
 
 TEST(PinnedRef, Fundamental)
@@ -102,6 +103,7 @@
     // PinnedRef<NoMove2> rnm2(nm2);
     NoMove3 nm3;
     PinnedRef<NoMove3> rnm3(nm3);
+    PinnedRef rnm3i(nm3);
 }
 
 } // namespace stdplus
