[algs] Try f[v] in hb_get() as last resort
authorBehdad Esfahbod <behdad@behdad.org>
Wed, 8 May 2019 16:14:44 +0000 (09:14 -0700)
committerBehdad Esfahbod <behdad@behdad.org>
Wed, 8 May 2019 16:14:44 +0000 (09:14 -0700)
src/hb-algs.hh

index 9e8a4ae..b83ee6a 100644 (file)
@@ -100,16 +100,22 @@ struct
   private:
 
   template <typename Proj, typename Val> auto
-  impl (Proj&& f, Val &&v, hb_priority<1>) const HB_AUTO_RETURN
+  impl (Proj&& f, Val &&v, hb_priority<2>) const HB_AUTO_RETURN
   (hb_deref (hb_forward<Proj> (f)).get (hb_forward<Val> (v)))
 
   template <typename Proj, typename Val> auto
-  impl (Proj&& f, Val &&v, hb_priority<0>) const HB_AUTO_RETURN
+  impl (Proj&& f, Val &&v, hb_priority<1>) const HB_AUTO_RETURN
   (
     hb_invoke (hb_forward<Proj> (f),
               hb_forward<Val> (v))
   )
 
+  template <typename Proj, typename Val> auto
+  impl (Proj&& f, Val &&v, hb_priority<0>) const HB_AUTO_RETURN
+  (
+    hb_forward<Proj> (f)[hb_forward<Val> (v)]
+  )
+
   public:
 
   template <typename Proj, typename Val> auto