Pb de templates

Signaler
Messages postés
122
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
22 juillet 2006
-
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
-
Bonjour,


J'ai un pb avec une liste chainée géré par des templates.
Tant que l'information à stocker dans la liste est de type classique (int, float etc....)
ça va. Par contre si le type est une structure il y a quelque pb.


par ex avec la fonction qui retourne la valeur de l'information.


template <typename T>
T CList<T>::returnData()
{
    if(sizeList == 0) return 0;  //si la liste est vide
    return list->data;
}


Lorsque T est une structure, le compilo me dit qu'il ne peut pas renvoyer un int,
qu'il lui faut retourner un argument de type structure.
Est ce qu'il y a un moyen de résoudre ce pb ?
Un cast avec les templates ?


Merci d'avance

Tintin 72

1 réponse

Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
3
Il faudrais pour que ca compile que l'on puisse construire une instance
de ta structure a partir d'un int ou que la conversion a partir d'un
entier soit definie. C'est une mauvaise idée de retourner et zero car
ca limite ton template aux types scalaires de base et surtout il y a un
probleme de conception car si la liste est vide on ne devrait pas
pouvoir "deferencer" la tete et appeler la methode returnData. Regarde
comment est foutu le modele std::list de la bibliotheque standard au
niveau de l'interface.