//===----------------------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // REQUIRES: std-at-least-c++23 #include #include #include "associative_container_benchmarks.h" #include "../../GenerateInput.h" #include "benchmark/benchmark.h" template struct support::adapt_operations> { using ValueType = typename std::flat_map::value_type; using KeyType = typename std::flat_map::key_type; static ValueType value_from_key(KeyType const& k) { return {k, Generate::arbitrary()}; } static KeyType key_from_value(ValueType const& value) { return value.first; } using InsertionResult = std::pair::iterator, bool>; static auto get_iterator(InsertionResult const& result) { return result.first; } }; int main(int argc, char** argv) { support::associative_container_benchmarks>("std::flat_map"); benchmark::Initialize(&argc, argv); benchmark::RunSpecifiedBenchmarks(); benchmark::Shutdown(); return 0; }