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

Langage C++ Discussion :

Pointeur de function commen paramètre d'un template


Sujet :

Langage C++

  1. #1
    Membre régulier
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 94
    Points : 94
    Points
    94
    Par défaut Pointeur de function commen paramètre d'un template
    Bonjour, j'utilise une librairie C++ (www.antigrain.com) basée essentiellement sur les templates.
    Je n'arrive pas a appeler la fonction template suivante (membre d'une classe):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    template<class GammaF> void gamma(const GammaF& gamma_function) { 
         int i;
         for(i = 0; i < aa_scale; i++)
         m_gamma[i] = uround(gamma_function(double(i) / aa_mask) * aa_mask);
    }
    Je définit la fonction paramètre de gamma:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double gamma_threshold05(double g) { return (g < 0.5) ? 0 : 1; }
    Je réalise l'appel ainsi (je précise que gamme est membre de la classe de l'objet scanlineRasterizerAA)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanlineRasterizerAA.gamma(gamma_threshold05);
    Normalement ce code ne devrait pas avoir de problème, je me souvient l'avoir utiliser avec DevC++, mais la je suis sous Visual C++ express et il me renvoi l'erreur suivante:

    1>.\TabDrawer.cpp(39) : error C2784: 'void agg::rasterizer_scanline_aa<>::gamma(const GammaF &)' : impossible de déduire l'argument modèle pour 'type de fonction surchargée' à partir de 'type de fonction surchargée'
    1> C:\CLibs\agg-2.4\include\agg_rasterizer_scanline_aa.h(155) : voir la déclaration de 'agg::rasterizer_scanline_aa<>::gamma'
    1>.\TabDrawer.cpp(39) : error C2784: 'void agg::rasterizer_scanline_aa<>::gamma(const GammaF &)' : impossible de déduire l'argument modèle pour 'type de fonction surchargée' à partir de 'type de fonction surchargée'
    1> C:\CLibs\agg-2.4\include\agg_rasterizer_scanline_aa.h(155) : voir la déclaration de 'agg::rasterizer_scanline_aa<>::gamma'
    Je suppose qu'il faut donc spécifier le type de GammaF (dans la fonction gamma) lors de l'appel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanlineRasterizerAA.gamma<????????>(gamma_threshold05);
    Voilà, tout le problème est donc de savoir quoi mettre à la place des ?????, quelqu'un sait t'il ??
    J'ai essayé void (*f)(double) mais c'est pas bon.

    Merci pour votre aide.

    Bouba

    Balises code ajoutées

  2. #2
    Membre régulier
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 94
    Points : 94
    Points
    94
    Par défaut
    C'est bon, j'ai trouvé:
    scanlineRasterizerAA.gamma<double (*)(double)>(gamma_threshold05);

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/07/2007, 14h44
  2. Passage de pointeur de vector en paramètre
    Par Chop_chop dans le forum SL & STL
    Réponses: 2
    Dernier message: 11/05/2007, 12h33
  3. Function avec paramètre optionnel
    Par Poussy-Puce dans le forum ASP
    Réponses: 3
    Dernier message: 22/12/2006, 19h53
  4. Passage de paramètres vers un template xsl
    Par Le lag dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 19/04/2006, 19h20
  5. Réponses: 4
    Dernier message: 01/12/2005, 13h33

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