#include <array>
#include <iostream>
#include <utility>

using namespace std;

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";
  }
}

int main() {
  const array<int, 3U> foo = { 0, 1, 2 };

  bar(foo, std::make_index_sequence<std::size(decltype(foo)())>());
}