Count et STL ??

Clercq Messages postés 19 Date d'inscription samedi 18 décembre 2004 Statut Membre Dernière intervention 14 juin 2006 - 4 mai 2006 à 18:19
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 - 5 mai 2006 à 17:51
Re bonjour,

Dans ma mission de conversion de MFC en STL je me suis confronter un un petit probleme

anciennement j'avais :

typedef Clist array_member_list;
[...]
class Type_Array : public Type_Class
{
[...]
public:
[...]
Type_Array([...],array_member_list *amt)
{
if(amt != NULL)
nb_member = amt->GetCount();
}
[...]

que j'ai modifié en :

typedef list array_member_list;
[...]
class Type_Array : public Type_Class
{
[...]
public:
[...]
Type_Array([...],array_member_list amt)
{
if(amt != NULL)
nb_member = distance(amt.begin(), amt.end());
}
[...]

mais du coup
1: if(amt != NULL) me produit une erreur : error C2676 : binary '!=' : class std::list<struct array_member_type *, class std::allocator<struct array_member_type *> > ' does not define this operator or a conversion to a type acceptable to the predefined operator
2: amt n'est plus un pointeur sur ma list. Je sais pas si c'est un difference entre CList de la MFC et list de STL, ou bien que je m'y prends comme un pied :(.

Please help :(

Je vous dit merci d'avance :).

3 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
4 mai 2006 à 18:57
Pk tu veux tester amt != NULL alors que amt n'est pas un pointeur ?
0
Clercq Messages postés 19 Date d'inscription samedi 18 décembre 2004 Statut Membre Dernière intervention 14 juin 2006
5 mai 2006 à 10:09
Bonjour,

En effet, je devrais a la place de amt != NULL mettre amt != 0 pour voir s'il y a bien quelquechose dans la list, enfin je pense ... . Mais le probleme est sur l'operateur. Dans la MSDN il dise de creer une class pour les declarer, je vais faire ça deja.

merci de ta reponse.
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
5 mai 2006 à 17:51
Mais ca n'a aucun sens de tester ton truc. amt n'est PAS UN POINTEUR, qu'est ce que ca veut dire que amt soit égal à 0 ? Rien...

Si tu récupères amt en argument, c'est que l'objet existe bien, t'as pas besoin de tester.
0
Rejoignez-nous