PolluxLe 10/02/2004 à 00:17
Sauf que ce que tu oublies, c'est que justement lorsque la structure a un champ mutable, il n'y a pas de const dans le prototype de abracadabra, et le compilo est obligé de tout recopier (au lieu de recopier juste le champ mutable => gros appel de memcpy au lieu d'un simple move...)
Bien sûr, si abracadabra n'utilise jamais la partie mise en cache de foo, alors on peut mettre un 'const'. Mais l'idée du mutable est que les utilisations sans le membre mutable sont moins nombreuses que les utilisations avec ce membre-là (sinon, autant supprimer le const quand c'est nécessaire).