Comment vérifier le type d'un paramètre de modèle?

Supposons que j'ai une fonction de modèle et de deux classes de

class animal {
}
class person {
}

template<class T>
void foo() {
  if (T is animal) {
    kill();
  }
}

Comment puis-je faire le check pour T est un animal? Je ne veux pas avoir
quelque chose qui vérifie pendant le temps d'exécution. Grâce

  • Je mettrais "animal de compagnie" au lieu de "tuer" 🙂