@@ -72,9 +72,11 @@ int main(int argc, char** argv) {
7272 bm.operator ()<std::vector<bool >>(" std::rotate(vector<bool>) (by 1/3)" , std_rotate, 0.33 );
7373 bm.operator ()<std::vector<bool >>(" std::rotate(vector<bool>) (by 1/2)" , std_rotate, 0.50 );
7474
75+ #if TEST_STD_VER >= 23 // vector<bool>::iterator is not std::permutable before C++23
7576 bm.operator ()<std::vector<bool >>(" rng::rotate(vector<bool>) (by 1/4)" , std::ranges::rotate, 0.25 );
7677 bm.operator ()<std::vector<bool >>(" rng::rotate(vector<bool>) (by 1/3)" , std::ranges::rotate, 0.33 );
7778 bm.operator ()<std::vector<bool >>(" rng::rotate(vector<bool>) (by 1/2)" , std::ranges::rotate, 0.50 );
79+ #endif
7880 }
7981
8082 // Benchmark {std,ranges}::rotate where we rotate a single element from the beginning to the end of the range.
@@ -108,7 +110,9 @@ int main(int argc, char** argv) {
108110 bm.operator ()<std::list<int >>(" rng::rotate(list<int>) (1 element forward)" , std::ranges::rotate);
109111
110112 bm.operator ()<std::vector<bool >>(" std::rotate(vector<bool>) (1 element forward)" , std_rotate);
113+ #if TEST_STD_VER >= 23 // vector<bool>::iterator is not std::permutable before C++23
111114 bm.operator ()<std::vector<bool >>(" rng::rotate(vector<bool>) (1 element forward)" , std::ranges::rotate);
115+ #endif
112116 }
113117
114118 // Benchmark {std,ranges}::rotate where we rotate a single element from the end to the beginning of the range.
@@ -142,7 +146,9 @@ int main(int argc, char** argv) {
142146 bm.operator ()<std::list<int >>(" rng::rotate(list<int>) (1 element backward)" , std::ranges::rotate);
143147
144148 bm.operator ()<std::vector<bool >>(" std::rotate(vector<bool>) (1 element backward)" , std_rotate);
149+ #if TEST_STD_VER >= 23 // vector<bool>::iterator is not std::permutable before C++23
145150 bm.operator ()<std::vector<bool >>(" rng::rotate(vector<bool>) (1 element backward)" , std::ranges::rotate);
151+ #endif
146152 }
147153
148154 benchmark::Initialize (&argc, argv);
0 commit comments