[STL] warning génants avec borland

warning génants avec borland [STL] - C++ - Programmation

Marsh Posté le 29-03-2005 à 13:43:12    

Bonjour,
 
Cela fait quelques temps que je cherche à me débarrasser d'un ensemble de warning que me sort borland C++ builder 6. Ni google, ni developpez.com, ni les autres développeurs de ma boite n'ont su m'aider sur ce problème.
 
Ces warnings apparaissent lorsque j'utilise des algos de la stl comme for_each ou find_if.
Par exemple, admettons que je veuille libérer la mémoire utilisée par tous les éléments d'une liste de pointeur. J'utilise un for_each comme celui là, Delete etant le foncteur qui va bien:
 

Code :
  1. list<Truc*> list;
  2. ...
  3. void foo(){
  4.    for_each(list.begin(), list.end(), Delete());
  5. }


 
Mais le compilateur borland me sort ce warning :
 

Citation :

Argument template, _InputIter passé à 'for_each' est un itérateur output : itérateur input requis dans la fonction void foo()


 
Est ce que quelqu'un peut m'expliquer d'où il vient et comment le supprimer ?

Reply

Marsh Posté le 29-03-2005 à 13:43:12   

Reply

Marsh Posté le 30-03-2005 à 14:52:28    

Salut, tu devrais essayer avec ca
 

Code :
  1. list<Truc*> malist;
  2. ...
  3. void foo(){
  4.    for_each(malist.begin(), malist.end(), Delete());
  5. }


 
parce que list c'est un type ... l'utiliser pour un nom de variable c'est pas terrible :p

Reply

Marsh Posté le 31-03-2005 à 10:33:05    

Ca ne change rien. De toute façon, ce n'était qu'un exemple. Ce warning apparait pour n'importe quelle liste ou vecteur de n'importe quel nom et qu'il soit défini en local, global ou attribut.
 
A noter qu'il n'apparait que si on active tous les warnings et qu'il n'apparait pas avec visual. J'en suis à me dire que c'est le compilateur borland qui merde.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed