Hello,
Je rencontres un souci au niveau de l'objet std::list que j'aimerais soumettre à votre expertise. Le code est sous Windows, Visual C++ 6.
Dans une classe, j'ai une liste de, disons, maillons.
Code C/C++ :
std::list<Maillon> m_maList;
Dans ma classe, j'ai une fonction d'ajout de ce type
Code C/C++ :
void addMaillon(Maillon * pMaillon)
{
...
deleteIfNeeded(); // nettoyage si besoin
...
m_maList.push_front(*pMaillon);
...
}
La fonction de nettoyage est de ce type
Code C/C++ :
void deleteIfNeeded(void)
{
...
while(m_maList.size() > seuil_fixe)
{
...
m_maList.pop_back();
...
}
}
A un moment donné, de façon aléatoire, j'ai un plantage au niveau du pop_back(). Les traces mises en place me disent pourtant que les éléments de ma liste sont valides.
Avez-vous déjà eu ce genre de soucis? Avez-vous des pistes d'investigation?
Pensez-vous qu'un remplacement d'implémentation la STL (laquelle? SGI? STLport?) pourrait corriger le problème?
Merci de vos lumières.
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...