La valeur par défaut pour boost::function argument?
J'ai une fonction que je veux prendre une option de boost::function argument n'est qu'un rappel pour signaler une condition d'erreur. Est-il une valeur particulière, je peux utiliser la valeur par défaut de la rendre facultative?
Par exemple, avec un pointeur de fonction je peux le faire:
void my_func(int a, int b, t_func_ptr err_callback=NULL) {
if (error && (err_callback != NULL))
err_callback();
}
Puis-je faire quelque chose de similaire avec boost::function remplacer le pointeur de fonction?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
0
(C++équivalent deNULL
) pour la valeur par défaut d'un boost::function argument, qui sera le résultat d'une fonction vide d'objet. Vous pouvez tester si elle est vide par l'appel de saempty()
méthode, en le comparant à 0, ou tout simplement de l'utiliser dans un contexte booléen:boost::function
les objets de travail à peu près comme la plaine des pointeurs de fonction à cet égard.Une bonne valeur spéciale pourrait être un défaut construit
boost::function
.Un vide
function
renvoie la valeur faux dans un contexte booléen (comme un pointeur NULL), ou vous pouvez utiliser leempty()
méthode pour tester si un objet de fonction wrapper contient en fait une fonction. Voir la boost::function Tutoriel.Voici un exemple de code: