diff options
| author | Tyge Løvset <[email protected]> | 2022-08-10 15:16:58 +0200 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2022-08-10 15:16:58 +0200 |
| commit | 0604d29a95d77f5dc9aeb4813e126a3831062648 (patch) | |
| tree | cde1c6c591ac86e9760f7202e7b48d67dccc156d /include | |
| parent | 4fe41778b4429c4974166e5ae531577dba22bed5 (diff) | |
| download | STC-modified-0604d29a95d77f5dc9aeb4813e126a3831062648.tar.gz STC-modified-0604d29a95d77f5dc9aeb4813e126a3831062648.zip | |
Simplified c_foreach macro.
Diffstat (limited to 'include')
| -rw-r--r-- | include/stc/ccommon.h | 9 |
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__) |
