使ってみる。
冗談半分とはいえ、SWITCHマクロを作ってしまったので、使ってみる。
FizzBuzz問題
for(int i =1; i <= 100; ++i) { SWITCH(i) { DEFAULT std::cout << i; break; COND(_%3==0) std::cout << "Fizz"; CONTINUE; COND(_%5==0) std::cout << "Buzz"; CONTINUE; } ENDSWITCH; std::cout << ' '; }
閏年・平年を表示
SWITCH(year) { DEFAULT WEAK_COND(2, _%100==0) std::cout << "平年です\n"; break; WEAK_COND(1, _%4==0) COND(_%400==0) std::cout << "閏年です\n"; break; } ENDSWITCH;
範囲指定のテスト
double x; ... std::cout << "xは"; SWITCH(x) { RANGE([1.0](2.0)) std::cout << " 1 以上 2 未満です\n"; break; XRANGE([-4.0],[6.0]) std::cout << " -4 以下 又は 6 以上です\n"; break; XRANGE((-2.0),) std::cout << " -2 未満ですです\n"; break; XRANGE(,(3.0)) std::cout << " 3 より大きい\n"; break; } ENDSWITCH;
それなりにまあまあ便利に見えるが、これをどうしても使いたいというコードが思い浮かばない。