begin process at 2012 05 29 13:45:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

Pointeur de function comme paramètre d'un template


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pointeur de function comme paramètre d'un template

mercredi 23 août 2006 à 10:32:16 | Pointeur de function comme paramètre d'un template

bouba

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):

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:

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)

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:
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


mercredi 23 août 2006 à 10:40:23 | Re : Pointeur de function comme paramètre d'un template

bouba

Réponse acceptée !
Bon, c'est bon finalement j'ai trouvé:
scanlineRasterizerAA.gamma<double (*)(double)>(gamma_threshold05);






Cette discussion est classée dans : fonction, aa, gamma, agg, rasterizer


Répondre à ce message

Sujets en rapport avec ce message

Calcul de la fonction Gamma (ou son logarithme) [ par PeteTheBull ] Bonjour Je cherche un code qui calcule la fonction gamma(double). Je cherche une précision énorme (10e-15 au moins). Quelqu'un aurait-il un lien a affichage d'un chronometre [ par aabhanane ] Bonjour à tous, j'ai pris un bout d'un code sur ce site pour faire un chronometre. void duree (long tpa, long tpb) {    long mn, sec;     sec=(tpb-tp New dans une fonction [ par Joky ] contenu d'un objet [ par erazor ] salut, j'ai besoin de recuperer toutes les donnes contenues dans un objet pour les utiliser avec une fonction appartenant a un autre objet, avez une i Fonctions de FreeImages [ par squellettor ] Bonjour,Je suis entrain de découvrir coment marche la librarie FreeImage, mais certaine fonction ne marche pas :La fonction de resize me renvoi la mem verifier presence connecteur reseau [ par babylone2019 ] Mon probleme est que je n'arrive pas a trouver de fonction pour verifier si un lecteur reseau est present.Et que la fonction soit compatible 9x et 200 Problème utilisation fonction [ par sidhannowe ] Bonjour, J'utilise la classe screenshot présentée ici: http://www.cppfrance.com/code.aspx?id=21255 mais lorsque je compile Dev c++ m'indique des erre appeler une fonction C++ dans un code C [ par borok ] Bonjour à tous,Je cherche à appeler une fonction dans une librairie C++ à partir d'une fonction C mais je ne sais pas comment faire !Merci detection d'un messageBox et fermeture automatique [ par elroulianito ] J'aimerai utiliser une fonction issue d'une dll. Le problème est qu'à l'execution de celle-ci une fenêtre de type messagebox apparait m'invitant à cli DLL + C ++ ?? Comment qu'on fait ? [ par rtrembleau ] Salut à tous,Je bosse sur un projet écrit en Visual C++ (c un controle ActiveX au passage...), qui doit utiliser des fonctions d'une DLL fournie par u


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales