aze (./1262) :
pourquoi est ce que tu utilises un pointeur vers une map ? ça ne sert à rien et c'est source d'erreurs
Farpaitement d'accord, mais si je déclare un map dans les membres de ma classe, g++ va gueuler si je ne l'initialise pas dans la liste du constructeur, et je fait tout pour ne pas avoir de warnings. Et je sais plus pourquoi, j'avais pas trouvé la syntaxe pour initialiser un vector dans la liste d'init, et j'ai même pas essayé avec map.
Donc à revoir, arce que je suis bien d'accord avec toi sur le principe.
aze (./1262) :
et puis je ne sais pas si c'est un oubli ou si c'est géré ailleurs, mais attention à toujours vérifier que tu ne vas pas accéder à un indice qui n'existe pas. si elle n'existait pas, [] va créer l'entrée et find() va te renvoyer m_EntriesList.end() qui n'est pas déréferençable.
Il n'y a pas de raison qu'on s'adresse à un objet inexistant. Je pourrais faire cette vérification à des fins de débogage par contre, c'est sûr.
Jyaif (./1263) :
Essaye de faire: (*m_EntriesList)[ID]->receive();
J'ai essayé de jouer sur les parenthèses, j'ai peut-être pas essayé ça, je vais voir.
Jyaif (./1263) :
est-ce que:
m_EntriesList = new std::map; compile?
Oui.
Jyaif (./1263) :
Quoi qu'il en soit, je pense que: m_EntriesList = new std::map();
Je vois pas la différence fondamentale en fait, c'est le même constructeur qui va être appelé, pourquoi le spécifier ?