title: Is keeping a mutable reference to my Logger a good idea?
body: <p>I have an abstract <code>Logger</code> class with a virtual <code>Log(std::string const&amp;)</code> method. That way I can implement any type of logging.</p>
  
  <p>The method is not const because I could, for example, create a Qt implementation of my Logger (<code>QtLogger</code>). It would log to a widget, therefore modifying an object.</p>
  
  <p>Now let's say that I keep a unique <code>QtLogger</code> object and pass it by reference to any object that needs to log something. The problem is that the <code>Log()</code> method is not const, so I can't log anything in a const method...</p>
  
  <p>Is it a good idea to keep a mutable reference to my <code>QtLogger</code>?</p>
  
  <p>If yes, then why do I get the following error with gcc? (4.6.1)<br>
  <code>reference ‘_logger’ cannot be declared ‘mutable’ [-fpermissive]</code></p>
  
  <p><strong>Edit:</strong> How I declared the reference: <code>QtLogger mutable&amp; _logger;</code></p>