SGTools: Fix for compiling with C++26.
This code:
const std::vector<std::string>& v = ...;
bool r = std::ranges::binary_search (v, "foo");
works with C++23 but not with C++26. The reason is that std::ranges::less requires std::equality_comparable for both the first and second argument types. Here, the second argument type is an array, and array equality comparison was deprecated in C++20 and removed in C++26. (Even though it was deprecated in C++20, we don't get warnings because it's used only in the type constraint.)
Note that std::binary_search would work, because that uses std::less rather than std::ranges::less, and std::less has only one template argument rather than two.