title: calling non-const function on non-const member in const function
body: <p>The member is non const, and the member's member function is non const, when it is called on a const member function, it will generate an error, complains about:</p>
  
  <pre><code>error: passing 'const foo' as 'this' argument discards qualifiers [-fpermissive]
  </code></pre>
  
  <p>code:</p>
  
  <pre><code>// this class is in library code  i cannot modify it
  class CWork {
  public:
      const string work(const string&amp; args) { // non const
          ...
          return "work";
      }
  };
  // this is my code i can modify it 
  class CObject {
  private:
      CWork m_work; // not const
  public:
      const string get_work(const string&amp; args) const { // const member function
          return m_work.work(args);  // error here
      }
  };
  </code></pre>
  
  <p>Why is this and how to fix this?
  Compiler is g++ 5.3.1.</p>