Код: Выделить всё
std::any_of(v.begin(), v.end(), f);Код: Выделить всё
std::find_if(v.begin(), v.end(), f);Но допустим, у меня есть std::optional g(T)
Я хотел бы получить первый результат предиката g, примененного к [v.begin(), v.end()), где результат has_value() (он же правда).
Я примерно написал это так:
Код: Выделить всё
template
auto first_true(Iterator b, Iterator e, Callable && op) {
static_assert(static_cast(ResultT{}) == false,
"The default-constructed value returned by Callable must be convertible to boolean and evaluate to 'false'");
ResultT res{};
for (b; b != e; b++) {
res = op(*b);
if (res) return res;
}
return res;
};
Существует ли стандартная библиотечная функция или функция boost, которая возвращает первое «истинное» значение, возвращенное из предиката?
Подробнее здесь: https://stackoverflow.com/questions/723 ... er-a-range
Мобильная версия