1616#include < vector>
1717
1818#include < benchmark/benchmark.h>
19+ #include " ../../GenerateInput.h"
1920
2021int main (int argc, char ** argv) {
2122 // Benchmark ranges::contains where we bail out early (after visiting 25% of the elements).
@@ -25,14 +26,18 @@ int main(int argc, char** argv) {
2526 name,
2627 [](auto & st) {
2728 std::size_t const size = st.range (0 );
28- Container c (size, 1 );
29- *std::next (c.begin (), size / 4 ) = 42 ; // bail out after checking 25% of values
29+ using ValueType = typename Container::value_type;
30+ ValueType x = Generate<ValueType>::random ();
31+ ValueType y = random_different_from ({x});
32+ Container c (size, x);
33+ *std::next (c.begin (), size / 4 ) = y; // bail out after checking 25% of values
3034 auto first = c.begin ();
3135 auto last = c.end ();
3236
3337 for (auto _ : st) {
3438 benchmark::DoNotOptimize (c);
35- auto result = std::ranges::contains (first, last, 42 );
39+ benchmark::DoNotOptimize (y);
40+ auto result = std::ranges::contains (first, last, y);
3641 benchmark::DoNotOptimize (result);
3742 }
3843 })
@@ -53,13 +58,17 @@ int main(int argc, char** argv) {
5358 name,
5459 [](auto & st) {
5560 std::size_t const size = st.range (0 );
56- Container c (size, 1 );
61+ using ValueType = typename Container::value_type;
62+ ValueType x = Generate<ValueType>::random ();
63+ ValueType y = random_different_from ({x});
64+ Container c (size, x);
5765 auto first = c.begin ();
5866 auto last = c.end ();
5967
6068 for (auto _ : st) {
6169 benchmark::DoNotOptimize (c);
62- auto result = std::ranges::contains (first, last, 42 );
70+ benchmark::DoNotOptimize (y);
71+ auto result = std::ranges::contains (first, last, y);
6372 benchmark::DoNotOptimize (result);
6473 }
6574 })
0 commit comments