Pb de templates

cs_tintin72 Messages postés 122 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 22 juillet 2006 - 13 juil. 2006 à 18:29
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 - 13 juil. 2006 à 19:45
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

steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
13 juil. 2006 à 19:45
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.
0
Rejoignez-nous