57 if constexpr (std::is_void_v<std::invoke_result_t<F, TArgs...>>)
59 auto start = std::chrono::high_resolution_clock::now();
60 std::invoke(std::forward<F>(f), std::forward<TArgs>(args)...);
61 auto end = std::chrono::high_resolution_clock::now();
63 auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end - start).count();
69 auto start = std::chrono::high_resolution_clock::now();
70 auto result = std::invoke(std::forward<F>(f), std::forward<TArgs>(args)...);
71 auto end = std::chrono::high_resolution_clock::now();
73 auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end - start).count();