Я хочу развернуть шаблон переменной в отдельные функции, используемые в сочетании с if
заявлением. Вот пример того, что я пытаюсь сделать:
template <typename T, size_t I>
bool bar(const T& param) { return param[I] != 13; }
template <typename T, size_t... ARGS>
void bar(const T& param, const std::index_sequence<ARGS...>&) {
if(bar<ARGS>(param) && ...)
{
cout << "no matches\n";
}
else
{
cout << "matched\n";
}
}
Но это дает мне ошибку:
ошибка C3520: ARGS
: пакет параметров должен быть расширен в этом контексте
Я хочу, чтобы строка: if(bar<ARGS>(param) && ...)
развернулась до: if(bar<0U>(param) && bar<1U>(param) && bar<2U>(param))
Есть ли способ, которым я могу это сделать? Или есть дополнительный адаптер, который я могу использовать для этого?
Живой пример