Revert "[iter] Another try at writing some for loops as range loops"

This reverts commit 69c6928289.

This had code size increase, and slows down non-random-access
iterators since it accesses __end__ which is O(n).
pull/4271/head
Behdad Esfahbod 1 year ago
parent 80d6e996d7
commit ad620af6f6
  1. 23
      src/hb-iter.hh

@ -496,8 +496,8 @@ struct hb_reduce_t
operator () (Iter it) operator () (Iter it)
{ {
AccuT value = init_value; AccuT value = init_value;
for (auto&& _ : it) for (; it; ++it)
value = r (value, _); value = r (value, *it);
return value; return value;
} }
@ -679,8 +679,8 @@ struct hb_apply_t
hb_requires (hb_is_iterator (Iter))> hb_requires (hb_is_iterator (Iter))>
void operator () (Iter it) void operator () (Iter it)
{ {
for (auto&& _ : it) for (; it; ++it)
(void) hb_invoke (a, _); (void) hb_invoke (a, *it);
} }
private: private:
@ -879,8 +879,8 @@ struct hb_sink_t
hb_requires (hb_is_iterator (Iter))> hb_requires (hb_is_iterator (Iter))>
void operator () (Iter it) void operator () (Iter it)
{ {
for (auto&& _ : it) for (; it; ++it)
s << _; s << *it;
} }
private: private:
@ -906,8 +906,8 @@ struct
hb_requires (hb_is_iterator (Iter))> hb_requires (hb_is_iterator (Iter))>
void operator () (Iter it) const void operator () (Iter it) const
{ {
for (auto&& _ : it) for (; it; ++it)
(void) _; (void) *it;
} }
} }
HB_FUNCOBJ (hb_drain); HB_FUNCOBJ (hb_drain);
@ -923,10 +923,11 @@ struct hb_unzip_t
hb_requires (hb_is_iterator (Iter))> hb_requires (hb_is_iterator (Iter))>
void operator () (Iter it) void operator () (Iter it)
{ {
for (auto&& _ : it) for (; it; ++it)
{ {
s1 << _.first; const auto &v = *it;
s2 << _.second; s1 << v.first;
s2 << v.second;
} }
} }

Loading…
Cancel
Save