C++11 solution for previous commit

Let's see which gods (new term we use to refer to build bots) we anger.
Will revert after.
diff --git a/src/hb-dsalgs.hh b/src/hb-dsalgs.hh
index 8c91074..5be6b27 100644
--- a/src/hb-dsalgs.hh
+++ b/src/hb-dsalgs.hh
@@ -492,14 +492,7 @@
 struct hb_auto_t : Type
 {
   hb_auto_t (void) { Type::init (); }
-  /* Explicitly allow the following only for pointer and references,
-   * to avoid any accidental copies.
-   *
-   * Apparently if we template for all types, then gcc seems to
-   * capture a reference argument in the type, but clang doesn't,
-   * causing unwanted copies and bugs that come with it. */
-  template <typename T1> hb_auto_t (T1 *t1) { Type::init (t1); }
-  template <typename T1> hb_auto_t (T1 &t1) { Type::init (t1); }
+  template <typename T1> hb_auto_t (T1 &&t1) { Type::init (t1); }
   ~hb_auto_t (void) { Type::fini (); }
   private: /* Hide */
   void init (void) {}