20template<
typename Iterator,
typename Predicate>
23 return std::lower_bound(
begin,
26 [&](
const auto &
value,
void * ) {
return !predicate(
value); }) -
34template<
typename Iterator,
typename Predicate>
37 return std::upper_bound(
begin,
40 [&](
void * ,
const auto &
value) {
return !predicate(
value); }) -
44template<
typename Range,
typename Predicate>
50template<
typename Range,
typename Predicate>
static int64_t first_if(Iterator begin, Iterator end, Predicate &&predicate)
static int64_t last_if(Iterator begin, Iterator end, Predicate &&predicate)