#define foreach(container, variable, iterator) \ for (JOIN(container, it) iterator = JOIN(JOIN(container, it), each) (variable); \ !iterator.done; iterator.step(&iterator))
EDIT: Done, and thank you so much - it's so much cleaner this way
https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-...