IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Pb de for_each


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut Pb de for_each
    Bonjour,

    je désire utiliser for_each pour appliquer une fonction membre de ma classe A à tous les les objets contenus dans une liste.
    Je suis sous VC6.

    Ainsi je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    void A::Foo(int x)
    {
    	return;
    }
     
    class B
    {
    std::list<A*> m_liste;
    ...
    };
     
    void B::PourTous(int x)
    {
    std::for_each(m_liste.begin(), m_liste.end(), std::bind2nd(std::mem_fun_ref(&A::Foo), x));
    }
    Mais j'obtiens cette erreur :
    error C2784: 'class std::mem_fun_ref_t<_R,_Ty> __cdecl std::mem_fun_ref(_R (__thiscall _Ty::*)(void))' : could not deduce template argument for '<Unknown>' from 'void (__thiscall A::*)(int)'
    Qu'est-ce que je fais d'incorrect ?

    @+

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Et avec mem_fun plutôt que mem_fun_ref (puisque tu stockes des pointeurs) ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    salut,

    pareil !

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Possible que le manque de spécialisation partielle dans VC++ 6 empêche d'utiliser mem_fun avec une fonction dont le type de retour est void. Essaye avec une fonction qui renvoie un int par exemple pour voir ?

    De toute façon, que ce soit ça ou pas, changer de compilo serait une bonne idée. Visual C++ 2005 Express est gratuit, par exemple.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    Citation Envoyé par Laurent Gomila
    Possible que le manque de spécialisation partielle dans VC++ 6 empêche d'utiliser mem_fun avec une fonction dont le type de retour est void. Essaye avec une fonction qui renvoie un int par exemple pour voir ?
    ---> Pareil

    Citation Envoyé par Laurent Gomila
    De toute façon, que ce soit ça ou pas, changer de compilo serait une bonne idée. Visual C++ 2005 Express est gratuit, par exemple.
    ---> OK, je le testerai chez moi car je l'ai chez moi. Là c'est pour ma boîte.

    @+

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    Bonjour,

    effectivement ça marche nickel sous VC2005

    Quel est le pb exactement sous VC6 ?

    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Code conditionnel : if else ou for_each ?
    Par quicky2000 dans le forum C++
    Réponses: 8
    Dernier message: 18/02/2007, 16h30
  2. Réponses: 8
    Dernier message: 29/08/2006, 18h36
  3. Réponses: 1
    Dernier message: 11/04/2006, 20h43
  4. [Debutant][STL] For_each instance
    Par Mucho dans le forum SL & STL
    Réponses: 2
    Dernier message: 17/03/2006, 16h29
  5. Problème for_each et foncteur personnel
    Par Alp dans le forum C++
    Réponses: 3
    Dernier message: 16/02/2006, 21h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo