Les Références De Fonction

Alors je viens de travailler avec des pointeurs de fonction et je me suis souvenu que vous pourriez faire ceci:

void Foo()
{
}

int main()
{
    void(& func)() = Foo;

    func(); //::Foo();
}

L'avantage évident étant que les références référence valide les objets (sauf s'ils sont mal utilisés), ou des fonctions dans ce cas.

L'inconvénient majeur étant que vous ne pouvez pas stocker un tableau de références et ne pouvez pas les utiliser pour la fonction de membre de pointeurs (au moins autant que j'en puis dire).

Ma question: personne ne les utiliser (c'est à dire, fonction des références, pas pointeurs de fonction), et si oui, dans quelles circonstances avez-vous trouvé utile/utile?

Le seul endroit où je peux les voir être utile au large de la chauve-souris est la liaison d'une référence à une certaine fonction lors de l'utilisation de compilation conditionnelle.

J'ai toujours utiliser des références quand je n'acceptent pas les pointeurs null. Si vous utilisez les pointeurs, vous devriez vérifier si l'une (ou assurez-vous) le pointeur est null, avant de l'utiliser.
Probablement, vous pouvez utiliser std::reference_wrapper pour utiliser la référence dans le conteneur. De cette façon, vous obtenez tout le parti reference a et pouvez l'utiliser comme une valeur.

OriginalL'auteur GlobalKiller | 2009-01-26