Estoy tratando de definir una función usando plantillas y quiero que el nombre de tipo sea int o anEnum (una enumeración específica que había definido). He intentado lo siguiente pero he fallado:
template <int | anEnum T> // or <int T, anEnum T> or <int, anEnum T>
bool isFunction(const T &aVariable){}
Lo que intento hacer es usar plantillas, en lugar de definir dos funciones sobrecargadas. Preferiría que se llamara a la función de la siguiente manera, sin que el programador tenga que considerar el tipo
isFunction(aVariable) // and not isFunction<int> (aVariable) nor isFunction<anEnum> (aVariable)
Básicamente, quiero que esta función tenga una plantilla para los tipos int y aNum. He buscado esto, pero no pude encontrar la respuesta. ¿Qué me puedo perder? Gracias,
false
para otros tipos o no desea crear instancias de la función para otros tipos?