1
2#include "benchmark/benchmark.h"
3
4#include <cassert>
5#include <memory>
6
7template<typename T>
8class MyFixture : public ::benchmark::Fixture {
9public:
10  MyFixture() : data(0) {}
11
12  T data;
13};
14
15BENCHMARK_TEMPLATE_F(MyFixture, Foo, int)(benchmark::State &st) {
16  for (auto _ : st) {
17    data += 1;
18  }
19}
20
21BENCHMARK_TEMPLATE_DEFINE_F(MyFixture, Bar, double)(benchmark::State& st) {
22  for (auto _ : st) {
23    data += 1.0;
24  }
25}
26BENCHMARK_REGISTER_F(MyFixture, Bar);
27
28BENCHMARK_MAIN();
29