私はマクロを使用して、次のように展開されたループをコーディングします:(愚かな例)
#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;
});
しかし、場合によっては、構成に使用することがあります。
#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;
}
変数名をパラメーターとして渡すことができるので、このマクロが好きです。
質問:2番目のマクロのようなfor-like構文で最初のループのようなループを定義する方法はありますか?