[iter] Accept rvalues to hb_enumerate()
authorBehdad Esfahbod <behdad@behdad.org>
Wed, 8 May 2019 05:45:01 +0000 (22:45 -0700)
committerBehdad Esfahbod <behdad@behdad.org>
Wed, 8 May 2019 05:45:01 +0000 (22:45 -0700)
src/hb-iter.hh
src/test-iter.cc

index 5ad839e..74cfbc8 100644 (file)
@@ -529,7 +529,7 @@ struct
   template <typename Iterable,
            hb_requires (hb_is_iterable (Iterable))>
   hb_enumerate_iter_t<hb_iter_t (Iterable)>
-  operator () (Iterable& it) const
+  operator () (Iterable&& it) const
   { return hb_enumerate_iter_t<hb_iter_t (Iterable)> (hb_iter (it)); }
 }
 HB_FUNCOBJ (hb_enumerate);
index e8c6bda..bd99f83 100644 (file)
@@ -157,6 +157,8 @@ main (int argc, char **argv)
 
   test_iterator (hb_zip (st, v));
   test_iterator_non_default_constructable (hb_enumerate (st));
+  test_iterator_non_default_constructable (hb_enumerate (hb_iter (st)));
+  test_iterator_non_default_constructable (hb_enumerate (hb_iter (st) + 1));
   test_iterator_non_default_constructable (hb_iter (st) | hb_filter ());
   test_iterator_non_default_constructable (hb_iter (st) | hb_map (hb_identity));