我有一个代码片段,我需要对由两部分组成的基准进行基准测试,首先状态需要设置一次,接下来我需要对函数进行实际基准测试。
我的代码如下所示:
static void BM_LoopTime(benchmark::State& state)
{
MasterEngine engine;
for (auto _ : state)
{
engine.LoopOnce();
}
}
BENCHMARK(BM_LoopTime);
在我的输出中,我得到:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Pointer already set
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
多次,这是一条自定义错误消息,指示一个非常重要的指针,它应该只被触摸一次,试图被覆盖。
在我的实现中多次调用该代码是未定义的行为。我怎样才能调用对象初始化一次,然后告诉它调用循环?