Est final utilisé pour l'optimisation en C++?
Il peut être, et est.
Comme mentionné, il est déjà utilisé; voir ici et ici montrant le code généré pour le remplacer avec et sans final
.
Une optimisation le long de ces lignes se rapportent à la "dé-virtualisation" de la les appels virtuels. Ce n'est pas toujours immédiatement affectés par l' final
de la classe, ni de méthode. Mais ils offrent de l'aide pour déterminer cela, les règles normales de la les fonctions virtuelles et la hiérarchie de classes s'appliquent.
Si le compilateur peut déterminer que lors de l'exécution d'une méthode particulière qui sera toujours appelé (par exemple, compte tenu de l'OP exemple, avec un système automatique d'objet), on peut appliquer une optimisation de toute façon, indépendamment de savoir si la méthode est - final
ou pas.
Optimisations relèvent de la comme-si la règle, qui permettent au compilateur de s'appliquer à toute transformation, aussi longtemps que le comportement observable est comme si le code d'origine avait été exécuté.