Equivalent C++ du JAVA class C<T extends M> [Résolu]

Messages postés
12
Date d'inscription
lundi 21 juin 2010
Statut
Membre
Dernière intervention
31 août 2010
- - Dernière réponse : bbenator
Messages postés
12
Date d'inscription
lundi 21 juin 2010
Statut
Membre
Dernière intervention
31 août 2010
- 31 août 2010 à 16:09
La question est dans le titre:

Java :


class C<T extends M>{
 
}


Et j'aimerai faire en C++ l'équivalent soit un truc du genre



template <class T: public M> class C{
 
}



si c'est possible faites le savoir

merci
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
3838
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
10 juin 2019
84
3
Merci
Ce n'est pas possible. Tu es obligé de passer par une vérification post compilation (ou peut être en testant boost model checking, mais je ne l'ai jamais testé).

En utilisant un dynamic_cast ou un typeof, tu peux vérifier cette contrainte.

Non testé:
template <class T>
class C
{
  C(T obj)
  {
    assert(dynamic_cast<M*>(&obj));
  }
};

________________________________________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 133 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cptpingu
Messages postés
12
Date d'inscription
lundi 21 juin 2010
Statut
Membre
Dernière intervention
31 août 2010
1
0
Merci
j'ai réussi avec Boost merci de ta réponse
Commenter la réponse de bbenator