#pragma once #include #include #include #include #include #include namespace recipe_8_10 { template struct perf_timer { template static Time duration(F&& f, Args... args) { auto start = Clock::now(); std::invoke(std::forward(f), std::forward(args)...); auto end = Clock::now(); return std::chrono::duration_cast