The benchmark report shows ~20ns average lookup time for std::unordered_set, which is less than the time taken by a cache miss, therefore unrealistic for average sized sets. The benchmark uses sets of 100k elements, a std::unordered_set of 100k int32 barely fits in L3 cache and the benchmark makes it look too good in comparison with amc::FlatSet.
I suggest to use bigger set sizes, or repeat the benchmark for different set sizes.
The benchmark report shows ~20ns average lookup time for std::unordered_set, which is less than the time taken by a cache miss, therefore unrealistic for average sized sets. The benchmark uses sets of 100k elements, a std::unordered_set of 100k int32 barely fits in L3 cache and the benchmark makes it look too good in comparison with amc::FlatSet.
I suggest to use bigger set sizes, or repeat the benchmark for different set sizes.