considere el siguiente código:¿Cómo crear un puntero a miembro mutable?
struct Foo
{
mutable int m;
template<int Foo::* member>
void change_member() const {
this->*member = 12; // Error: you cannot assign to a variable that is const
}
void g() const {
change_member<&Foo::m>();
}
};
compilador genera un mensaje de error. El caso es que el miembro m
es mutable, por lo tanto, está permitido cambiar m
. Pero la función de la firma oculta la declaración mutable.
¿Cómo decalre puntero-a-mutable-miembro para compilar este código? Si es imposible, conéctese a la norma C++.
Muy bien ... ¡La solución es perfecta! –