templated_fixture_test.cc 482 B

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