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

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));
			}
		}
	}
}
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
 
void applyTreatment(vigra::UInt16Image & image)
{
   //Code
}
Comment bien utiliser Boost.Function? J'ai beau lire et relire la doc de Boost, je ne vois pas comment m'en servir ? 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 ! )