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