I use macros to code unrolled loops like this: (silly example)
#define foreach_small_prime(p, instr) { \ int p; \ p = 2; instr; \ p = 3; instr; \ p = 5; instr; \ p = 7; instr; \ } foreach_small_prime(pp, cout << pp); int sum = 0; foreach_small_prime(pp, { sum += pp; if (sum >= 10) cout << sum << endl; }); But in some cases I might use for construct:
#define foreach_small_even(ii) for(int ii = 0; ii < 20; ii += 2) int sum = 0; foreach_small_even(pp) { sum += pp; if (sum >= 10) cout << sum << endl; } I like this macros because I can pass a variable name as a parameter.
Question: Is there a way to define loop like the first one in a for-like syntax like the second macro?