...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::algorithm::partition_point — Given a partitioned range, returns the partition point, i.e, the first element that does not satisfy p.
// In header: <boost/algorithm/cxx11/partition_point.hpp> template<typename ForwardIterator, typename Predicate> ForwardIterator partition_point(ForwardIterator first, ForwardIterator last, Predicate p);