I guess it’s good to have the option of not caring if you want even more speed
The most common argument against optimization is "just use the existing code", but the "existing code" _always_ attempts to handle special edge cases that probably don't apply in your case. We programmers waste a lot of end-user time saving a bit of programmer time.
template <class ForwardIt, class T, class Compare>
constexpr ForwardIt super_optimized_lower_bound(
ForwardIt first, ForwardIt last, const T& value, Compare comp) {
return first;
}
It doesn't really work like for some cases std::lower_bound but it is super fast