Bonsoir !
Je dispose d'une classe de caméra qui peut mettre à jour la position de la camera de trois manières différentes, selon le type de caméra choisie. J'ai pensé au début à faire trois if :
Toutefois ces fonctions étant assez longues, cela m'aurait fait une fonction UpdatePosition() très très longue. J'ai donc pensé à faire un pointeur de fonction qui appelerait automatiquement la bonne fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
Voici donc la signature de cette fonction :
(variable membre privée)
Code : Sélectionner tout - Visualiser dans une fenêtre à part boost::function<void ()> updatePositionFunction;
Dans le constructeur de la classe, j'attribue la fonction par défaut :
Tout ce code compile correctement, le problème arrive avec la fonction UpdatePosition, qui doit appeler donc la bonne fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part updatePositionFunction = boost::bind(&Camera::UpdatePositionFPS, this);
D'autre part, est-il possible de traduire ce code sans utiliser boost (qu'avec la STL), tout en gardant une syntaxe pas trop dégueue ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7

 

 
		
		 
         
 

 
			
			

 
  
  
 
 
			 
   
 


 Crash avec boost::function
 Crash avec boost::function
				 Répondre avec citation
  Répondre avec citation
Partager