#include <iostream>

bool es_par(int n) {
   return n % 2 == 0;
}


int* busca_si(int* ini, int* fin, auto f) {
   for (int* p = ini; p < fin; ++p) {
      if (f(*p)) {
         return p;
      }
   }
   return fin;
}

int main( ) {
   int a[5] = { 3, 1, 4, 7, 2 };
   int* p = busca_si(&a[0], &a[0] + 5, es_par);

   if (p == &a[0] + 5) {
      std::cout << "No hay pares\n";
   } else {
      std::cout << "El primer par es " << *p << "\n";
   }
}
