Bonjour,
Je pense être tombé sur un bon cas d'utilisation du mot clef mutable(enfin!), alors j'aimerais savoir ce que vous en pensez.
J'ai une instance (disons object_instance) d'une classe (disons CData), qui est partagée par plusieurs objets différents. Comme ces objets peuvent appartenir à des threads différents, je dois gérer les accès concurrents sur object_instance. J'ai donc fais une classe encapsulant CData (disons CSecure), qui contient mon object_instance , et qui sécurise les accès avec un mutex.
Le problème c'est que même pour les bêtes fonctions d'accès (genre CSecure::get_name qui fait appel à une fonction const CData::get_name), comme le mutex doit être lock puis unlock, je ne peux pas travailler avec des objets contants. Donc je pense que mettre mon mutex en mutable est tout à fait judicieux, puisque sémantiquement certaines fonctions ne modifient pas mon objet, le mutex n'est qu'un outil nécessaire de synchronisation.
Suis-je clair? Vos avis?
Partager