#include int fib1(int n) { if (n < 2) return n; else return fib1(n - 1) + fib1(n - 2); } int fib2(int n) { if (n < 2) return n; else return fib2(n - 2) + fib2(n - 1); } template void test(benchmark::State &state) { size_t i = 0; for (auto _: state) benchmark::DoNotOptimize(f(i++ & 31)); } BENCHMARK(test)->Iterations(100); BENCHMARK(test)->Iterations(100); BENCHMARK_MAIN();