Problem: The Linux perf counter buffers are documented as starting with three read_format metadata slots, but std::vector<uint64_t>{3} creates a one-element vector containing 3.
In normal benchmark runs this is usually hidden because successful monitor() calls resize the buffers before updateResults(), while failed setup sets mHasError before the indexed reads.
Fix: Use the vector size constructor so the buffers start with three zero-initialized metadata slots. This should not change the usual successful benchmark path, but it makes the default object state match the code's indexing assumptions.
Reproducer: https://godbolt.org/z/scE8rMd8Y Upstream: https://github.com/martinus/nanobench/pull/138