рекурсии с аналогичным функционалом?
template <class... Ts>
auto foo(const Ts& ...ts) {
// [i] - псевдокод
if (Predicate(ts[0])) return F(ts[0]);
if (Predicate(ts[1])) return F(ts[1]);
...
if (Predicate(ts[sizeof...(Ts) - 1])) return F(ts[sizeof...(Ts) - 1]);
return smth_default;
}
Суть в return.
А вопрос в том как вернуть что-то дефолтное, или как сделать без рекурсии? Если второе то может так https://godbolt.org/z/ax3PWM?
std::index_sequence + lambda?
код в студию! лямбда здесь не поможет - она не может по одному условию вернуть значение, а по другому - пойти дальше обходить пак
типы должны быть разные. рекурсии не должно быть дефолтное значение я определяю сам, это не важно. пусть даже UB, если все вызовы предикатов вернули false
А предикат как разные типы принимает?
очевидно - он шаблонный
Обсуждают сегодня