summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2022-08-10 15:16:58 +0200
committerTyge Løvset <[email protected]>2022-08-10 15:16:58 +0200
commit0604d29a95d77f5dc9aeb4813e126a3831062648 (patch)
treecde1c6c591ac86e9760f7202e7b48d67dccc156d /include
parent4fe41778b4429c4974166e5ae531577dba22bed5 (diff)
downloadSTC-modified-0604d29a95d77f5dc9aeb4813e126a3831062648.tar.gz
STC-modified-0604d29a95d77f5dc9aeb4813e126a3831062648.zip
Simplified c_foreach macro.
Diffstat (limited to 'include')
-rw-r--r--include/stc/ccommon.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/include/stc/ccommon.h b/include/stc/ccommon.h
index 7a60b045..8ea58314 100644
--- a/include/stc/ccommon.h
+++ b/include/stc/ccommon.h
@@ -159,13 +159,12 @@ STC_INLINE char* c_strnstrn(const char *s, const char *needle,
#define c_foreach3(it, C, cnt) \
for (C##_iter it = C##_begin(&cnt); it.ref; C##_next(&it))
#define c_foreach4(it, C, start, finish) \
- for (C##_iter it = start, *_end_ref = (C##_iter*)(finish).ref \
- ; it.ref != (C##_value*)_end_ref; C##_next(&it))
+ for (C##_iter it = start, *_endref = (C##_iter*)(finish).ref \
+ ; it.ref != (C##_value*)_endref; C##_next(&it))
#define c_forpair(key, val, C, cnt) /* structured binding */ \
- for (struct {C##_iter _it; C##_value* _endref; const C##_key* key; C##_mapped* val;} \
- _ = {C##_begin(&cnt), C##_end(&cnt).ref} \
- ; _._it.ref != _._endref && (_.key = &_._it.ref->first, _.val = &_._it.ref->second) \
+ for (struct {C##_iter _it; const C##_key* key; C##_mapped* val;} _ = {C##_begin(&cnt)} \
+ ; _._it.ref && (_.key = &_._it.ref->first, _.val = &_._it.ref->second) \
; C##_next(&_._it))
#define c_forrange(...) c_MACRO_OVERLOAD(c_forrange, __VA_ARGS__)