misc/foreach.h
2011-03-10 17:41:28 -05:00

15 lines
455 B
C

#ifndef foreach
#define foreach_iter_var(var) var ## _iter
#define foreach(var, val) \
for (typeof(val.begin()) foreach_iter_var(var) = (val).begin(), \
_ = (val).begin(); \
foreach_iter_var(var) != (val).end(); \
foreach_iter_var(var)++, _ = (val).begin()) \
for (typeof(*foreach_iter_var(var)) var = *foreach_iter_var(var); \
_ != (val).end(); \
_ = (val).end())
#endif