Sto provando a definire una funzione usando i template e voglio che il typename sia int o anEnum (un enum specifico che avevo definito). Ho provato quanto segue ma ho fallito:
template <int | anEnum T> // or <int T, anEnum T> or <int, anEnum T>
bool isFunction(const T &aVariable){}
Quello che sto cercando di fare è usare i template, invece di definire due funzioni sovraccaricate. Preferirei che la funzione fosse chiamata come segue, senza che il programmatore debba considerare il tipo
isFunction(aVariable) // and not isFunction<int> (aVariable) nor isFunction<anEnum> (aVariable)
Fondamentalmente, voglio che questa funzione sia modellata per i tipi int e aNum. Ho cercato questo, ma non sono riuscito a trovare la risposta. Cosa posso perdere? Grazie,
false
per altri tipi o non creare un'istanza della funzione per altri tipi.