Salut,
La constance porte sur l'utilisation de la variable pas sur sa valeur effective :
Code:
1
2
3
4
5 static volatile const TYPE &io_mem_map; void fonction_impure() { io_mem_map; // peut avoir un effet de bord indépendant des paramètres et ce même si l'instruction n'a l'air d'être qu'une lecture sans rien d'autre }
@flob : 2 intérêts des fonctions pures : elles ne peuvent être évalués qu'une seule fois puis leur résultat 'caché' (transparance référentielle). L'autre avantage est la possibilité de réordonner différents appels indépendants (ça permet donc des optimisations)