I have a C++ class field that is declared mutable. When it was of type double, I could modify it in a const method with no problem. But when I switched its type to a class in which operator= is overloaded, I got the error that this overloaded operator= does not take a const pointer to this. Is this a gcc bug, or a language quirk?