const
exactitude ne peut améliorer les performances, car const_cast
et mutable
sont dans la langue, et de permettre au code de conformingly briser les règles. C'est encore pire en C++11, où votre const
données peuvent par exemple être un pointeur vers un std::atomic
, ce qui signifie le compilateur a à l'égard des modifications apportées par d'autres threads.
Cela dit, il est trivial pour le compilateur à regarder le code qu'il génère et de déterminer si elle a effectivement écrit pour une variable donnée, et d'appliquer des optimisations en conséquence.
Que tout est dit, const
correct est une bonne chose à l'égard de la facilité de maintenance. Sinon, les clients de votre classe pourrait casser cette catégorie de membres internes. Par exemple, considérons la norme std::string::c_str()
-- si elle ne pouvait pas retourner const valeur, vous seriez capable de la vis autour de la mémoire tampon interne de la chaîne!
Ne pas utiliser const
pour des raisons de performances. L'utiliser pour des raisons de maintenabilité.