Есть ли какая-нибудь библиотека с функциями STL, такими как std :: sort ()
, std :: binary_search ()
, std :: lower_bound ()
, std :: upper_bound ()
, принимающая предикаты трехстороннего сравнения (которые возвращают -1 при меньшем, 0 при равном, 1 при большом) вместо предиката less (истинно для меньшего, ложь на равных или великих)?
Конечно, предикат less может быть легко получен из существующего трехстороннего предиката (например, [] (A a, B b) {return compare3 (a, b) <0;}
), но это приводит к дополнительному количеству вызовов к предикату.