Salut à tous,
Dans le cadre d'un travail en équipe, j'aimerais me servir d'une fonction membre utilisé par mon collègue, dont je n'ai pas besoin de connaitre le code source normalement.
Voici ma fonction que j'aimerai créer (l'utilisation de Boost.Fonction est très certainement mauvaise):
J'aimerai recevoir un pointeur de fonction de sa part, fonction dont je ne connais pas a priori l'implémentation:
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
17
18 void Camera::creerFilm(boost::function<void (vigra::UInt16Image & )> & fonct, int image_debut, int image_fin, std::string nom_fichier) { std::cout << "Generation d'un film en cours..." << std::endl; std::ofstream file ( nom_fichier.c_str(), std::ios_base::binary); for (int i = image_debut; i < image_fin; i++) { if (isNumeroValide(i) ) { vigra::UInt16Image image = getImage(i); fonc(image); // Traitement à appliquer ICI vigra::UInt16Image::const_iterator iter; for (iter = image.begin(); iter != image.end(); iter++) { file.write(reinterpret_cast<const char*>(iter), sizeof(vigra::UInt16)); } } } }
Comment bien utiliser Boost.Function? J'ai beau lire et relire la doc de Boost, je ne vois pas comment m'en servir ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void applyTreatment(vigra::UInt16Image & image) { //Code }C'est lui qui choisi la fonction à appliquer, et c'est moi qui possède l'argument (image).
Comment faire?
Merci de votre aide (encore une fois ! )![]()
Partager