Vérifiez si la classe est dérivée d'une classe spécifique (compilation, exécution à la fois des réponses disponibles)

Il est plus facile d'expliquer sur un exemple donc,

class base {
//....
}

class derived1 : public base {
//...
}

Dans ma bibliothèque, il est un pointeur de classe de base. L'utilisateur de la bibliothèque ont à rendre les classes dérivées à partir de la base ou derived1 et attribuer pointeur vers la classe.

Comment puis-je vérifier ce que la classe est définie par l'utilisateur de la classe dérivée?

Moment de l'exécution ou de la compilation?
Moment de la compilation ....
Pour la compilation, vous pouvez regarder ici pour le trait qui permet de vérifier si X est une base de v
Êtes-vous à l'aide de C++11? Si donc utiliser les std::is_base_of.
Pour la compilation, vous avez std::is_base_of.

OriginalL'auteur khajvah | 2013-08-07