summaryrefslogtreecommitdiffhomepage
path: root/include/stc/algo/filter.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/stc/algo/filter.h')
-rw-r--r--include/stc/algo/filter.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/include/stc/algo/filter.h b/include/stc/algo/filter.h
index e133577c..db076ae4 100644
--- a/include/stc/algo/filter.h
+++ b/include/stc/algo/filter.h
@@ -89,8 +89,7 @@ int main()
// Use with: clist, cmap, cset, csmap, csset:
#define c_erase_if(it, C, cnt, pred) do { \
C* _cnt = &cnt; \
- intptr_t _index = 0; \
- for (C##_iter it = C##_begin(_cnt); it.ref; ++_index) { \
+ for (C##_iter it = C##_begin(_cnt); it.ref; ) { \
if (pred) it = C##_erase_at(_cnt, it); \
else C##_next(&it); \
} \
@@ -100,11 +99,11 @@ int main()
// Use with: cstack, cvec, cdeq, cqueue:
#define c_eraseremove_if(it, C, cnt, pred) do { \
C* _cnt = &cnt; \
- intptr_t _n = 0, _index = 0; \
+ intptr_t _n = 0; \
C##_iter it = C##_begin(_cnt), _i; \
while (it.ref && !(pred)) \
- C##_next(&it), ++_index; \
- for (_i = it; it.ref; C##_next(&it), ++_index) \
+ C##_next(&it); \
+ for (_i = it; it.ref; C##_next(&it)) \
if (pred) C##_value_drop(it.ref), ++_n; \
else *_i.ref = *it.ref, C##_next(&_i); \
_cnt->_len -= _n; \