77// ===----------------------------------------------------------------------===//
88
99#include < benchmark/benchmark.h>
10+ #include < memory_resource>
1011#include < vector>
1112
1213static void BM_vector_bool_copy_ctor (benchmark::State& state) {
@@ -18,14 +19,49 @@ static void BM_vector_bool_copy_ctor(benchmark::State& state) {
1819 benchmark::DoNotOptimize (vec2);
1920 }
2021}
21- BENCHMARK (BM_vector_bool_copy_ctor);
22+ BENCHMARK (BM_vector_bool_copy_ctor)->Name(" vector<bool>(const vector<bool>&)" );
23+
24+ static void BM_vector_bool_move_ctor_alloc_equal (benchmark::State& state) {
25+ std::vector<bool > vec (100 , true );
26+
27+ for (auto _ : state) {
28+ benchmark::DoNotOptimize (vec);
29+ std::vector<bool > vec2 (std::move (vec), std::allocator<bool >());
30+ benchmark::DoNotOptimize (vec2);
31+ swap (vec, vec2);
32+ }
33+ }
34+ BENCHMARK (BM_vector_bool_move_ctor_alloc_equal)
35+ ->Name(" vector<bool>(vector<bool>&&, const allocator_type&) (equal allocators)" );
36+
37+ static void BM_vector_bool_move_ctor_alloc_different (benchmark::State& state) {
38+ std::pmr::monotonic_buffer_resource resource;
39+ std::pmr::vector<bool > vec (100 , true , &resource);
40+
41+ for (auto _ : state) {
42+ benchmark::DoNotOptimize (vec);
43+ std::pmr::vector<bool > vec2 (std::move (vec), std::pmr::new_delete_resource ());
44+ benchmark::DoNotOptimize (vec2);
45+ }
46+ }
47+ BENCHMARK (BM_vector_bool_move_ctor_alloc_different)
48+ ->Name(" vector<bool>(vector<bool>&&, const allocator_type&) (different allocators)" );
2249
2350static void BM_vector_bool_size_ctor (benchmark::State& state) {
2451 for (auto _ : state) {
2552 std::vector<bool > vec (100 , true );
2653 benchmark::DoNotOptimize (vec);
2754 }
2855}
29- BENCHMARK (BM_vector_bool_size_ctor);
56+ BENCHMARK (BM_vector_bool_size_ctor)->Name(" vector<bool>(size_type, const value_type&)" );
57+
58+ static void BM_vector_bool_reserve (benchmark::State& state) {
59+ for (auto _ : state) {
60+ std::vector<bool > vec;
61+ vec.reserve (100 );
62+ benchmark::DoNotOptimize (vec);
63+ }
64+ }
65+ BENCHMARK (BM_vector_bool_reserve)->Name(" vector<bool>::reserve()" );
3066
3167BENCHMARK_MAIN ();
0 commit comments