我想修改模板化的谷歌基准(带有自定义参数)以使用测试夹具类运行,但不知道这是否真的可行,如果可以,正确的语法如何。
仅仅添加夹具类似乎是不够的。
static void CustomArguments(benchmark::internal::Benchmark* b) {
// define I, J
for (auto i : I)
{
for (auto j : J)
b->Args({i, j});
}
}
template<typename my_type>
class My_Fixture : public benchmark::Fixture
{
protected:
void SetUp(const ::benchmark::State& state) { ...}
virtual void TearDown() { ...}
};
template <typename any_type>
static void insert(benchmark::State& state)
{
for (auto _ : state)
{ ...}
}
BENCHMARK_TEMPLATE_F(My_Fixture, insert, my_type)->Apply(CustomArguments);
BENCHMARK_MAIN();
编译器抱怨 before-last 代码行
error: expected initializer before '->' token
,但也无法从测试中的夹具中找到变量声明。这可能是结果或附加错误。我需要另外注册灯具吗?该示例在没有固定装置的情况下完美运行。