No sé muy bien lo que pretendes la verdad. Quiero decir no lo entiendo... Si el array es de tipo <int> aunque tú pongas 'a', internamente te estará guardando un <int>, es decir, 97 en este caso. Pero bueno, para que haga lo que tú quieres creo que podrías sobrecargar la función con ambos tipos <char/int> o pasar un string y comprobar si ese string es numérico o alfabético.
Hay un par de funciones de la librería <cctype> muy útiles para esto último que te he comentado que son <isalpha()> e <isnum()>.
Yo personalmente no veo muy recomendable usar <auto> para un parámetro porque entonces estás permitiendo pasar cualquier cosa. Por eso el tema de buscar un tipo de variable común <string> o hacer una sobrecarga para los casos que quieras permitir.
Otra opción que veo ahora sería usar un <template> pero para esto sería recomendable aplicárselo tanto al array como al parámetro a buscar.
No sé si te servirá alguna de las opciones pero nunca me ha dado por probar este tipo de "curiosidades".
Hay un par de funciones de la librería <cctype> muy útiles para esto último que te he comentado que son <isalpha()> e <isnum()>.
Yo personalmente no veo muy recomendable usar <auto> para un parámetro porque entonces estás permitiendo pasar cualquier cosa. Por eso el tema de buscar un tipo de variable común <string> o hacer una sobrecarga para los casos que quieras permitir.
Otra opción que veo ahora sería usar un <template> pero para esto sería recomendable aplicárselo tanto al array como al parámetro a buscar.
No sé si te servirá alguna de las opciones pero nunca me ha dado por probar este tipo de "curiosidades".