Je pense que votre exemple d'utilisation est assez bonne. Parce que si vous voulez utiliser un simple pointeur de fonction, et vous appliquez ensuite l'adresse de l'opérateur, vous obtiendrez l'adresse du pointeur de fonction. À l'aide d'une référence à la fonction va faire que l'on attend, en ce qu'elle renvoie un pointeur sur la fonction elle-même.
Je ne peux pas penser à de nombreux exemples. En gardant les références de fonction, comme vous le soulignez, a d'horribles conséquences. Un autre éventuellement indésirables conséquence est que, si tenus en tant que membre, vos objets seront incessibles si vous n'écrivez pas votre propre opérateur= et de s'abstenir d'essayer de ré-attribuer la fonction de référence.
Je pense que la plupart des utilisations de la fonction de références implicites, à l'instar de la plupart des utilisations du tableau des références bien que beaucoup plus, lorsque vous accepter des arguments par référence:
template<typename T>
void do_something(T const& t) { ... }
Tout en acceptant les tableaux par référence a l'avantage de ne pas perdre leurs informations de taille, l'acceptation de fonctions par référence explicitement, ne semble pas être un avantage (au moins autant que je peux voir). Je suppose que l'existence de références de fonction est largement justifié par la vision idéaliste d'une référence comme un aliasde nom d'un objet ou d'une fonction, en collaboration avec le fait qu'il permet le passage de fonctions à ces modèles qui acceptent leur argument par référence.
Je serais probablement éviter de les utiliser si je n'aurais pas besoin d'eux, inévitablement. Constante des pointeurs de fonction également de la non-reassignable callables, et sera probablement éviter les confusions lorsque d'autres programmeurs, qui, éventuellement, ne sont pas très familier avec cette langue de niches, de lire votre code. Vaut la peine de noter que Vandervoorde & Josuttis vous conseillons également de les éviter pour réduire les risques de confusion (dans leur livre " C++ Templates - Le Guide Complet).