Since #20233 compiling with clang 10.0 fails:
```
bench/addrman.cpp:113:32: error: non-constant-expression cannot be narrowed from type 'unsigned long long' to 'size_t' (aka 'unsigned int') in initializer list [-Wc++11-narrowing]
    const size_t addrman_count{bench.epochs() * bench.epochIterations()};
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bench/addrman.cpp:113:32: note: insert an explicit cast to silence this issue
    const size_t addrman_count{bench.epochs() * bench.epochIterations()};
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                               static_cast<size_t>(                    )
1 error generated.
make[2]: *** [Makefile:12508: bench/bench_bitcoin-addrman.o] Error 1
```
* This is necessary because the CAddrMan::Good() method modifies the
     * object, affecting the timing of subsequent calls to the same method and
     * we want to do the same amount of work in every loop iteration. */
    bench.epochs(5).epochIterations(1);
    const size_t addrman_count{bench.epochs() * bench.epochIterations()};
    std::vector<std::unique_ptr<CAddrMan>> addrmans(addrman_count);
    for (size_t i{0}; i < addrman_count; ++i) {
        addrmans[i] = std::make_unique<CAddrMan>( std::vector<bool>(),  false,  0);
        FillAddrMan(*addrmans[i]);
    }
    auto markSomeAsGood = [](CAddrMan& addrman) {
        for (size_t source_i = 0; source_i < NUM_SOURCES; ++source_i) {
            for (size_t addr_i = 0; addr_i < NUM_ADDRESSES_PER_SOURCE; ++addr_i) {
                if (addr_i % 32 == 0) {
                    addrman.Good(g_addresses[source_i][addr_i]);
                }
            }
        }
    };
    uint64_t i = 0;
    bench.run([&] {
        markSomeAsGood(*addrmans.at(i));
        ++i;
    });
}
BENCHMARK(AddrManAdd);
BENCHMARK(AddrManSelect);
BENCHMARK(AddrManGetAddr);
BENCHMARK(AddrManGood);