This is interesting! Why not ANSI C, if not going for the latest C spec?
#define foreach(container, variable, iterator) \
for (JOIN(container, it) iterator = JOIN(JOIN(container, it), each) (variable); \
!iterator.done; iterator.step(&iterator))
Is this less nice? I personally do not like dangling )'s [I did not have to write DOS batch scripts :D]EDIT: Done, and thank you so much - it's so much cleaner this way
https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-...