[iter] Allow hb_len() to fetch c.len as non-function
diff --git a/src/hb-iter.hh b/src/hb-iter.hh
index b57f37b..b123b2f 100644
--- a/src/hb-iter.hh
+++ b/src/hb-iter.hh
@@ -172,10 +172,16 @@
HB_FUNCOBJ (hb_iter);
struct
{
- template <typename T> unsigned
- operator () (T&& c) const
- { return c.len (); }
+ template <typename T> auto
+ impl (T&& c, hb_priority<1>) const HB_RETURN (unsigned, c.len ())
+ template <typename T> auto
+ impl (T&& c, hb_priority<0>) const HB_RETURN (unsigned, c.len)
+
+ public:
+
+ template <typename T> auto
+ operator () (T&& c) const HB_RETURN (unsigned, impl (std::forward<T> (c), hb_prioritize))
}
HB_FUNCOBJ (hb_len);