std::shared_ptr<void> thread_cache;
class ThreadCache;
friend class ThreadCache;
- void base_run(Config config,
+ void base_run(const Config &config,
void (*fn)(BenchHarnessBase *bench_harness_base,
std::uint64_t iteration_count,
std::uint32_t thread_num));
: fn(std::move(fn)), input(std::move(input))
{
}
- void run(Config config)
+ void run(const Config &config)
{
base_run(config, [](BenchHarnessBase *bench_harness_base,
std::uint64_t iteration_count,
{
private:
std::string m_name;
- std::function<void(Config config)> m_run;
+ std::function<void(const Config &config)> m_run;
public:
template <typename Fn, typename Input>
explicit Benchmark(Fn fn, Input input, std::string name)
- : m_name(std::move(name)), m_run([fn, input](Config config) {
+ : m_name(std::move(name)), m_run([fn, input](const Config &config) {
return BenchHarness(std::move(fn), std::move(input)).run(config);
})
{
}
- void run(Config config)
+ void run(const Config &config)
{
return m_run(config);
}