Estoy generalmente bien con mutable
bloqueos y cachés para los métodos que son conceptualmente const
.
Especialmente en el caso del almacenamiento en caché el resultado de un cálculo de rendimiento. Eso es estrictamente un detalle de implementación que no debería preocupar a las personas que llaman, por lo que eliminar la designación const
equivaldría a una pequeña fuga en la abstracción.
Con bloqueos, me pregunto si el bloqueo es solo un detalle de implementación privada. Si el bloqueo se comparte con otros objetos, entonces en realidad es parte de la interfaz.
En algunas plataformas, se accede a los bloqueos a través de los controladores, por lo que puede usar const
en el método sin preocuparse por mutable
.
Yo diría que depende de la semántica de la clase: en diferentes casos, diferentes enfoques pueden tener sentido. –
¿Por qué no quieres que sea const? –
@Neil Tengo la impresión de que debe evitarse mutable, pero parece que mutex es un buen candidato para usarlo, así que quería saber si está bien diseño – Anycorn