制御構文・論理演算を一切使わずに FizzBuzz
C++ なら剰余演算どころか if も for も一切使わずに FizzBuzz が書けるとかそういうネタ。てか、まだ FizzBuzz ネタを引っ張るか。
ちなみに、プログラム中には剰余演算があるが、C++ の仕様上、これはコンパイルタイムに計算されるはずなので、実行時には剰余演算は発生しない。念のため。
#include <iostream> template<bool mod3, bool mod5, int val> struct output { inline void operator()() { std::cout << val << std::endl; } }; template<int val> struct output<true, false, val> { inline void operator()() { std::cout << "Fizz" << std::endl; } }; template<int val> struct output<false, true, val> { inline void operator()() { std::cout << "Buzz" << std::endl; } }; template<int val> struct output<true, true, val> { inline void operator()() { std::cout << "FizzBuzz" << std::endl; } }; template<int n> inline static void fizzbuzz() { fizzbuzz<n - 1>(); output<n % 3 == 0, n % 5 == 0, n>()(); } template<> inline static void fizzbuzz<0>() { } int main() { fizzbuzz<100>(); return 0; }